Student Extended Xinu
Having students integrate advanced operating systems features and develop applications for a their own or a provided Xinu operating system is one of the potential tracks presented for a professor that is Teaching With Xinu.
Students will learn to extend an operating system by adding kernel level and user level applications. Given a functional Embedded Xinu operating system the students will have to understand and manipulate existing operating system code to create additional operating system features. To add more applications to the operating system students will have to understand the interactions between the program in design and the operating system's device and kernel interaction calls. Programming for embedded devices allows students to engage in development on small resource constrained environments. Through extending the existing Embedded Xinu operating system a student learns to use and understand code not written by the student and develops advanced operating system concepts.
Course development can parallel learning objectives and topics associated with many Communication and Networking courses. 
- Overview of operating systems
- Operating system principles
- Scheduling and dispatch
- Memory management
- Device management
- Security and protection
- File systems
- Evaluating system performance
- Intimate knowledge of embedded devices.
- Overview of the general and specific purpose of an operating system.
- Understanding concurrency and state flow diagrams.
- Understanding deadlock and starvation.
- Understanding the use of memory and virtual memory.
- Characteristics of serial and parallel devices.
Potential Course Structure
A course where having students integrate advanced operating systems features and develop applications for a their own or a provided Xinu operating system can be outlined to one similar to the one below:
|01||C (basics) and OS Structures, Processes||Extending Xinu #1|
|02||C (functions, control flow) and Processes|
|03||C (pointers, arrays, structs) and Threads||Extending Xinu #2|
|04||CPU Scheduling||Extending Xinu #3|
|06||Process Synchronization||Extending Xinu #4|
|07||Deadlocks||Extending Xinu #5|
|08||Main Memory and Virtual Memory|
|09||File System Interface||Extending Xinu #6|
|10||File System Implementation|
|11||Mass-Storage Structure||Extending Xinu #7|
|12||I/O Systems||Extending Xinu #8|
|13||Protection, Security and Distributed System Structures||Extending Xinu #9|
|14||Distributed System Structures|
|15||Distributed File Systems||Extending Xinu #10|
- There are no suggested books for this course outline.
 Course topics and learning objectives have been adapted from the ACM's Computing Curricula 2001 Computer Science.
This work funded in part by NSF grant DUE-CCLI-0737476.