Presentation is loading. Please wait.

Presentation is loading. Please wait.

Department of Computer Science and Engineering

Similar presentations


Presentation on theme: "Department of Computer Science and Engineering"— Presentation transcript:

1 E81 CSE 422S Operating Systems Organization Fall 2018 Course Introduction
Department of Computer Science and Engineering Washington University, St. Louis MO Brian Kocoloski Thanks to Chris Gill and David Ferry who developed much of this material in previous iterations of the course

2 What is an operating system (OS)?
First and foremost, it is a program, not completely unlike programs you’ve written before The primary difference between the OS and other programs is the OS runs with high enough privilege to directly access hardware resources CPU processors Memory I/O devices (keyboard/mouse/network card/etc.) An operating system is a program that Provides abstractions to make applications more portable across different types of hardware Provides interfaces with which applications can safely access hardware Implements policies that efficiently utilize hardware resources E81 CSE 422S - Operating Systems Organization

3 Operating System User applications User applications User applications
Peripheral Devices (keyboard, WiFi, etc.) CPU Cores Main memory (RAM) Secondary memory (hard drives) E81 CSE 422S - Operating Systems Organization

4 Three Goals of this Course
The goals of this course are for students to develop: Good intuition about OS operation and design principles OS mechanisms: syscalls, interrupts, threads, processes, scheduling, synchronization Skills for monitoring the runtime operation of an OS Tracers: ftrace (trace-cmd and kernelshark), strace User space benchmarking using timers, etc. The scientific method (hypothesis, prediction, experiment, analysis, repeat) Hands-on experience modifying and evaluating an OS Source-code intensive course based on Linux You’ll be asked to modify, build, and evaluate the OS kernel in different ways Studios will help you gain experience and expertise to use in the lab assignments E81 CSE 422S - Operating Systems Organization

5 The Linux kernel Most widely deployed open-source project in the world
Powers smartphones (and even smaller devices) as well as the world’s largest supercomputers Supports hundreds of different computer architectures Written in a combination of C and architecture-specific assembly language E81 CSE 422S - Operating Systems Organization

6 Course Environment Our OS of choice is the Linux kernel
This course is 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  Reasonably fast, provides interesting multi-core behavior, affordable Each Raspberry Pi 3 has 1.2GHz 64-bit quad-core ARMv8 for < $100 (CanaKit) Useful, and used elsewhere in WUSTL CSE research and education The Raspberry Pi family is based on the ARM processor architecture The OS has lots of processor-dependent code (in separate directories) Will occasionally mention x86 differences, where relevant E81 CSE 422S - Operating Systems Organization

7 Class Readings Course textbook (lots of good advice to help you succeed): Linux Kernel Development, 3rd Ed., by Robert Love, 2010. 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 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 E81 CSE 422S - Operating Systems Organization

8 Class Readings E81 CSE 422S - Operating Systems Organization

9 Communication All announcements will be posted on Piazza
You should have received a link Let me know if you have not Post all course-related questions to Piazza You will benefit when others ask questions, and others will benefit when you ask questions I will give better and more helpful replies because I will have more time The course schedule is posted online Any significant changes to the schedule will be posted online, and an announcement will be made on Piazza E81 CSE 422S - Operating Systems Organization

10 Words of Advice (from me)
Kernel hacking requires a lot of patience (and thought) Your systems will crash Don’t underestimate the power of using pencil and paper before you start typing Work efficiently but persistently Our goal is for the time spent “hands-on” to be similar to our intro courses 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) Brush up on your C Brush up on shell scripting E81 CSE 422S - Operating Systems Organization

11 Comments 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.” E81 CSE 422S - Operating Systems Organization

12 Comments from Previous Students
“It made me more interested in the low–level and hardware aspects of a computer! It also made the "operating system" a less scary and complex topic.” “[You] learn how the operating system interfaces with the hardware to allow users do everything from issue commands to compiling programs.” “ … it felt like we were doing things that could actually be accomplished in the real world.” E81 CSE 422S - Operating Systems Organization

13 A Typical Class About 30 minutes of lecture discussing that day’s readings and course topic About 50 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 4 students E81 CSE 422S - Operating Systems Organization

14 Today’s Studio Downloading and Compiling the Linux kernel
You don’t need your Raspberry Pi until Wednesday We are using a technique called cross-compiling You are compiling the kernel on different machine from where we will ultimately run the kernel (your Raspberry Pi) Compile the kernel here Install the kernel here linuxlab cluster E81 CSE 422S - Operating Systems Organization


Download ppt "Department of Computer Science and Engineering"

Similar presentations


Ads by Google