Course “Operating Systems” (OS)

µprojects

 

 

 

General Information

µprojects are very light projects whose purpose are to precisely explore an issue regarding general-purpose operating systems, and more precisely, Linux.
Each µproject is achieved by three students (trio). Each group of student presents its results during a course session.
To make your project, I suggest that you go to the library and consult or borrow the appropriate books / documents. Also, your may browse the web but be careful to check  the veracity and the relevance of the documents you may find.


Schedule


Grading 


Presentation

You may use slides or the blackboard. If you intend to use slides, please, send them to me by email the day before your presentation, and name the file group_x.ppt (or group_x.pdf) with x being the number of the project. Slides must be in English.

Your presentation should first recall the topics of your project (context, issues) and then it should focus on technical points. You must clearly mention your sources of technical information during your presentation.


Attribution of projects

End of October 2005.
You can permute your project with another group of students until the 2nd of November. Please, tell me if I have made an error on your names.
Also, if you experience difficulties with your project, please, come to my office (office #223) for help / questions.
If your slides has been updated since your presentation, please, send them to me.


Projects of Fall 2004:



µproject
Students
1
DENIZART Jonathan, FAUCHERE Clément
2
ETHEVE Rémy, ZOTTNER Marc, HARABULA Cézar
3
JOZWIAK Clément, GARNAUD Emilie
4
CHEVAL Laurent, DROGOU Edouard, GUERIN Nicolas
5
RUEGG Andreas, FIRDAWCY Zineb
6
MAZARE Sébastien, NICOLAS Mario, GASCON Aurélien
7
PAVOT Marc, PARIS Stéphane, HURLIMANN David
8
BENICHOU Meytal, GUEZ Caroline, VILLOING Alexandre
9
DESAUBLIAUX Antoine, FAUSSAT Aline, BACHERKI Ayoub
10
VOGLER Ulrich, HUBER Andreas


List of Projects (Fall 2004)

1) Starting up Linux
In this project, your objective is to study how Linux starts i.e. what are the various steps used to start the kernel (and who perform these steps!) and all its services. Also, you should explore how the starting of Linux may be configured and customized.

2) ELF format : format of executable files used under Linux
To be executed under Linux, executable code must be stored in a file under the ELF format. The objective is for you to describe this format i.e. to explain how data are organized within this format.


3) Memory allocations to user processes under Linux
Your objective is to explain how memory allocations are managed by the Linux kernel, and how a user process can perform memory allocations. More particularly, you must explain how the malloc(), brk() and kmalloc() functions work (general principle).


4) Direct Memory Access (DMA) and Linux
The DMA is a mechanism used for transferring large amounts of data from a device to memory, or reciprocally. Your objective is to understand how the kernel uses and manages DMA.


5) Swapping under Linux
Swapping is used for managing pages of memory that cannot be stored in main memory. In this project, you must study the policy of swapping under Linux, and how the swapping can be configured by the superuser of the system.


6) Management of files under Linux
Files are organized within a logical view, whatever the underlying physical support (CD, Hard drive, etc.). In this project, you must present the inode structure which is used for storing file information and data. More precisely, you should explain how inodes are organized, and how they can be used for storing file, directory and links informations.


7) Managing and implementing kernel modules
Linux makes it possible to load additional piece of code into the kernel. Generally, these modules implement low-lvel functionalities. In this project, you must explain how a module can be loaded / unloaded, how the kernel handles them, and at last, how modules can be programmed.


8) Serial ports under Linux : management of serial ports by the kernel and programming of applications using serial ports
In this project, your objective is to explain how the kernel manages serial ports. This includes how they are detected, and how they can be configured. Also, you should explain how a programmer can send and receive data to and from a serial port.


9) Management of interrupts under Linux
The Linux kernel is the part of software that executes in privileged mode. Therefore, it is in charge of interrupts. You must explain how these interrupts are configured by the kernel and also how they are managed (For example, when they are masked or not).


10) Timers in Linux
Timers are fundamental components for managing time issues in operating systems. In this project, you must explain the type of timers used by the Linux kernel. Also, you must explain, from a programmer point of view, how they may be used, and what is their precisions.