Skip to content

Latest commit

 

History

History
101 lines (86 loc) · 5.67 KB

README.md

File metadata and controls

101 lines (86 loc) · 5.67 KB

KOS source tree locations for utilities

  • /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)
    • /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 and make_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
  • /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
  • /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 by make_utility.sh)
  • /binutils/src/my_utility-1.0.tar.gz: downloaded from https://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 when configure is called)
  • /binutils/$TARGET_CPU-kos/opt/my_utility-1.0/Makefile: Build the package (via make)
  • /binutils/$TARGET_CPU-kos/opt/my_utility-1.0-install: Install the package (via make 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 (via mcopy) The last 2 steps are performed for every $CONFIG-folder that can be located

Experimental utilities for X-server support:

Ported

Invocation

From inside of KOS, run the following:

xinit /bin/xclock -- -dumbSched

And after a while you should see this:

Xorg-first-time.png