Self-hosting environment

Wiki page by khorben on 19/10/2010 01:51:32


As any complete Operating System, DeforaOS should eventually be self-hosted, or in other words, able to be compiled and executed on top of its own environment. This is much easier when starting from a stable, well-known base, as defined by the POSIX standard.


Its sub-projects are therefore developed in parallel, some strictly following the POSIX specifications. Together, they should be able to re-generate a working system, starting only from source code. Of course, they are also useful as an alternative to the core environment as provided by DeforaOS, and on embedded systems in particular. In practice, the experience gained here is integrated into the main environment, to help define it.


The relevant projects are listed here in decreasing importance:
  1. libc
  2. Loader
  3. sh
  4. scripts
  5. utils
  6. others
  7. cpp
  8. as
  9. c99
  10. inetd
  11. uBooter
  12. uKernel

Global tasks

To achieve this goal, completion of the following tasks is required:
  • execution of a binary, statically linked to the libc
  • execution of a binary, dynamically linked to the libc
  • creation of a bootable Operating System image, offering a working shell
  • creation of a bootable Operating System image, providing a multi-user environment
  • compilation of a system object, to be successfully linked with another binary
  • compilation of a binary executable, statically linked
  • compilation of a binary executable, dynamically linked

Current status

Progress with the libc, sh, utils and others projects is still required to complete the current task.
Completion of the Loader project would allow the entirety of the userland environment to originate from the DeforaOS project. It would also solve a compatibility issue with Linux 2.4 kernels.
1.4 (diff)khorben
1.3 (diff)khorben
1.2 (diff)khorben