Advanced Operating Systems COMP9242 2008/S2 |
UNSW
CRICOS Provider Number: 00098G |
Printer-Friendly
Version
|
SOS frameworkThis document describes the provided SOS framework. This is provided to make it easier for you to get started with the project. The source code itself should be reasonably well commented, and you should ensure that you understand the provided source code. Although you are free to change the build system and layout of the project it is discouraged for the following reasons:
SConstruct and the SCons build systemWe have provided a fairly comprehensive build system for you, however you will need to edit the SConstruct (found in projects/sos/) throughout your project as you add new libraries and applications. The SConstruct itself is commented, this documentation is meant to supplement those comments. The SConstruct basically does the following:
LibrariesEach library needs to be enumerated and added to each build context, note some libraries are actually used multiple times in multiple envirnments. For instance the libs/c library is included in the rootserver_env, the tools_env and the app_env and will be built three times too. To create a library you will need to complete a number of steps:
AppsExecutables are setup in a similar way to libraries. However instead of living in the libs directory they live at the top level of the project. You should note that the sos/Most of the code you will write will be in the The implementation has been kept very simple, (you wouldn't want us to
do all the fun bits would you!). The interesting thing here is the
startup procedure, which should be fairly easy to follow in
init_threadYou may be wondering why we spawn a separate thread to handle most of
the initialisation. The main reason for this is so that we can keep
things simple (no really!). In the There are of course other ways you could structure your start-up
protocol and operating system so that this is not required. For example,
you may want to have a separate thread for each interrupt handler. Or you
may wish to restrict libsos.cIs a simple L4 environment library to make some of the calls to L4 simpler, L4 helper "library". At some stage you will need to modify it to re-implement the sos_usleep function on your clock driver. network_initThe provided libs/So that you don't have to write everything from scratch, we provide you with some libraries to get you going.
Last modified: Thu Jul 27 14:34:44 EST 2006 |