All Projects → jstrieb → systems-programming-cheat-sheet

jstrieb / systems-programming-cheat-sheet

Licence: MIT license
Cheat sheet for x86-64 Unix systems programming

Programming Languages

TeX
3793 projects
Makefile
30231 projects

Projects that are alternatives of or similar to systems-programming-cheat-sheet

cheat-sheet
collection of cheat sheets
Stars: ✭ 150 (-54.27%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets, cheat-sheet
memo-dev
Knowledge base, Today I Learned, Cheatsheet ... Call this as you want ...
Stars: ✭ 13 (-96.04%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets, cheat-sheet
Asciidots-Cheat-Sheet
My personal Asciidots Cheat Sheet in .jpg .odt .pdf .png and obviously in .txt
Stars: ✭ 17 (-94.82%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets, cheat-sheet
cheat-sheet-pdf
📜 A Cheat-Sheet Collection from the WWW
Stars: ✭ 728 (+121.95%)
Mutual labels:  cheat-sheets, cheatsheet, cheat-sheet
Cmd Command Cheat Sheet
CMD - Command Cheat Sheat ✅
Stars: ✭ 50 (-84.76%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets
Python Cheatsheet
Basic Cheat Sheet for Python (PDF, Markdown and Jupyter Notebook)
Stars: ✭ 1,334 (+306.71%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets
Javascripter
Helping junior developers navigate the complex world of software engineering without experiencing information overload.
Stars: ✭ 203 (-38.11%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets
Cheatsheets.pdf
📚 Various cheatsheets in PDF
Stars: ✭ 159 (-51.52%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets
Algorithms Cheatsheet Resources
🤓All the geeky stuffs you need to know at one place!
Stars: ✭ 60 (-81.71%)
Mutual labels:  cheat-sheets, cheatsheet, cheatsheets
cheat-sheets
Awesome Cheat Sheets
Stars: ✭ 44 (-86.59%)
Mutual labels:  cheat-sheets, cheatsheet, cheat-sheet
Golang Cheat Sheet
An overview of Go syntax and features.
Stars: ✭ 6,066 (+1749.39%)
Mutual labels:  cheat-sheets, cheatsheet
Stl cheat sheets
C++ STL Cheat Sheets.
Stars: ✭ 293 (-10.67%)
Mutual labels:  cheat-sheets, cheatsheet
Graphql Schema Language Cheat Sheet
GraphQL Shorthand Notation Cheat Sheet
Stars: ✭ 1,181 (+260.06%)
Mutual labels:  cheat-sheets, cheatsheet
Colors
List of 256 color codes for Xterm including an example of the color, Xterm Name, Xterm Number, HEX, RGB and HSL code.
Stars: ✭ 73 (-77.74%)
Mutual labels:  cheat-sheets, cheatsheet
voyager-cheatsheet
Laravel Voyager Cheat Sheet
Stars: ✭ 32 (-90.24%)
Mutual labels:  cheat-sheets, cheatsheet
P5js Cheat Sheet
a p5js cheat sheet for beginners!
Stars: ✭ 89 (-72.87%)
Mutual labels:  cheat-sheets, cheatsheet
My Cheat Sheets
A place to keep all my cheat sheets for the complete development of ASIC/FPGA hardware or a software app/service.
Stars: ✭ 94 (-71.34%)
Mutual labels:  cheat-sheets, cheatsheet
bf256
Brainfuck compiler under 256 bytes in size.
Stars: ✭ 21 (-93.6%)
Mutual labels:  unix, x86-64
Wireshark Cheatsheet
Wireshark Cheat Sheet
Stars: ✭ 131 (-60.06%)
Mutual labels:  cheat-sheets, cheatsheet
AiliceOS
AiliceOS: Build an x86_64 and UEFI OS using Rust
Stars: ✭ 59 (-82.01%)
Mutual labels:  unix, x86-64

Systems Programming Cheat Sheet

Click here to view the cheat sheet PDF.

Discussed on Hacker News and r/programming.

Introduction & Background

This cheat sheet was originally written while I was taking Introduction to Computer Systems (15-213/18-213) at Carnegie Mellon University in the Spring 2019 semester. As such, it is based heavily on the textbook Computer Systems: A Programmer's Perspective, Third Edition by Randal E. Bryant and David R. O'Hallaron, as well as other course notes.

The cheat sheet therefore contains some information that is specifically tailored to x86-64 Unix systems. For example, the material may include undefined behaviors particular to such systems. It may also assume implementation details such as the System V calling convention and AT&T assembly language syntax. In general, any quirks included are those that 213 students are expected to know.

The four-page PDF is intended to be printed on two sheets of double-sided 8.5" x 11" letter paper (sorry non-Americans).

The course allowed students to bring one double-sided piece of letter paper with notes for each exam, so I tried to cram as much as possible into the limited space. These are my cheat sheets from the midterm and final combined into one PDF.

If you've opened the PDF and don't know what any of it means, I encourage you to access the lecture slides from when I took the course. These and the textbook should be enough to supplement the cheat sheet so that the material (or at least the acronyms) make some sense.

Project Status & Contributing

This project is basically done. I created it while I was a student, and will happily make any corrections necessary. But I do not plan to expand the cheat sheet to include new material. Feel free to open an issue and ask about adding material, though.

For any corrections or discussions, please open an issue. Pull requests without prior discussion will be ignored.

Support the Project

There are a few things you can do to support the project:

  • Star the repository (and follow me on GitHub for more)
  • Share and upvote on sites like Twitter, Reddit, and Hacker News
  • Look carefully for errors and report any that you find

These things motivate me to to keep sharing what I build, and they provide validation that my work is appreciated! Thanks in advance!

Modifying & Compiling

Clone the repository.

git clone https://github.com/jstrieb/systems-programming-cheat-sheet.git && cd systems-programming-cheat-sheet

Make any modifications to Cheat Sheet.tex.

Recompile with make.

Acknowledgments

  • The entire (Spring 2019) 15-213 course staff
  • Randy Bryant and David O'Hallaron for their excellent textbook
  • Kirubel Aklilu, Matt Henderson, and Hrishikesh Bodas for studying with me when we all took 213
  • Anyone who has taken the time to read the cheat sheet and report errors
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].