{"id":13620768,"url":"https://github.com/jstrieb/systems-programming-cheat-sheet","last_synced_at":"2026-01-16T04:59:43.274Z","repository":{"id":46556114,"uuid":"381834527","full_name":"jstrieb/systems-programming-cheat-sheet","owner":"jstrieb","description":"Cheat sheet for x86-64 Linux systems programming","archived":false,"fork":false,"pushed_at":"2021-07-02T18:21:52.000Z","size":697,"stargazers_count":365,"open_issues_count":0,"forks_count":23,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-09T17:31:34.096Z","etag":null,"topics":["cheat-sheet","cheat-sheets","cheatsheet","cheatsheets","systems-programming","unix","x86-64"],"latest_commit_sha":null,"homepage":"","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jstrieb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-30T21:15:22.000Z","updated_at":"2025-01-08T20:38:16.000Z","dependencies_parsed_at":"2022-08-27T11:22:14.520Z","dependency_job_id":null,"html_url":"https://github.com/jstrieb/systems-programming-cheat-sheet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstrieb%2Fsystems-programming-cheat-sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstrieb%2Fsystems-programming-cheat-sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstrieb%2Fsystems-programming-cheat-sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jstrieb%2Fsystems-programming-cheat-sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jstrieb","download_url":"https://codeload.github.com/jstrieb/systems-programming-cheat-sheet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247128753,"owners_count":20888235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cheat-sheet","cheat-sheets","cheatsheet","cheatsheets","systems-programming","unix","x86-64"],"created_at":"2024-08-01T21:00:59.268Z","updated_at":"2026-01-16T04:59:43.238Z","avatar_url":"https://github.com/jstrieb.png","language":"TeX","funding_links":[],"categories":["TeX","Miscellaneous"],"sub_categories":[],"readme":"# Systems Programming Cheat Sheet\n\n[Click here to view the cheat sheet\nPDF](https://github.com/jstrieb/systems-programming-cheat-sheet/raw/master/Cheat%20Sheet.pdf).\n\nDiscussed on [Hacker News](https://news.ycombinator.com/item?id=27693612) and\n[r/programming](https://old.reddit.com/r/programming/comments/ob78tp/i_open_sourced_my_systems_programming_cheat_sheet/).\n\n# Introduction \u0026 Background\n\nThis cheat sheet was originally written while I was taking [Introduction to\nComputer Systems (15-213/18-213)](https://www.cs.cmu.edu/~213/) at Carnegie\nMellon University in the Spring 2019 semester. As such, it is based heavily on\nthe textbook *[Computer Systems: A Programmer's Perspective, Third\nEdition](http://csapp.cs.cmu.edu/)* by Randal E. Bryant and David R.\nO'Hallaron, as well as other course notes. \n\nThe cheat sheet therefore contains some information that is specifically\ntailored to x86-64 Unix systems. For example, the material may include\nundefined behaviors particular to such systems. It may also assume\nimplementation details such as the System V calling convention and AT\u0026T\nassembly language syntax. In general, any quirks included are those that 213\nstudents are expected to know.\n\nThe four-page PDF is intended to be printed on two sheets of double-sided 8.5\" x\n11\" letter paper (sorry non-Americans).\n\nThe course allowed students to bring one double-sided piece of letter paper\nwith notes for each exam, so I tried to cram as much as possible into the\nlimited space. These are my cheat sheets from the midterm and final combined\ninto one PDF.\n\nIf you've opened the PDF and don't know what any of it means, I encourage you\nto access the [lecture slides from when I took the\ncourse](http://www.cs.cmu.edu/afs/cs/academic/class/15213-s19/www/schedule.html).\nThese and the textbook should be enough to supplement the cheat sheet so that\nthe material (or at least the acronyms) make some sense.\n\n# Project Status \u0026 Contributing\n\nThis project is basically done. I created it while I was a student, and will\nhappily make any corrections necessary. But I do not plan to expand the cheat\nsheet to include new material. Feel free to open an issue and ask about adding\nmaterial, though.\n\nFor any corrections or discussions, please [open an\nissue](https://github.com/jstrieb/systems-programming-cheat-sheet/issues/new).\nPull requests without prior discussion will be ignored.\n\n# Support the Project\n\nThere are a few things you can do to support the project:\n\n- Star the repository (and follow me on GitHub for more)\n- Share and upvote on sites like Twitter, Reddit, and Hacker News\n- Look carefully for errors and report any that you find\n\nThese things motivate me to to keep sharing what I build, and they provide\nvalidation that my work is appreciated! Thanks in advance!\n\n# Modifying \u0026 Compiling\n\nClone the repository.\n\n``` bash\ngit clone https://github.com/jstrieb/systems-programming-cheat-sheet.git \u0026\u0026 cd systems-programming-cheat-sheet\n```\n\nMake any modifications to [`Cheat\nSheet.tex`](https://github.com/jstrieb/systems-programming-cheat-sheet/blob/master/Cheat%20Sheet.tex).\n\nRecompile with `make`.\n\n# Acknowledgments \n\n- The entire (Spring 2019) 15-213 course staff\n- Randy Bryant and David O'Hallaron for their excellent textbook\n- [Kirubel Aklilu](https://github.com/kirubelaklilu1), Matt Henderson, and\n  [Hrishikesh Bodas](https://github.com/hbodas) for studying with me when we\n  all took 213\n- Anyone who has taken the time to read the cheat sheet and report errors\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjstrieb%2Fsystems-programming-cheat-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjstrieb%2Fsystems-programming-cheat-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjstrieb%2Fsystems-programming-cheat-sheet/lists"}