TrainOS

Welcome to the home page for the TrainOS (TOS) project. TOS is a simple operating system for Intel x86 based PCs, designed as a programming project to accompany a course on operating systems. At the end of the project, you will have implemented a small, pre-emptive multi-tasking operating system that can boot on any Intel-based PC. It controls an external model train via the serial line interface. The video below shows the result.

This page contains all the resources to install and build TOS as well comprehensive documentation of all aspects of TOS. The freely available software package includes a testing framework and a simulator for the model train. Refer to the setup instructions for TOS as well as the TOS API documentation.

Slides

Topic Slides Content
Introduction Introduction to Operating Systems.
Prerequisites Bochs. Overview of TOS.
C-Pointers Review of some finer points of the C-programming language.
x86 Assembly x86 Architecture and Assembly Language.
Windowing Text-based windowing system.
Debugging Debugging hints for TOS. TOS Test Center (TTC).
TOS Processes Creating a process in TOS. PCB (Process Control Block). create_process()
Context Switch Context Switch in TOS. resign()
Concurrency Concurrency, race conditions, locks.
IPC Inter-Process Communication. send(), receive(), reply()
Segmentation x86 Segmentation. GDT (Global Descriptor Table).
Interrupts x86 Interrupts. ISR (Interrupt Service Routines).
Multitasking Adding pre-emptive multitasking to TOS.
Timer Timer Service. Null Process. wait_for_interrupt()
Device Driver RS232 Device Driver. Loopback device.
Shell Using the keyboard. Mini-shell for TOS.
Train Train application.
Fork Implementation of fork() for TOS.

Links

TOS Video