Coder Social home page Coder Social logo

pabraksas / systems-programming-cheat-sheet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jstrieb/systems-programming-cheat-sheet

0.0 1.0 0.0 697 KB

Cheat sheet for x86-64 Unix systems programming

License: MIT License

TeX 99.05% Makefile 0.95%

systems-programming-cheat-sheet's Introduction

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

systems-programming-cheat-sheet's People

Contributors

evanderiel avatar gazhank avatar jstrieb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.