The Implementation of the ULIX Literate Operating System








Blaue Links: intern
Rote Links: extern

Suche Linux-Bücher bei

Subscribe ULIX: Literate Unix

A diary documenting the implementation of ULIX-i386

Welcome to the ULIX blog.

Ulix (Literate Unix) is a Unix-like operating system developed at University of Erlangen-Nürnberg. I use D. E. Knuth's concept of Literate Programming for the implementation and documentation. The goal was a fully working system which can be used in operating system courses to show students how OS concepts (such as paging and scheduling) can be implemented. Literate programs are very accessible because they can be read like a book; the order of presentation is not enforced by program logic or compiler restrictions, but instead is guided by the implementer's creative process.

Ulix is written in C and assembler for the Intel architecture. The literate programming part is handled by noweb.

On this page I document my progress with the implementation.

Navigation: 2015 | 2014 | 2013 | 2012 | 2011

v0.12: Ulix code and book finished (02.09.2014)

One week ago I finished work on the first edition of the Ulix book. It will be published once my PhD dissertation has been accepted and defended, but I can already say that the book has almost 700 pages with lots of figures and tables. Ulix seems to be stable enough for playing a bit with it.

The latest additions to the code were pthread-style threads (implemented in the kernel, but with a user mode interface) and pthread mutexes.

A printed version of the book sits beside my other operating systems books (see picture), and I like it a lot :)

[ Path: | persistent link ]

v0.11: Filesystem Code complete (23.04.2014)

The latest Ulix version's filesystem code is feature-complete. All Minix2 functions work fully (including support for single and double indirection blocks and directories with up to 7x16 entries), there's a new virtual /dev filesystem which allows access to the two floppies, two harddisks and RAM (/dev/kmem), the buffer cache is now used for caching writeblock() calls as well.

There's also the beginning of a kernel mode thread package with some of the pthread_ and pthread_mutex_ functions.

[ Path: | persistent link ]

v0.10: VFS, switch to kernel shell (and back) (07.01.2014)

The Virtual Filesystem (VFS) mentioned in the 0.09 news is complete now which means: we can 'cd' to directories on mounted media, read, write, and delete files and show directory contents.
Entering the kernel mode shell via Shift+Esc (which was possible before) is no longer a one-way ticket, typing exit brings us back to the user mode program.
Also, the "ULIX lectures" (the OS development course at TH Nuremberg) is about to end soon, with most of the ULIX code presented during the lectures (or worked on/rebuilt in the tutorial sessions).
What's left for ULIX? Signaling, Page Replacement, User mode synchronization.

[ Path: | persistent link ]

Copyright © 2011-2015 Hans-Georg Eßer; Server: Debian Linux, Apache Web Server, blog page powered by blosxom :: the zen of blogging, Theme: Hazard Area 1.6 (modified), created by Bryan Bell, Copyright © 2000-2006 Weblogger.com.