Eusebius
An operating system
Written in kaba.
It was born from questions about the deepest depths of the mysterious box we're currently operating.

Kernel
Features:
- bootloader
- initializes (32bit) protected mode and A20 gate
- implements interrupt table
- GDT memory segmentation with paging
- default mouse and keyboard driver
- primitive (IDE-) ata driver for hard drives
- own (read only) file system for booting
- ext2 file system for reading and writing
- character devices (/dev/keyboard, /dev/zero, /dev/null, /dev/rand und /dev/screen for scrolling text output)
- file descriptor handles
- pipes and (local) sockets
- interrupt-based system calls
- timer interrupt for preemptive multi tasking
- userspace PCI drivers
- primitive userspace shell
The kernel is written in "low-level" kaba, i.e. all default library functions are disabled. The kernel automatically loads a pure-kaba implementation of the default library and makes it available to all further tasks, allowing them to use convenient features like dynamic arrays and heap objects etc.
Desktop environment
A VESA driver is implemented by the user-space windows server.
A client can create a window. The contents of the window is shared memory between client and server. The client is responsible for drawing text and buttons into the shared memory, the server will render the windows into the video memory.
Future plans
(probably never...)
- network card driver
- sound card driver
- more sophisticated linker and loader for executable files (elf)
There were also thoughts of going into a micro-kernel direction. With only memory- and task-managing done by the kernel and most other services, like the filesystem, handled by userspace tasks.
Platform
Exclusively designed for 32 bit x86 machines. Earlier versions were tested on real hardware. Later, for convenience, only virtual machines like bochs and qemu were used.
|