1 of 32

ECS 150: Operating Systems (Fall ‘24)

Sam King

2 of 32

A little bit about me

Graduated from UCLA, Stanford, Michigan

Been a professor since ‘06, like teaching

Usually teach Systems, Security, and iOS!

3 of 32

Professor at UIUC from ‘06 - ‘14

  • Tenure in ‘12

  • Research on security and OS
    • Web browsers
    • Operating systems
    • Hardware
    • Deterministic record/replay

4 of 32

Started a company in ‘12, moved to California in ‘13

5 of 32

Started a company in ‘12, moved to California in ‘13

Davis High, class of ‘93

6 of 32

Company acquired by Twitter in ‘14, left UIUC

  • Wanted to push myself professionally and intellectually

  • Work on signup and login security, fake accounts

  • Code committing engineer

  • Led a small team

7 of 32

Head of Fraud and Identity @ Lyft ‘16 - ‘17

  • Also head of our enterprise engineering team

  • Still work on signup and login security, added fraud

  • Lots of other topics too

  • Lead a big team

8 of 32

Back in academia in ‘18 (Go Aggies!)

CS @ UCDavis!

Research interests, define the notion of a digital identity for the 21st century:

  • Computer security
  • Fraud and Identity
  • Fake accounts, account takeover

9 of 32

Started a company based on my research

An SDK to let your users scan credit cards in your app while cleanly stopping stolen cards.

Run on over 1 billion (!) devices

10 of 32

Bouncer acquired by Stripe in 2021, I went on leave for 2.5 years

Head of Fraud and ML from 2021 - 2023

Oversee the integration of Bouncer’s tech into Stripe

Responsible for the fraud ML that runs on every single Stripe transaction

11 of 32

Back from leave in 2023 (Go Aggies, again!)

Still work on digital identities for the 21st century

Research on biohacking and type 1 diabetes

Built an iOS app that acts as an artificial pancreas!

12 of 32

Unique industry experience for an academic

  • Not in a research lab, responsible for real products

  • Experience with a tiny three person startup

  • Experience with a large public tech company

  • Experience with a mid-size startup, hypergrowth

13 of 32

What is an operating system?

14 of 32

An operating system is...

Manages the underlying physical hardware

Provides abstractions to software running above

In this class we’ll talk a lot about the illusion that operating systems provide and the physical reality (hardware, etc) that they must manage to provide this illusion

15 of 32

Operating systems as an illusionist

16 of 32

Why study operating systems?

It’s required :)

Might write an operating system

Understand how things work behind the scenes

Debug programs that you write that run on top of operating systems

17 of 32

Operating systems are critical for modern software development

18 of 32

Problem: writing apps is a lot harder than traditional software

  • Abstractions are more difficult to work with

  • Stronger security

  • Apps are distributed from the start

19 of 32

ECS 150 Goals

Work with system level abstractions directly

  • Processes, threads, networks, APIs, and file systems

Understand how things work behind the scenes

Some experience with OS implementation details

(Small) taste of what it’s like to write modern software

20 of 32

What about LLMs?

LLMs are amazing technology that will help experts build software faster

You are likely not experts!

You can think of them as providing a higher level of abstraction for working with software

This class will give you some of the fundamentals to start to become an expert

Not true!

21 of 32

Approach to the class

Lectures on M/W/F @ 11am (Sam)

  • Mostly conceptual with some pragmatic examples
  • We will record these if the classroom supports it (but warning, I will mess up the recording this quarter so don’t rely on it)
  • Lecture is really important for this class, this is where I’ll go over the parts of the class that we’ll focus on this quarter

Discussion section on Friday @ 10am (TAs)

  • Problem sets and pragmatic examples
    • Important for preparing for the midterm and the final because we don’t have homework in this class
  • Introduce projects

22 of 32

Graded materials

Four projects, mostly small projects meant to get you some hands on experience with the concepts that we’re talking about in class

A midterm and a final

23 of 32

Topics for this quarter

  • Process abstractions and the basics of system programming
  • Threads and concurrency
  • Network programming and APIs
  • File systems

24 of 32

Projects will increase in difficulty and time

Build some command line utilities

Build a shell

Modify a web server

Build a distributed file server

25 of 32

Exams

Midterm: Processes, system programming, threads, and concurrency

Final: All of the material from the midterm + Networking, APIs, file systems, and thread implementation

In general, in our exams we will have a heavy emphasis on programming, understanding code, and finding bugs in code.

26 of 32

We’ll use gradescope + open source textbook

Gradescope for autograding projects

We’ll provide GitHub Codespaces for you to work on your projects

Operating Systems: Three Easy Pieces

27 of 32

Grade breakdown

28 of 32

Curved grading

Expectation is that the average is in the C+/B- range

Will adjust as more grades come in

Will be transparent

29 of 32

General information

30 of 32

Meet Anirudh, Hari, and Sai

31 of 32

Q/A

Q: Are you going to open up enrollment?

A: No. We’re limited by the size of the classroom so I can’t increase enrollment

Q: Can I get a PTA?

A: No. Please work with the CS advising office if you feel that you have a reason to need a PTA.

32 of 32

More information