6s081 Lec Intro 3
6s081 Lec Intro 3
6s081 Lec Intro 3
S081: Introduction
Adam Belay
abelay@mit.edu
6.S081 Objectives
• Understand how OSes are designed and
implemented
• Hands-on experience building systems software
• Will extend a simple OS (xv6)
• Will learn about how hardware works (Risc-V)
Some things you’ll do in 6.S081
1. You will build a driver for a network stack that
sends packets over the real Internet
2. You will redesign a memory allocator so that it
can scale across multiple cores
3. You will implement fork and make it efficient
through an optimization called copy-on-write
What is the purpose of an OS?
1. Abstraction
• Hides hardware details for portability and convenience
• Must not get in the way of high performance
• Must support a wide range of applications
2. Multiplexing
• Allows multiple applications to share hardware
• Isolation to contain bugs and provide security
• Sharing to allow cooperation
OS Organization
Userspace
vi gcc nginx sshd
System calls
Kernel
Kernelspace