hgesser.com/ulix/

The Implementation of the ULIX Literate Operating System

header

Navigation

Privates

Publikationen

Studium

Software

Sonstiges

Blaue Links: intern
Rote Links: extern

Suche Linux-Bücher bei
Amazon.de


Subscribe Hans-Georg Eßer: ULIX

A diary documenting the implementation of ULIX-i386

Welcome to the ULIX blog.

Ulix (Literate Unix) is a Unix-like operating system currently in development at University of Erlangen-Nürnberg. I use D. E. Knuth's concept of Literate Programming for the implementation and documentation. The ultimate goal is 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. Currently no source code is available because the project is in its early stages.

On this page I document my progress with the implementation.


Navigation: 2012 | 2011 |


v0.04: Memory Allocation: Get Frame, Get Page, Update Page Tables (17.08.2011)


OK, the memory system is slowly becoming useful. There's now a bitmap that keeps track of used/free frames in RAM, and there's a function which requests a new page (first getting a frame, then updating the page table and eventually creating a new page table when the old one is full). Next up is some kind of kmalloc()...
Some other things I found out: It's sometimes helpful to use the graphical debug frontend of Bochs. And: There's a free (LGPL-licensed), simple printf() implementation (Georges Menie, 2002) which does not depend on the existence of any libraries: all it needs is a way to put a single character on the console (and I have a putch() already).

Resources used:
printf, by Georges Menie, http://www.menie.org/georges/embedded/

[ Path: | persistent link ]

Copyright © 2011 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.