Code structure
This section will explain in details each section of the operating system, how they work and all the important details.
Folders
The project is divided into different folders:
arch: header files which contain data about CPU registers, memory mapped registers addresses...boot: the bootloader, stored in thestart.Sfilecommon: libraries (.hand.cfiles) which are shared between kernel and user processes; in fact, there are some functions (like string and memory manipulation) which are used by the kernel, but which can also used by the user processes without any security issue, thanks to virtual memorydrivers: drivers for the devices supported by demoos (uart, irq, sd...)kernel: thekernel.cis the main file launched by the bootloader, which initializes the components of the OS and the init processlibs: miscellaneous files which are used by the kernel for its functionalitiesscript: the linker script used in the building processuser: the init user process, which is a shell