Download Course Introduction - Department of Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

RSTS/E wikipedia , lookup

Linux adoption wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

CP/M wikipedia , lookup

Mobile operating system wikipedia , lookup

Berkeley Software Distribution wikipedia , lookup

Linux kernel wikipedia , lookup

Unix security wikipedia , lookup

Spring (operating system) wikipedia , lookup

Smallfoot wikipedia , lookup

Process management (computing) wikipedia , lookup

DNIX wikipedia , lookup

Distributed operating system wikipedia , lookup

Kernel (operating system) wikipedia , lookup

Security-focused operating system wikipedia , lookup

Transcript
Course Introduction
David Ferry, Chris Gill
Department of Computer Science and Engineering
Washington University, St. Louis MO
[email protected]
E81 CSE 522S - Advanced Operating Systems
1
Three Goals for Students
The goal of this course is that students develop:
1. A good intuition about OS operation and design principles
–
OS mechanisms: syscalls, interrupts, processes, process scheduling, process
synchronization, inter-process communication
2. Skills for monitoring the runtime operation of an OS
–
–
Tracers: ftrace (trace-cmd and kernelshark), strace
User space benchmarking
3. Hands-on experience in modifying an OS
–
–
–
Source-code intensive course
You’ll be asked to modify and evaluate the OS
Course project requires a substantial modification
E81 CSE 522S - Advanced Operating Systems
2
Course Motivation
For an increasing number of computer applications, general purpose
operating systems are not enough, E.g.:
–
–
–
–
Real-time Systems
Embedded Systems
Cyber-physical Systems
High-speed Networking
Or are moving away from discrete microprocessor designs, E.g.:
–
–
Automotive
Digital control
Many graduate students are doing research that modifies or heavily
depends on the details of the kernel.
E81 CSE 522S - Advanced Operating Systems
3
Topics Overview
The OS is too large to cover everything! This course specifically
focuses on OS features that affect process semantics. E.g.:
–
–
–
–
Scheduling
Inter-process communication
System timing
See course website for specifics
This course doesn’t cover:
–
–
–
–
–
Device drivers
File systems
Networking
Memory management
Plenty other topics
E81 CSE 522S - Advanced Operating Systems
4
Course Environment
•
Our OS of choice is the Linux kernel
–
–
–
•
Open source, most deployed
Most practical for research
Broadly applicable skill set
The course is designed around the Raspberry Pi 2
–
–
–
–
–
We don’t want to modify the kernel on “production” machines
Provides four cores at 900MHz
Reasonably fast, provides interesting multicore behavior
Cheap
Useful and used elsewhere in WUSTL CS curriculum
E81 CSE 522S - Advanced Operating Systems
5
Words of Warning
• OS hacking requires a lot of patience and thought
–
–
–
–
–
•
The RPi2 is an ARM processor
–
–
•
RPI2 kernel compile time: approx 90 minutes!
Spend more time thinking through code before writing
Huge established codebase to digest
Our goal is that your “hands-on” time is similar to other courses
Start early, fail early.
The OS has lots of processor dependent code
Will try to provide pointers to x86 references as well
Your instructor knows less than you think!
–
–
There are too many specifics in the kernel to know everything
But we’re happy to talk about anything
E81 CSE 522S - Advanced Operating Systems
6
Course Format
•
•
•
•
Class time is split between lecture and studios.
There will be two lab assignments in the first 8 weeks of class.
There will be a course project in the last 6 weeks of class.
We will have a midterm and final exam.
E81 CSE 522S - Advanced Operating Systems
7
Class Readings
Course textbook:
Linux Kernel Development, 3rd Ed., by Robert Love, 2010.
–
–
–
–
Book is a great starting resource for kernel hackers
Other class readings are relatively current documents about the Linux kernel
Plan to look at a lot of source code in your spare time
Course website provides a number of free/online references
Google is your friend
– Linux is widely documented (but often not current)
– Lots of resources exist for individual directories, files, and even functions
E81 CSE 522S - Advanced Operating Systems
8
This is a New Course
Hopefully this course:
– Isn’t too hard (or too easy)
– Builds upon basic OS understanding
– Works for people with basic to advanced knowledge of Linux
I welcome comments and suggestions about topics and pacing
Please come talk to me if you have any questions or comments
E81 CSE 522S - Advanced Operating Systems
9