PB158 · Lecture 1
Course orientation
Lecture 1
This course grades what you can see a system do, not what you recite.
Lecture 1 · Hold these
Two claims. If you remember nothing else from this half hour, remember these.
Part I
The gap between what you can define and what you have seen.
Part I · Staff
krajicek@mail.muni.cz
Write early. Any question is reason enough, and email reaches the course staff between seminars.
Part I · The gap
This is not a gap in you. It is a gap in the curriculum, and it dates from a licence change in 1979. [S5]
Part I · History
In 1977 John Lions wrote a line-by-line commentary on the UNIX version 6 kernel. Hundreds of universities taught from it. [S5]
The teaching stayed theoretical [S5]. This course puts you in front of a tracer, attached to a running program.
Part I · Thesis
This course grades the second one [T1]. You can already recite more than you can predict.
Part I · Test it
In your head, say the steps between a Python f.write() returning and the bytes being on the disk.
f.write()
If your explanation had a gap, that gap is the course. This course does not grade this test, and nobody has to say it aloud.
Part I · Practicum
A lecture course asks you to reproduce an explanation. A practicum asks you to produce an observation and defend it.
So I will not prove the thesis in this lecture. The next lecture opens with a three-line program whose output disappears.
Part II
Eight topic areas, and one idea that carries all of them.
Part II · The idea
Every operating-system interface keeps its promise only under conditions nobody wrote down.
A leak is your program leaving the scope, not the abstraction failing [V4]. A library's documentation is a claim. The system call it issues is a fact [V21]. Trust the trace when they disagree.
Part II · Topic 1
The course starts here. Following one write down makes a tracer necessary [T2].
Part II · Topic 2
You will be able to name where the boundary sits on each platform, and say why they chose differently.
Part II · Topic 3
strace
You will be able to state a tracer's cost and its blind spot.
Part II · Topic 4
You will be able to read a memory figure and say which question it answers.
Part II · Topic 5
You will be able to say why a segmentation fault is the protection working rather than failing.
Part II · Topic 6
Here the absence is the finding. You will read an empty trace as evidence.
Part II · Topic 7
You will be able to say which half of a session a model can take.
Part II · Topic 8
By then your list has entries like a write that returned before the data was safe.
Part III
The rules, the dates, and the argument behind them.
Part III · Components
Both rules above are specific to PB158, and you must pass both components. I give the shrinking mechanism, and the reason for the AI rule, later in this part.
Part III · Dates
Nothing is set today. The first assignment arrives next Tuesday, and you have ten days for it.
Part III · Shape
Resubmit as often as you like until the deadline. A fail costs time and nothing else.
Push your failures. A passing commit is by construction the one with nothing left that the checker can catch.
Part III · Reward
A checker you may retry without limit becomes a target, so it stops being a good measure of you [V16]. Hence the unaided core.
Part III · The grader
An AI grades both the exam and the homework. A human stays on the loop.
Part III · Failure
So tell us when a result is wrong. "the human's job is to adjudicate a raised alarm" [V13]
Part III · Honesty
The bet: unlimited retries, held by two counterweights — a checker naming defects, and an unaided exam core. Three published results argue against it.
Edwards' counterweight was student-written tests [S17]. Ours are the two above.
Part IV · Reading
Pick one.
Part V · Windows
cl.exe
The course stays Microsoft native. WinDbg reads MSVC symbols.
Part V · Linux
Faculty machines exist for both platforms, so you are not blocked if your laptop refuses.
Part V · Warnings
Use the Developer Command Prompt. An ordinary shell says "not recognised", which reads as a broken install rather than a missing environment.
Lecture 1 · Close
Now the second lecture: three lines of Python whose output disappears.
Take it with you
ondrasek.github.io/talks
me@ondrejkrajicek.com