Computer Systems: A Programmer’s Perspective #
I worked through this textbook as part of the teachyourselfcs.com program.
Contents #
- Twelve
chapter_*
folders containing code the solves the ‘homework problems’ (and sometimes ‘practice problems’) from the respective chapter. - The
labs/
folder, which contains the 9 labs provided with the CS:APP textbook.
“Test your code on multiple machines” #
Parts of the textbook (eg. chapter two) are interested in the low-level computer architectural differences between different machines, like 32-bit vs. 64-bit architectures, and little-endian vs. big-endian.
Homework exercises and practice problems sometimes ask you to “test your code on multiple machines”, as if we’ve all got multiple computers with different architectures easily accessible.
Below is a table of different platform and whether I’ve figured how to easily run this repo’s code on them:
Platform | Word Size | Endian-ness | How To | Notes |
---|---|---|---|---|
Linux 64-bit | 64 | Little | Use Github Codespaces | The .devcontainer configures the Github Codespace automatically |
Linux 32-bit | 32 | Little | 🚧 Dunno yet | |
OSX 64-bit | 64 | Little | I use my personal laptop, which is 64-bit by default. | |
Windows | 64 | Little | 🚧 Dunno yet | |
Sun (Solaris) | 64 | Big | Use ‘Oracle Solaris 11.4’ Image on Oracle Public Cloud | Bazel will not be useable. |