hrwos
This is a partially reconstructed backup as the wiki of Prof. Kirsch’s website, on which our project page was hosted, went offline.
Introduction
During our OS Course (“Spezielle Kapitel aus Betriebssysteme”) we have to implement the basic paradigms of an operating system (Processes, Memory Management, Filesystem,…). We are allowed to use a “startup framework” like GeekOS, PintOS or similar. The requirements for passing this class is that our operating system is able to run a non trivial concurrent application appropriately.
Team
- Stefan Huber (shuber2
gmx . at, 0320662) - Christian Rathgeb (c . rathgeb
sbg . at, 0320943) - Stefan Walkner (swalkner
cosy .sbg .ac . at, 0320190)
Development Milestones
To fit the whole development time in this term we created a schedule. The milestones in the schedule correspond to the projects in the GeekOS framework. Furthermore this course is an additional chance to learn more about project management.
-
2006-10-30: Getting Started [OK]
Chosen GeekOS as base framework
Setup development milestones with dates
-
2006-11-08: ELF Binary Loader [OK]
Getting the ELF format definition.
Implementing a stub function which parses an ELF file.
-
2006-11-22: Process Management [OK]
Manage segments of user processes (LDT, GDT, …)
Loading executable to user space memory
Setting up user space threads, stack and so on
Implementing basic system calls
Running a little shell as init process and launching further applications from it
-
2006-11-29: Scheduling [OK]
Implementing RR and MLF Scheduler
Implementing semaphores for synchronization (and the syscalls too)
-
2006-12-20: Virtual Memory [OK]
Implemented two level paging, creating page directory and tables
Adapting old process creation to paging
Implemented swapping, managing a swap file
Handling page faults, making page-ins and page-outs
-
2006-12-28: Filesystem [OK]
Create, Open, Read, Write, Stat, Seek, Delete files
Create, Open, Read_Entry, Stat, Seek, Delete directories
Sync file system
-
2007-01-03: IPC [OK]
Implementing abstract console FS – stdin, stdout are ‘files’ in the sense of POSIX. This enables redirecting output via ‘<’ and ‘>’ in shell.
Implementing IPC via pipes which are implemented as a FS too. This enables the pipe ‘|’ in shell.
-
2007-01-08: Run Concurrent Application [OK]
Implemented Dining Philosophers
It’s a server-client like architecture. The philosophers communicate with the server (called “phitable”) over pipes…
Documents
Technical Report
The technical report is written in LaTeX. All main components are described to get a good overview and enables one to write applications for hrwOS. hrwos-techrep.pdf
10-min. Presentation
This 10 minute presentation is also written in LaTeX. We chose two special components (VM, scheduler) and give a little overview. hrwos-10min.pdf
Source Code
The current source code (version 1.0) is available here: hrwOS.tar.gz. For a quick launch type: