Skip to content

Instantly share code, notes, and snippets.

@steveklabnik
Forked from ashleygwilliams/workshop.md
Last active October 26, 2016 18:39
Show Gist options
  • Save steveklabnik/f0f6ed2dbd1e01bc24aadc68ccdabf55 to your computer and use it in GitHub Desktop.
Save steveklabnik/f0f6ed2dbd1e01bc24aadc68ccdabf55 to your computer and use it in GitHub Desktop.

9:05- 9:25 1. Welcome and Introduction (20min)

  • Operational Stuff (10min) [Ashley]

    • Introduction to instructors
    • Where are all the materials
    • Explain the schedule, when are breaks
    • Code of Conduct
    • What to do if you need help
  • What is the intermezzOS project? (10min) [Steve]

    • Feelings about systems programming
    • What we expect you to know (and where to get help if you don't know it)
    • What we don't expect you to know
    • Show the book and the kernel
    • If you are bored at any point, feel free to hack on the book or the kernel!

9:25 - 9:55 2. Up and Running (30min) [Ashley]

Students are expected to have installed all necessary elements before attending the workshop. For students that have not done this, we will offer two virtualization options.

To test that students are up and running, we will have them run a small version of IntermezzOS that just prints Hello Rust Best Rust to the screen.

  • Talk about the parts of the env that you installed (10min)

    • Explain each part and what it does
    • Go through each part and ask a student to explain what it does
  • What happens when we start up (10min)

    • Go through step by step what happens when we start up
    • Have a student say what happens at each step
  • Get up and running and play with making it print something different (10min)

    • Leave last 2 min for questions

9:55 - 10:25 3. Wat is Operating System (30min) [Steve]

                - Two definitions (three easy pieces vs "multiplex & abstractions")
                - monolithic kernel vs microkernel vs exokernel vs unikernel
                - major common abstractions: processes, files, io, protection, address spaces
                - a short history of OSes: none, batch, single user, multi user

10:25 - 10:55 4. A Mental Model for a VGA driver (30min) [Ashley]

10:55 - 12:00 5. A Test-Driven VGA Driver (100min) [Ashley] 02:05 - 02:40 - Creating a Rust Project (10min) - together - Hello world (20min) - We write the test together, and the code together. - Colors (20min) - We write the test together and the students write the code. we review - New Line Characters (20min) - Students write test and the code. we reivew - Scrolling (30min) - Students write the tests and the code. we reivew

02:40 - 03:10 6. The Boot Process (30min) [Steve]

                - multiboot headers
                - hello world
                - making an iso / running in qemu
                - paging
                - gdt
                - jump to long mode
                - hello rust

03:10 - 04:40 7. Booting Up: Together (90min) [Steve]

                - multiboot headers (10 mins)
                - hello world (10 mins)
                - making an iso / running in qemu (10 mins)
                - paging (15 mins)
                - gdt (10 mins)
                - jump to long mode (10 mins)
                - hello rust (25 mins)

04:40 - 05:00 8. Next Steps and Questions Ashley and [Steve]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment