Ulix is a Unix-like operating system written in C using literate programming. In my bachelor thesis I extended the Ulix kernel and implemented support for pipes (both named and anonymous pipes).
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.
The thesis is available on the Ulix OS website. The source code is available on GitHub.