/binutils
/binutils/misc
- Sysroot for 3rd programs needed for building KOS components
- These programs are build to run on your own machine (i.e. not meant to be run by KOS)
/binutils/misc/opt/$PACKAGE_NAME
- Intermediate out-of-source build files for packages installed in
$PROJPATH/binutils/misc
- These programs are build to run on your own machine (i.e. not meant to be run by KOS)
- Intermediate out-of-source build files for packages installed in
/binutils/$TARGET_CPU-kos
- Sysroot for per-toolchain programs built for the host.
- Most notably, the toolchain GCC can be found under
/binutils/$TARGET_CPU-kos/bin/gcc
/binutils/$TARGET_CPU-kos/opt/$PACKAGE_NAME
- Intermediate out-of-source build files for 3rd party utilities built for KOS
/binutils/$TARGET_CPU-kos/opt/$PACKAGE_NAME-install
- Package distribution installation (if needed)
- This contains a super-set of files from 3rd party programs that get installed on KOS disk images
/binutils/src
- Source files and package archives for 3rd party programs
- This folder is populated by
make_toolchain.sh
andmake_utility.sh
/kos/misc
/kos/misc/utilities
- A collection of shell-scripts used to install 3rd party programs for execution under KOS
/kos/misc/patches/$PACKAGE_NAME.patch
- Patches used by scripts in
/kos/misc/utilities
- Where used, these are applied to
/binutils/src/$PACKAGE_NAME
- Patches used by scripts in
/bin/$TARGET_CPU-kos-common
- Common folder for 3rd party utilities installed on-disk
- Files installed here are (usually) copied from
/binutils/$TARGET_CPU-kos/opt/$PACKAGE_NAME-install
/bin/$TARGET_CPU-kos-$CONFIG
- Mirror of files found on
/bin/$TARGET_CPU-kos-$CONFIG/disk.img
- Mostly consists of symbolic links to files in
/bin/$TARGET_CPU-kos-common
- Files who's representation depends on how KOS and its system libraries are configured are also found here
- This is where files from 3rd party utilities & KOS system files are merged
- Mirror of files found on
/bin/$TARGET_CPU-kos-$CONFIG/disk.img
- The actual (FAT) disk image with which KOS is booted
As such, when you install a 3rd party package, it will go through the following steps:
/kos/misc/utilities/my_utility.sh
: Your package's install script (called bymake_utility.sh
)/binutils/src/my_utility-1.0.tar.gz
: downloaded fromhttps://my_url.com/my_utility-1.0.tar.gr
/binutils/src/my_utility-1.0
: unpacked from the downloaded file/binutils/src/my_utility-1.0/configure
: configure (using tools from the KOS toolchain)/binutils/$TARGET_CPU-kos/opt/my_utility-1.0
: Output path for build files (pwd whenconfigure
is called)/binutils/$TARGET_CPU-kos/opt/my_utility-1.0/Makefile
: Build the package (viamake
)/binutils/$TARGET_CPU-kos/opt/my_utility-1.0-install
: Install the package (viamake DESTDIR=... install
)/bin/$TARGET_CPU-kos-common
: Copy relevant files from the previous step here/bin/$TARGET_CPU-kos-$CONFIG
: Create symbolic links to$TARGET_CPU-kos-common
/bin/$TARGET_CPU-kos-$CONFIG/disk.img
: Copy files onto KOS disk images (viamcopy
) The last 2 steps are performed for every$CONFIG
-folder that can be located
- libdrm-2.4.100
- libfreetype2-2.10.2
- libpixman-0.40.0
- fontconfig-2.13.92
- Xorg
- libfontenc-1.1.4
- libX11-1.6.12
- libXau-1.0.9
- libxcb-1.14
- libXfont2-2.0.4
- libxkbfile-1.1.0
- xorgproto-2020.1
- xtrans-1.4.0
- xcb-proto-1.14.1
- xkbcomp-1.4.3
- xkeyboard-config-2.31
- xorg-server-1.20.9
- xf86-video-vesa-2.5.0
- libICE-1.0.10
- libSM-1.2.3
- libXaw-1.0.13
- libXext-1.3.4
- libXmu-1.1.3
- libXpm-3.5.13
- libXt-1.2.0
- libXrender-0.9.10
- libXft-2.3.3
- xclock-1.0.9
- xinit-1.4.1
From inside of KOS, run the following:
xinit /bin/xclock -- -dumbSched
And after a while you should see this: