Version 2 (modified by 18 years ago) (diff) | ,
---|
Project architecture
1. File system organization
The distribution is subdivided in several folders in order to efficiently organize files and logically separate them into different sections. Kaya is a layered OS, so each Phase has been confined in a sub-distribution own hierarchy, in order to ease interchanges between different implementation of the same layer and to underline that opportunity. In addition to this, each Phase has the classic structure
phase
N/
src/
: sources folder containing Phase N source code and a test programs;obj/
: Phase N objects files;include/
: library headers of Phase N;
include/
: system common headers: constants and macro definitions (const.h
), types and data structures definitions (types.h
);dev/
: uMPS virtual devices;doc/
: documentation root containing various developers informations about project internals and development process.
2. Source modules organization
2.1. Phase 1
Following the evident logical division between two entities that we had to instantiate - processes and semaphores -, we opted for a two-modules subdivision:
pcb.c
: collects primitive functions for PCBs initialization/ allocation/ deallocation, process queue/ tree maintenance;st.c
: collects primitive functions for SD tree initialization and PCB enqueueing to/dequeueing from semaphores.