Student Built Xinu
Overview
Having students build their own Xinu is one of the potential tracks presented for a professor that is Teaching With Xinu.
A student built operating system puts the student in the trenches of operating system development. The student will become intimately involved with the inner workings of an operating system. This will give the student a better understanding of the various systems that work together behind the scenes while an operating system is running. Operating systems topics that can be incorporated in a student built Xinu course include: memory management, scheduling, concurrent processing, device management, file systems and others.
Potential Course Structure
An Operating Systems course using the below course outline or something similar will introduce students to some fundamental concepts of operating systems combined with the basics of networking and communications. Topics include: memory management, scheduling, concurrent processing, device management, file systems, networking, security, and system performance. A similar course structure is followed by Dr. Dennis Brylow at Marquette University in his sophomore level Operating Systems course. Most of the assignments where students are building Embedded Xinu are done in teams of two.
Course Outline
Week | Topics | Assignments | |||||
01 | C (basics) and OS Structures, Processes | C Basics | |||||
02 | C (functions, control flow) and Processes | ||||||
03 | C (pointers, arrays, structs) and Threads | C Structs and Pointers | |||||
04 | CPU Scheduling | Synchronous Serial Driver | |||||
05 | CPU Scheduling | ||||||
06 | Process Synchronization | Context Switch and Non-Preemptive Scheduling | |||||
07 | Deadlocks | Priority Scheduling and Process Termination | |||||
08 | Main Memory and Virtual Memory | ||||||
09 | File System Interface | Preemption and Synchronization | |||||
10 | File System Implementation | ||||||
11 | Mass-Storage Structure | Delta Queues | |||||
12 | I/O Systems | Heap Memory | |||||
13 | Protection, Security and Distributed System Structures | Asynchronous Device Driver | |||||
14 | Distributed System Structures | ||||||
15 | Distributed File Systems | Ultra-Tiny File System |
Books
Brian W. Kernighan and Dennis M. Richie, The C Programming Language, Prentice-Hall, 1978.