Souce Structure
This is a rough description of the source tree. Please note that the structure is not finalized, and will change.
If you do make changes to the structure, make them in such a way that they are well documented and thoroughly executed.
- build/ is the directory for all ephemeral build artifacts, with the
exception of generated headers. All other derived and generated files end up here.
compat/ includes wholesale copies of other projects, e.g. Free/CHERIBSD headers. Keeping this code separate signals that it is not ‘’normal’’ Kirsch code and enables easier updating/replacing of the entire borrowed source tree.
drivers/ unsure if this should be included…?
generators/ Tools and their configuration for generating source or build files. In particular, this is where the python-based Ninja-build file generator.
include/ Headers that are not part of a particular library or part of compat/.
kernel/ Kernel sources.
lib/ - foreign/ non-Kirsch libraries, similar in function to compat, but
for artifacts that need to be compiled.
kirsch/ Kirsch libraries.
link/ Until linker scripts are generated by the build system, they are temporarily all placed here.
loader/ Home of all loader sources.
mackerel/ Mackerel device specifications and support headers.
scripts/ Various scripts for running emulators and formatting source code.
usr/ Userspace sources.