Changes between Version 1 and Version 2 of Architecture


Ignore:
Timestamp:
Jun 30, 2006, 1:35:19 PM (18 years ago)
Author:
soujak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Architecture

    v1 v2  
    22
    33== 1. File system organization ==
    4 Kaya Phase 1 distribution is subdivided in several folders in order to
    5 efficiently organize files and logically separate them into different sections.
    6 Such division is thought for being ready to receive Phase 2 implementation
    7 providing a well structured environment.
    8  * `src/`: sources folder containing Phase 1 primitive functions source code,
    9    as described below in paragraph 2;
    10  * `test/`: testing folder, containing a debugging program (`p1test.c`), related
    11    environment generated by the Makefile "`test`" target; this rule compiles,
    12    links, creates uMPS executable and virtual devices and finally run it on the
    13    uMPS virtual machine (see also README);
     4The distribution is subdivided in several folders in order to efficiently
     5organize files and logically separate them into different sections.
     6Kaya is a layered OS, so each Phase has been confined in a sub-distribution
     7own hierarchy, in order to ease interchanges between different implementation
     8of the same layer and to underline that opportunity.
     9In addition to this, each Phase has the classic structure
     10
     11 * `phase`''N''`/`
     12   * `src/`: sources folder containing Phase ''N'' source code and a test programs;
     13   * `obj/`: Phase ''N'' objects files;
     14   * `include/`: library headers of Phase ''N'';
     15 * `include/`: system common headers: constants and macro definitions
     16   (`const.h`), types and data structures definitions (`types.h`);
     17 * `dev/`: uMPS virtual devices;
    1418 * `doc/`: documentation root containing various developers informations about
    15    project internals;
    16  * `include/`: library headers
    17    * `*.e`: Phase 1 primitive functions interfaces: `pcb.e` and `st.e`
    18      respectively relative to `pcb.c` and `st.c`;
    19    * `*.h`: system constants and macro definitions (`const.h`), types and data
    20      structures definitions (`types.h`);
    21  * `lib/`: Phase 1 libraries objects files, ready for being linked.
     19   project internals and development process.
    2220
    2321== 2. Source modules organization ==
    24 Following the evident logical division between two entities we have to
     22
     23=== 2.1. Phase 1 ===
     24Following the evident logical division between two entities that we had to
    2525instantiate - processes and semaphores -, we opted for a two-modules subdivision:
    2626 * `pcb.c`: collects primitive functions for PCBs initialization/ allocation/
     
    2929   enqueueing to/dequeueing from semaphores.
    3030
    31 {{{
    32  * `check.c` contains an error check routine which is able to perform a simple type
    33    check on the own data structures of Phase 1.
    34 }}}
     31=== 2.2. Phase 2 ===