L4TOS: The L4 Toy Operating System
Introduction
The objective of this project is produce a very simple toy operating system on top of L4Ka::Pistachio. The OS will be developed using C and
assembly language for IA-32. This will be a learning experience for us and we want this project to act as some kind of "how to" documentation
for building on top of L4.
Requirements
I think a standard set of tools should be listed so that anyone can compile the resulting OS:
- GCC-3.3.3
- NASM-0.98.39
- L4Ka::Pistachio-0.4
- IDL4 or Magpie
Objectives
- L4TOS will be a single user OS.
- There will be no demand paging implemented within L4TOS, just simple paging using whatever memory is available on the host computer. This
means that memory can and will run out at some point. This isn't very useful for a real OS, but for L4TOS it will be fine.
- Each task can have a number of threads associated with it, each thread's stack size will be set to a specific size (say 32KB) but if
the programmer wishes to have a different sized stack, they can specify it on thread creation.
We only need a few servers running to provide a simple example:
- Root task which will provide the syscalls for the L4TOS.
- Memory server which will give us access to memory.
- Name server task to provide a method to look up entities, e.g. other servers by name, file names.
- Ram disk to give us the means to store files somewhere.
- A basic shell
- A console device using the framebuffer.
- Keyboard device.
Links