Embedded OS Project
The embedded operating system is a class for the UBO master LSE (“Logiciel pour les Systèmes Embarqués”, software for embedded systems). The class director is Dr. Jalil Boukhobza.
I am in charge of setting up and supervising the final project for this class from scholar years 2011-2012 to 2014-2015. The project lasts about a month. As each project’s aim is in final to have a concrete implementation, we use for that the Armadeus APF27 embedded board running embedded Linux.
2014 – 2015: development of an on-flash key-value storage system in the embedded Linux kernel
In this project the students have to implement a simple storage system consisting of an on-flash key-value store running in kernel space in the embedded Linux operating system. The implementation is done on the Armadeus APF27 board.
Materials for the project (French):
- Project presentation
- Provided prototype code
- Slides: session 1 and session 2
- Complementary resources 1 and 2
2013 – 2014: development of a flash storage requests tracer at the VFS level with embedded Linux
The goal was to build a Linux kernel module using Jprobes to trace applicative VFS requests triggered by system calls such as open(), read() or write(), and log relevant parameters about thoses requests. This tool was implemented on the Armadeus board, running Linux 2.6.29.
Materials for the course (in French):
- Project presentation and slides ;
- Using the Armadeus development environment ;
- Various ways of exploring the Linux kernel sources, and the virtual machine used in this session ;
- Linux modules developement and Jprobes usage ;
- Linux kernel / userspace communication example through the /proc virtual file system.
2012 – 2013: development of a cache at the driver level for embedded Linux flash storage I/O
The goal of the project was to explore the source of the Linux generic NAND driver Memory Technology Device (MTD), and implement a RAM cache at that level to buffer and accellerate flash I/Os. It was implemented on Linux 2.6.29 running on the Armadeus board.
Some materials (in French):
- Project presentation ;
- Various tips on partitioning the APF27 flash memory, exploring MTD sources, compiling and installing a new kernel.
2011 – 2012: Integration of a hardware time manager component in the Xenomai real time framework of embedded Linux
The students were given an IP representing a hardware component playing the role of a generic time manager service for a real time operating system. The component was synthesized on the Spartan 3 FPGA of the Armadeus APF27 board. The students needed to write a driver for this component in the Xenomai real time framework in embedded Linux. The default (software) time manager of Xenomai was the replaced by calls to the harware component, in order to lighten the load due to that service.
Some material (French):
- Hardware time manager presentation, communication with the operating system
- Sources for the hardware component and the corresponding driver