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
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.
|Processes, little updates, serial console (20.05.2012) |
I'm working on the process code. So far I can create the
initial process, run it (in usermode) and make it fork
(via a syscall). There's
also an initial implementation of a simple scheduler that
is supposed to switch between tasks 1 and 2 (which does not
work yet; after changing to the second process the system
crashes, because the stack is corrupt. I can fix the stack,
but then I get the same problem when switching back to
task 1. So there is some weird error in there).
Other new stuff in Ulix: I have a serial console (thanks to
the code from the
operating system, but I'm only using the functionality
of duplicating all terminal output in a terminal window
on the host (good for long memory dumps which scroll out of
the window). I've also added a "hlt" instruction in the
kgetch() function, so my notebook does not get hot any
[ 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.