Buenos is a University Educational Nutshell Operating System

Buenos is a small SMP operating system skeleton which can be used as a base for operating systems project courses. Buenos runs in a machine simulator called YAMS, which is also available here.

The system is intended to be used as OS project base code which students can improve. Extensive documentation with suggestions for assignments or exercises is included with the system.

The Buenos system has fully pre-emptive kernel threading with SMP support. The system includes spinlocks, sleep queues and semaphores as synchronization primitives (locks and condition variables are documented as an exercise).

Userland programs are partially supported: system call interface is done, but most system calls are only documented, but not implemented. Virtual memory subsystem is not implemented, only tools for implementation are provided.

Buenos also includes device drivers for all YAMS virtual devices except the network interface (left as an exercise). A simple filesystem with a Unix tool to access it outside the virtual machine is also provided. Packet oriented networking is supported, reliable streams are documented as an exercise.

Requirements

Buenos runs in a virtual machine and can thus be used on any system supporting YAMS (most UNIX like systems). YAMS is needed to run the OS, and cross compiling GCC is needed for both kernel and userland program compilation. GCC configuration instructions are provided in YAMS documentation, as well as here.

Although the system is throughly documented, it can't be used as an exercise without proper lecture course. At minimum, students should be recommended to acquire a good OS book (Tanenbaum or Stallings, for example).