1 / 13

E81 CSE 522S: Advances Operating Systems Fall 2019

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.

minervar
Download Presentation

E81 CSE 522S: Advances Operating Systems Fall 2019

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. Grading CSE 522S – Advanced Operating Systems

  5. 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

  6. Class Readings CSE 522S – Advanced Operating Systems

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

More Related