Department of Computer Science and Engineering

Slides:



Advertisements
Similar presentations
Introduction CSCI 444/544 Operating Systems Fall 2008.
Advertisements

Systems Programming Course Gustavo Rodriguez-Rivera.
Figure 1.1 Interaction between applications and the operating system.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
CS 390 Unix Programming Environment Summer Suchindra Rengan - CS3902 Course Details Instructors Suchindra Rengan – ‘sachin’ ( Section 001)
Nachos Overview 2011 级 OS 课程设计 2013 秋. to get your hands dirty Read and analyze Build observe.
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
UNIX and Shell Programming
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Overview of Operating Systems Introduction to Operating Systems: Module 0.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Course Introduction David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO 1E81.
Introduction and Overview Winter 2013 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
UNIX U.Y: 1435/1436 H Operating System Concept. What is an Operating System?  The operating system (OS) is the program which starts up when you turn.
Course Introduction CSSE 332 Operating Systems Rose-Hulman Institute of Technology.
The Post Windows Operating System
COMPSCI 110 Operating Systems
Operating System Structures
Chapter Objectives In this chapter, you will learn:
Linux Details: Device Drivers
CSC207 Fall 2016.
Resource Management IB Computer Science.
E81 CSE 522S Advanced Operating Systems Fall 2016 Course Introduction
Current Generation Hypervisor Type 1 Type 2.
Selected topic in computer science (1)
Course on Embedded Systems Introduction
CSE 374 Programming Concepts & Tools
Midterm Review Chris Gill CSE 422S - Operating Systems Organization
CSE 410, Spring 2006 Computer Systems
COMPSCI 110 Operating Systems
Advanced Operating Systems (CS 202)
Midterm Review David Ferry, Chris Gill
Day 12 Threads.
Department of Computer Science and Engineering
Course Introduction CSSE 332 Operating Systems
Operating Systems Georgios Varsamopoulos
Overview of the Lab 2 Assignment: Linux Scheduler Profiling
Semester Review Chris Gill CSE 422S - Operating Systems Organization
CSCI/CMPE 3334 Systems Programming
Operating Systems and Systems Programming
Computer Science I CSC 135.
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
CSE 522S Advanced Operating Systems Course Introduction
Unit 1: Introduction to Operating System
What is Concurrent Programming?
Introduction to Operating Systems
Introduction to Operating Systems
Linux Details: Device Drivers
Introduction to Operating Systems
Midterm Review Brian Kocoloski
How & When The Kernel Runs
Java Programming Introduction
OS Components and Structure
Kernel Tracing David Ferry, Chris Gill, Brian Kocoloski
CSE 153 Design of Operating Systems Winter 2019
Interrupts and Interrupt Handling
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
CSE 451: Operating Systems Winter 2007 Module 1 Course Introduction
Processes David Ferry, Chris Gill, Brian Kocoloski
Page Cache and Page Writeback
Sarah Diesburg Operating Systems CS 3430
Lecture Topics: 11/1 Hand back midterms
An Introduction to Operating Systems
CS 111 – Sept. 20 Operating Systems Commitment: definition origin
Presentation transcript:

E81 CSE 422S Operating Systems Organization Fall 2018 Course Introduction Department of Computer Science and 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

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

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

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

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

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

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

Class Readings E81 CSE 422S - Operating Systems Organization

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

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

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

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

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

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