Operating systems (2nd ed.): design and implementation
Operating systems (2nd ed.): design and implementation
The undocumented PC (2nd ed.): a programmer's guide to I/O, CPU's, and fixed memory areas
The undocumented PC (2nd ed.): a programmer's guide to I/O, CPU's, and fixed memory areas
Operating systems projects built on a simple hardware simulator
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Communications of the ACM
TOS: an educational distributed operating system in Java
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Architecture-dependent operating system project sequence
Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education
Protected Mode Software Architecture
Protected Mode Software Architecture
Operating System Concepts
A new instructional operating system
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
PortOS: an educational operating system for the Post-PC environment
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
The Kaya OS project and the μMPS hardware emulator
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
A survey of contemporary instructional operating systems for use in undergraduate courses
Journal of Computing Sciences in Colleges
Realism and simplicity: disk simulation for instructional OS performance evaluation
Proceedings of the 37th SIGCSE technical symposium on Computer science education
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Using iPodLinux in an introductory OS course
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Implementation of threads as an operating systems project
Proceedings of the 39th SIGCSE technical symposium on Computer science education
An experimental laboratory environment for teaching embedded operating systems
Proceedings of the 39th SIGCSE technical symposium on 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 about threading: where and what?
ACM SIGACT News
Investigating virtual passthrough I/O on commodity devices
ACM SIGOPS Operating Systems Review
Towards virtual passthrough I/O on commodity devices
WIOV'08 Proceedings of the First conference on I/O virtualization
VIREOS: an integrated, bottom-up, educational operating systems project with FPGA support
Proceedings of the 42nd ACM technical symposium on Computer science education
Teaching operating systems as how computers work
Proceedings of the 42nd 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
Simple OS: a component-based operating system simulator in the spirit of the little man
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
Undergraduate operating systems courses are generally taught using one of two approaches: abstract or concrete. In the abstract approach, students learn the concepts underlying operating systems theory, and perhaps apply them using user-level threads in a host operating system. In the concrete approach, students apply concepts by working on a real operating system kernel. In the purest manifestation of the concrete approach, students implement operating system projects that run on real hardware.GeekOS is an instructional operating system kernel which runs on real hardware. It provides the minimum functionality needed to schedule threads and control essential devices on an x86 PC. On this foundation, we have developed projects in which students build processes, semaphores, a multilevel feedback scheduler, paged virtual memory, a filesystem, and inter-process communication. We use the Bochs emulator for ease of development and debugging. While this approach (tiny kernel run on an emulator) is not new, we believe GeekOS goes further towards the goal of combining realism and simplicity than previous systems have.