130 likes | 141 Vues
This course explores the operation and design principles of advanced operating systems, including additional mechanisms like signals, pipes/fifos, sockets, and different OS design models. Students will gain skills in monitoring the runtime operation of OS and learn new features of monitoring tools. The course is based on the Linux kernel and focuses on the Raspberry Pi 3 platform.
E N D
E81 CSE 522S:Advances Operating SystemsFall 2019 Department of Computer Science & Engineering Washington University, St. Louis MO Brian Kocoloski brian.kocoloski@cse.wustl.edu *Thanks to Chris Gill and David Ferry who developed much of this material in previous iterations of the course
Three Goals for Students • Build deep understanding about OS operation and design principles • Additional mechanisms that we did not cover in 422: signals, pipes/fifos, sockets, etc. • Additional OS design models beyond Linux: virtual machines, unikernels, etc. • Enrich skills for monitoring the runtime operation of an OS • New features of monitoring tools, e.g., event queries for kernelshark • The scientific method (hypothesis, prediction, experiment, analysis, repeat) • Gain further experience enforcing/evaluating OS behavior • E.g., forensics for memory, file system, processes/threads, timing • As in CSE 422, the studios will help you gain experience and expertise to use in the lab assignments • Analyzing + developing code in experimental kernels CSE 522S – Advanced Operating Systems
Course Environment • As in CSE 422, our OS of choice is (mostly) the Linux kernel • Two reasons: general ubiquity and open source availability • This course is again designed around the Raspberry Pi 3 • Avoids modifying the kernel on machines others may need to use • Can quickly re-deploy a new version of the kernel if the one running locks up • “Personal computing” at its best • The Raspberry Pi family is based on the ARM processor architecture • Will occasionally mention x86 differences, where relevant CSE 522S – Advanced Operating Systems
Grading CSE 522S – Advanced Operating Systems
Course Textbooks Linux Kernel Development, 3rd Ed., by Robert Love, 2010. • A great starting resource for kernel hackers • Focused on kernel design and implementation • Same books as in CSE 422S • Linux System Programming, by Robert Love, 2013. • - Focused on userspace programming instead of in-kernel issues • - Heavy IPC focus: pipes, sockets, signals, etc. CSE 522S – Advanced Operating Systems
Class Readings CSE 522S – Advanced Operating Systems
Other Resources • Many other textbooks listed online • lwn.net summarizes current debates in the kernel community regarding how features should be implemented • Google is your friend • Linux is widely documented (but documentation often is not current) • Lots of resources exist for individual directories, files, and even functions • We will provide links to some of those resources on the course web site CSE 522S – Advanced Operating Systems
Warnings from Previous Students • “You program in C to reconfigure a Linux Kernel on a Raspberry Pi. Prepare to optimize your workflow for testing, and brush up on C – you'll be using it a lot.” • “I had trouble doing studios because I never made it to class. So I was always playing catch–up and stressed out by the studios.” CSE 522S – Advanced Operating Systems
A Typical Class • About 20 minutes of lecture discussing that day’s readings and course topic • About 60 minutes of studio time • Studios • Offer direct experience working with (and within) the kernel • Familiarize students with key tools and techniques for using, profiling, analyzing, and extending kernel features. • Work in groups of up to 3 students CSE 522S – Advanced Operating Systems
Words of Advice (from me) • Kernel hacking requires a lot of patience (and thought) • Your systems will crash • It’s important to optimize your work environment to handle frequent crashes and reboots • Work efficiently but persistently • Start early, fail (or succeed) quickly, iterate rapidly, progress steadily over time • A few tips for this course (to avoid problems we’ve seen already) CSE 522S – Advanced Operating Systems
Optimize your Workflow • Your systems will hang a lot • Course reasons • We’re doing hands-on design and implementation of kernel code • Unlike userspace, when the kernel has a bug, the whole system usually crashes • Hardware reasons • WiFi is often spotty in this room • Many students really on VPN connection to transfer files between RPi3 and Linux development systems CSE 522S – Advanced Operating Systems
Optimize your Workflow • shell scripts • Automate tedious processes such as file transfers and kernel compilation commands • ssh keys • Can be used to authenticate between RPi and linuxlab without passwords • Develop code directly on the Raspberry Pi • In 422, you probably built on linuxlab and transferred to RPI3 • This was done to protect your work from corruption • If you use source control (e.g., git), you may find it easier to build directly on the RPi3 CSE 522S – Advanced Operating Systems
Today’s Studio • Downloading and Compiling the Linux kernel • Installing the Linux kernel on your RPi3 • If you took 422 here in the last 2 years, you’ve likely already done this CSE 522S – Advanced Operating Systems