Course Texts

Operating Systems: Three Easy Pieces

The book is centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and persistence. In understanding the conceptual, you will also learn the practical, including how an operating system does things like schedule the CPU, manage memory, and store files persistently.

Dive into Systems

Dive into Systems is a free, online textbook that serves as a gentle introduction to computer systems, computer organization, and parallel computing.

Pawtograder

https://pawtograder.khoury.northeastern.edu/course/647

Khoury Systems

Knowledge IT Documentation
A catalog of information on computing resources in Khoury College

Khoury Accounts

How do I access Linux at Khoury?

Assembly Programming

x86-64 Machine-Level Programming

CMU’s x86_64 Assembly guide. Covers various aspects of programming in assembly.

Caveat: Lists the %rbp register among the ordinary caller-save registers, whereas we keep its special meaning as the stack frame base pointer in this course.

Intel® 64 and IA-32 Architectures Software Developer’s Manual
Intel’s x86_64 reference manual with detailed information on every opcode.
Filippo Valsorda’s Searchable Linux Syscall Table
A listing of the Linux system call numbers for the x86-64 architecture, with name, arguments, and links to the manual and the implementation.
ASM Visualizer
An assembly visualization tool from the Dive into Systems team.

C Programming

Stanford’s Essential C

Learn C

The C Programming Language

Godbolt Compiler Explorer

See the relationship between C code and Assembly, and quickly test out simple C programs.

The Development of the C Language

Operating Systems History

Understanding the Instruction Pipeline

Modern Microprocessors

Other Tools

Useful man Pages

The Basics

man, ls, pwd, mkdir, rmdir, rm, cd, mv, cp, touch, echo, whoami, sort, cat, nl, cut, grep

Processes

ps, clone, getpid, fork, exec, proc

File I/O

open, close, read, write

Emacs

Guided Tour of Emacs

Emacs Cheat Sheet

Vim

Interactive Vim Tutorial

Vim Cheat Sheet

Git

Git & GitHub Learning Resources

Git Tutorial (GeeksforGeeks)