Implementing Pipes for Ulix OS

For my bachelor thesis, I extended the kernel of the educational operating system Ulix by adding support for pipes. Just like the design and implementation book of Ulix, I used the Literate Programming paradigm.

The thesis is available as a PDF document and the source code (the Noweb .nw file) is over at GitHub.

Abstract

Ulix is a Unix-like operating system specially designed for educational purposes. In Unix, pipes are used for inter-process communication. While anonymous pipes only reside in memory, named pipes are represented as special files in the file system. The thesis covers the implementation of both named and anonymous pipes for the Ulix OS. A virtual file system is created and exported to user land to provide an interface to debug and introspect pipes. The Literate Programming paradigm is used to describe in detail how pipes can be implemented in a Unix-like operating system.