GSoC/GCI Archive
Google Summer of Code 2011

RTEMS Project

Web Page: http://www.rtems.org/wiki/index.php/Open_Projects

Mailing List: http://www.rtems.org/mailman/listinfo/rtems-users

RTEMS (Real-Time Executive for Multiprocessor Systems) is a free real-time operating system designed for deeply embedded systems. The systems RTEMS is designed to execute on are not the general purpose PCs and Macs you are familiar with. The usual target for RTEMS is specially designed computers inside devices -- although RTEMS does support PC hardware which is also commonly embedded. Embedded systems are preprogrammed to perform a narrow range of functions with minimal end user or operator intervention. For example, an automobile's electronic fuel injection system and robotic controllers are examples of embedded systems. RTEMS is a free open source solution that supports multi-processor systems and has been ported to over a dozen CPU architectures and includes support for over 100 boards. In addition, RTEMS is designed to support embedded applications with the most stringent real-time requirements while being compatible with open standards such as POSIX. RTEMS includes optional functional features such as TCP/IP and various file systems while still offering minimum executable sizes under 20 KB in useful configurations. The RTEMS Project is the collection of individuals, companies, universities, and research institutions that collectively maintain and enhance the RTEMS software base. As a community, we are proud to be popular in the space application software and experimental physics communities. RTEMS has been to Venus, circles Mars, and is on its way to the asteroid belt. It is in use in many high energy physics research labs across the world. There are many RTEMS users who do not belong to the space or physics communities, but our small part in contributing to basic scientific knowledge makes us proud.

Projects

  • Hypervisor for RTEMS This project’ goal is to make RTEMS support virtualization which allow other OS like linux coexist with RTEMS under the same underlying system hardware. There is already a project named AIR which have implement a Hypervisor and a paravirtualized RTEMS. So the main work of this project is to paravirtualize the linux to AIR Hypervisor and integrate it with AIR to realize virtualization.
  • Implementation of the ISO9660 filesystem RTEMS is already able to interract with multiple filesystems (IMFS, FAT, ..). The goal of this project is (in the long term), to let RTEMS read CD, DVD and/or other medias using the ISO9660 filesystem. ISO9660 is indeed a standard for read-only media and could be used in various situations in a real-time system.
  • Lua Scripting and Shell Support in RTEMS I will add a Lua library to RTEMS, in order to support run-time scripting. I will provide a Python translator, which will allow Python scripts to be executed in Lua without porting Python. Finally, I will add support to Lua so it can act as an alternate shell for RTEMS.
  • Porting of resource reservation framework to RTEMS executive The aim of this project is to create a port of a FRESCOR (www.frescor.org) resource reservation framework for RTEMS. It will provide with a convenient real-time application design for distributed systems making use of CORBA protocol. The framework is currently running under Linux. It is necessary to refactor it into a single address space, prepare an appropriate scheduling (EDF) with a budget handling in order to provide a temporal isolation of tasks and fit the API between FRESCOR and RTEMS.
  • POSIX Compliance Test Suite The goal of the project is to accomplish POSIX compliance test suite. The test suite is cross-platform and OS independent to be used by various POSIX compliant OS teams to measure compliance and cross-platform compatibility. The main component of the project is Filesystem Test Suite. The new Filesystem Test Suite should be able to use the same tests on different file systems include IMFS, mounted IMFS, mounted RFS, and mounted FAT.
  • POSIX Timing Tests Using the BSP dependent benchmark timer, and knowing that Tests have no interrupts and only do the activity under test. I will use the "BSP dependent benchmark timer" to test the Classic API Timing Tests, and POSIX Timing Tests (psxtests) maybe for the last one I will use additional calls like linux clock_gettime(). The reports time measure will be microseconds under sparc/sis simulator. Basically I've to test each line of pxxtmtests_plan.cvs
  • RTEMS MMU Context Support The goal of the project is to implement an architecture independent API and structure to manage memory blocks with access attributes based on MMU Support. The API should provide a mechanism for memory protection based on MMU hardware and a low-level MMU support carried out for PowerPC PSIM board in GSOC2009. Users can use the API to manage an access lookup table, called MMU context. Using the API, RTEMS Objects such as Region can manage memory blocks with access right control ability.
  • RTEMS port of the GNU Java Compiler The purpose of this project is to make the GCJ (GNU Compiler for Java , also called GJC: GNU Java Compiler) work with RTEMS. First of this project is porting GCJ run-time to RTEMS, then run the GCJ Test Suite for the porting, and last submit modifications to the related projects such as GCC, RTEMS and so on. After completing this project, we can use Java for programming RTEMS applications.