ACM Transactions on Computer Systems (TOCS)
The C++ programming language
Computer
Operating systems: design and implementation
Operating systems: design and implementation
A UNIX clone with source code for operating systems courses
ACM SIGOPS Operating Systems Review
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Reimplementing the Cedar file system using logging and group commit
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Caching in the Sprite network file system
ACM Transactions on Computer Systems (TOCS)
IEEE Transactions on Computers - Special issue on architectural support for programming languages and operating systems
Memory coherence in shared virtual memory systems
ACM Transactions on Computer Systems (TOCS)
The Performance Implications of Thread Management Alternatives for Shared-Memory Multiprocessors
IEEE Transactions on Computers
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
The cache performance and optimizations of blocked algorithms
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Transparent process migration: design alternatives and the sprite implementation
Software—Practice & Experience
Experiencing minix as a didactical aid for operating systems courses
ACM SIGOPS Operating Systems Review
Systems programming with Modula-3
Systems programming with Modula-3
The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Asynchronous distributed simulation via a sequence of parallel computations
Communications of the ACM - Special issue on simulation modeling and statistical computing
Experience with processes and monitors in Mesa
Communications of the ACM
Communications of the ACM
Virtual memory, processes, and sharing in MULTICS
Communications of the ACM
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
Cool: a portable project for teaching compiler construction
ACM SIGPLAN Notices
On the design of a new CPU architecture for pedagogical purposes
WCAE '02 Proceedings of the 2002 workshop on Computer architecture education: Held in conjunction with the 29th International Symposium on Computer Architecture
SEED: A Suite of Instructional Laboratories for Computer Security Education
Journal on Educational Resources in Computing (JERIC)
Using iPodLinux in an introductory OS course
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Teaching operating systems: student assignments and the software engineering perspective
Proceedings of the 2008 international workshop on Software Engineering in east and south europe
VDE: an emulation environment for supporting computer networking courses
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Build an operating system from scratch: a project for an introductory operating systems course
Proceedings of the 40th ACM technical symposium on Computer science education
The pintos instructional operating system kernel
Proceedings of the 40th ACM technical symposium on Computer science education
Teaching operating systems with simple low-cost portable energy efficient devices
Proceedings of the 49th Annual Southeast Regional Conference
Experiences in teaching an educational user-level operating systems implementation project
ACM SIGOPS Operating Systems Review
Developing a pre- and post-course concept inventory to gauge operating systems learning
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
In teaching operating systems at an undergraduate level, we belive that it is important to provide a project that is realistic enought to show how real operating systems work, yet is simple enough that the students can understand and modify it in significant ways. A number of these instructional saystems have been created over the last two decades, but recent advances in hardware and software design, along with the increasing power of available computational resources, have changed the basis for many of the tradeoffs made by these systems. we have implemented an instructional operating system, called Nachos, and designed a series of assignments to go with it. Our system includes CPU and device simulatiors, and it runs as a regulat UNIX process. Nachos illustrates and takes advantage of modern operating systems technology, such as threads and remote procedure calls, recent harware advances, such as RISC'S and the prevalence of memory hierarchies, and modern software design techniques, such as protocol layering and object-oriented programming. Nachos has been used to teach undergraduate operating systems classes at several universities with positive results.