Self-hosting environment
Summary
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 environment, as defined by the POSIX standard.Description
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.Components
The relevant projects are listed here in decreasing importance:- libc
- Loader
- sh
- scripts
- utils
- others
- cpp
- as
- c99
- inetd
- uBooter
- 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.