GSoC/GCI Archive
Google Summer of Code 2012

HelenOS group at Department of Distributed and Dependable Systems, Charles University in Prague

Web Page: http://helenos.org/gsoc2012

Mailing List: http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

[IMAGE http://www.helenos.org/imgs/logo_gsoc.png] HelenOS is a state-of-the-art operating system based on microkernel multiserver design principles. HelenOS decomposes key operating system functionality (including device drivers and file systems) into many isolated but intensively communicating server processes that reside entirely in user space. HelenOS thus provides a computing environment that has several virtues, such as flexibility, increased robustness, well-defined explicit interfaces and reduced complexity as compared to other operating system architectures.

HelenOS does not aim to be another clone of Unix or some other legacy operating system and is not POSIX-compliant (even though it may seem POSIX-similar at times). Instead, we try to design it according to our taste and sense for what is the most elegant and right thing to do. What makes HelenOS unique among the other multiserver operating systems is its multiplatform and multiprocessor microkernel and understandable source code. HelenOS runs on 7 different processor architectures, ranging from a 32-bit uniprocessor little-endian ARMv4 and a commodity PC with x86 and x86-64 processors to a 64-bit multicore big-endian UltraSPARC T1.

Department of Distributed and Dependable Systems (D3S for short) is responsible for research and education in the advanced techniques for building reliable component-based software especially in the field of distributed and dependable systems. This also comprises our work on HelenOS.

Projects

  • resizable, scalable, concurrent hash-table The kernel uses hash tables for several crucial subsystems; most notable, in IPC and the global page hash table. The current hash table implementation does not scale with a growing number of elements (because the table never resizes) nor does it exploit concurrency. I would like to implement a resizable, concurrent hash table based on state-of-the-art algorithms. The kernel's requirements align well with properties provided by relativistic hash tables utilizing the read-copy-update (RCU) primitive. HelenOS would benefit from this work in the following ways: 1) Improved (memory as well as cpu) scalability of core kernel functions. 2) RCU may be used as the building block of very interesting functionality (e.g. nonintrusive kernel tracing). 3) Possibility of transferring the RCU functionality into user space as one of the first OSes to provide RCU as a first-class citizen synchronization primitive to userspace drivers and applications.
  • Structured binary data tools Exploring structured binary data is frequently necessary in HelenOS. Hex editors and scripting languages require too much work and don't handle the data in a fully structured way. I will create a portable library and tools to make exploring structured binary data faster and easier. Although some tools already exist, my approach is more general and powerful. I will focus on making my tools highly versatile and making it easy to handle new structures.