CS ATLAS A map of computing

Domain 05 —

Operating Systems

5 topics1961 — 1969

Chronology — 23 entries

Chronology

Every milestone in this domain, ordered by date. An event shared by several topics is counted once.

1956GM-NAA I/OAn early batch-processing operating system.Batch & Time-Sharing Systems
1961CTSS goes liveThe first time-sharing system.Batch & Time-Sharing Systems
1962Atlas demand pagingThe first implementation of virtual memory.Virtual Memory
1964Multics beginsHierarchical file systems and virtual memory.Batch & Time-Sharing Systems
1965The Multics process modelAddress spaces and resource isolation.Processes & Threads
1967IBM CP/CMSA forerunner of the hypervisor.Virtualization & Containers
1969Unix is bornIt grows out of the ruins of Multics.Batch & Time-Sharing Systems
1969Unix virtual memoryfork and copy-on-write.Virtual Memory
1969Unix, first editionAn internal project at Bell Labs.Unix & C
1971Unix fork/execLightweight process creation.Processes & Threads
1973Unix rewritten in CPortability brings wide adoption.Unix & C
1980PCs enter protected modeVirtual memory reaches personal computers.Virtual Memory
1983System V and BSD divergeTwo branches: commercial and academic.Unix & C
1985The Mach microkernelUser-level threads and message passing.Processes & Threads
1988The POSIX standardAn effort to standardise the interfaces.Unix & C
1991The Linux kernel is releasedThe start of open-source Unix-compatible systems.Unix & C
1995Threads built into JavaConcurrency enters a mainstream language.Processes & Threads
1999VMware is foundedx86 virtualisation becomes a business.Virtualization & Containers
2000Huge pages and TLB tuningA response to the memory wall.Virtual Memory
2003XenParavirtualisation, an early foundation of cloud computing.Virtualization & Containers
2005Multicore goes mainstreamConcurrency becomes a general programming problem.Processes & Threads
2013DockerThe container becomes the unit of development and delivery.Virtualization & Containers
2014KubernetesContainers get a de facto orchestrator.Virtualization & Containers

Curriculum

Courses and labs

Which university courses this domain usually maps to, and whether the practical work is a standalone project course or an in-class lab.

Standalone lab course / project

The most demanding lab course of the degree: you add system calls, change the scheduler and write a file system inside a real kernel.

Courses

Operating SystemsOperating Systems Project

Open courses

  • MIT 6.1810 Operating System Engineering
  • Berkeley CS 162 Operating Systems

What the labs look like

  • xv6 labs

    MIT 6.1810: util, syscall, pgtbl, traps, cow, thread, net, lock, fs, mmap — ten labs

  • ucore / rCore

    Tsinghua’s ucore and rCore, from bootloader all the way to file systems and processes

  • Nachos / Pintos

    Classic teaching kernels, used by Berkeley CS 162 and many other schools