Screen Version
School of Computer Science & Engineering
University of New South Wales

 Advanced Operating Systems 
 COMP9242 2014/S2 

M8: ELF Loading

At this stage, the only way to install and execute a new application on your operating system is to recompile the operating system itself. The objective of this milestone is to load and execute a program that is hosted by the NFS server.

By this final milestone you should ensure that all I/O is asynchronous. This means that your system must not block waiting for completion of file system or paging I/O, but should be able to run any process that is ready while other processes are blocked on I/O completion.

Code

The libelf library has been provided for you in your source tree. You may use this library to handle the parsing of ELF format files. You will need to modify apps/sos/src/elf.c to load executables from the network file system instead of the cpio image linked with SOS.

You may also wish to modify the top level Makefile to automatically copy your executable files into your NFS directory (/var/tftpboot/$USER).

Design issues

One design decision is whether to load the whole executable image on process creation, or instead load page-wise on demand at page-fault time.


Assessment

You will demonstrate (by running a sosh) that your system works even with repeated and concurrent executions, and that you can execute every file (of the right content) from your NFS directory.


Last modified: 12 Aug 2014.