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.
|v0.09: IDE Disk, exec, vi (02.11.2013) |
For a few months, Ulix has been able to use IDE hard disks. There's now also a
virtual filesystem layer which lets the system mount hard disks and floppy disks
to sub directories (but that's not complete yet; so far only one mounted device).
I've also written execve() which loads ELF binaries. Many tools which were shell-built-ins
have now become "proper" external commands, residing in a /bin/ folder. The first real
application is an ultra-simple vi clone: so far the editor can open and save files,
switch between command and edit mode and actually insert/delete text. The only working
commands are dd (delete line), x (delete character), wq (write and quit), and
q! (quit without saving). The picture shows vi editing a C file.
The next release should see a completion of the virtual filesystem (with mount / umount
commands) and the signaling code mentioned earlier.
[ 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.