3.8K ·GitHub
What is this?
This is an open-source introductory systems programming textbook (the Coursebook) used by the CS 341: System Programming course at the University of Illinois Urbana-Champaign, covering low-level C programming and Linux internals.
Is this a textbook or a full course with lectures?
It's just the textbook content itself, written as source that gets exported to pdf, markdown, and html; it builds on and aims to replace an older wikibook experiment.
How do I read it?
Grab the latest compiled single-file version, main.pdf, directly from the repo; if you want to build it yourself from source, follow the instructions in CONTRIBUTING.md.
What background do I need before diving in?
You should already have taken an introductory programming language course and be comfortable reading assembly instructions, since the book jumps straight into low-level C.
Is everything taught in C, or are other languages covered too?
Everything is taught in C only, chosen specifically because it's the de-facto language of the Linux Kernel that the course focuses on.
Who is this written for?
Primarily UIUC students enrolled in CS 341, but since it's fully open source anyone studying systems programming on their own can use it.
What does this improve over the original wikibook it's based on?
It aims to raise the quality and factual rigor of the old wikibook by adding citations, footnotes, extended reading, and a glossary, while keeping the content open.
What formats can I actually get the book in?
The project is built to export as PDF, Markdown, and HTML, in addition to the compiled main.pdf already available in the repo.
Does the book cover general OS theory or just Linux specifics?
It's framed around systems programming in C with a Linux focus, since C is treated as the de-facto language of the Linux Kernel throughout the material.
What are similar projects?
How-to-Make-a-Computer-Operating-System, os01, MathModel, linux-insides, libpku, REKCARC-TSC-UHT, csapp-zh-markdown, cs-self-learning
Which topics is it in?
posix, university, tex, textbook, latex, operating-system, unix, academic, systems-programming, curriculum, computer-science, book