The Sudonomicon

An Introduction to Unix Systems for the Cautious and Weary

Advent 356 by Danielle Navarro

Many think they know Unix. Few realize that what they know is just a shell. Beneath it lie mysteries both bewildering and wonderful: ports, processes, permissions, files that are not files, and components built atop other, older components that occasionally rise to the surface like ancient sea creatures believed long extinct.

Like such creatures, Unix will outlive those who mock it. Welcome, then, to a world in which the strange will become familiar, and the familiar, strange. Welcome, thrice welcome, to Unix systems programming.

This lesson notes and working examples for instructors to use as a starting point. We do not expect novices with only basic Python and Unix experience to be able to learn from this on their own. As a musical analogy, these notes are the chord changes and melody; we expect instructors to create an arrangement and/or improvise over the material when delivering it. Please see Teaching Tech Together for background.

Syllabus

  1. Introduction: who this is for and what it covers
  2. The Filesystem: how to manage files, directories, and their stranger kin
  3. Processes: how to create, signal, and interact with running programs
  4. Running Jobs: how to do work on demand
  5. HTTP: how to move data from place to place
  6. Authentication: how to tell who someone is
  7. Virtualization: how and why to pretend you have lots of computers
  8. Conclusion: where we've been and what comes next

Appendices

  1. Bibliography
  2. Glossary
  3. License
  4. Code of Conduct
  5. Contributing

Start where you are
Use what you have
Help who you can