zettelkasten

Search IconIcon to open search
Dark ModeDark Mode

15-213 Notes

213 reference sheet

Main

  1. Why Systems Knowledge

    Why Systems Knowledge

    #lecture note based on The Reasons Looking underneath abstractions Abstractions have limit Become a better programmer by understanding what things are compiled to Great...

    6/24/2025

  2. Data Representation as Bits

    Data Representation as Bits

    #lecture note based on Bits Either 0 or 1? That's abstraction of electronic implementation. Votage isn't discrete. Representations - Bits are just...

    6/24/2025

  3. Memory Layout

    Memory Layout

    #lecture note based on Overall Memory Layout (for a process) A process's virtual memory, assuming it's running one thread. 50 Bytes in Memory Integers...

    6/24/2025

  4. Assembly and Machine Programming

    Assembly and Machine Programming

    #lecture note based on Abstraction Level Overview A bit of history ... (whatever) Intel x86! - Complex Instuction Set Computer (CISC) - lots...

    6/24/2025

  5. Data in Machine Programming

    Data in Machine Programming

    #lecture note based on We're interested in storing some structured data, such as struct or array, but memory is just...

    6/24/2025

  6. Machine Programming Vulnerabilities

    Machine Programming Vulnerabilities

    #lecture note based on Attacks by overwriting memory buffer overflow / stack smashing attack - big cause of security vulnerability. If...

    6/24/2025

  7. Memory Hierarchy

    Memory Hierarchy

    #lecture note based on Overview For many years, hardwares are optimised with some memory hierarchy and software designed to use them....

    6/24/2025

  8. Code Optimisation

    Code optimisation

    #lecture note based on Overview Goals minimise num of instructions less instructions less slow calculations (multiplication, divsion) minimise memory wait time what to go in register...

    6/24/2025

  9. Dynamic Memory Allocation

    Dynamic Memory Allocation

    #lecture note based on Allocation and freeing malloc ~ ~ ~ There are just things we don't know the size of....

    6/24/2025

  10. Linking

    Linking

    #lecture note based on "The most useless useful lecture... Almost nothing in this lecture matter for the course... however this...

    6/24/2025

  11. Virtual Memory

    Virtual Memory

    #lecture note based on Notice: lots of processes can run at the same time, yet their memory addresses don't overlap... Goal:...

    6/24/2025

  12. Processes

    Processes

    #lecture note based on History: human used to manage processes, but in 70s they wanted multiple people to connect by...

    6/24/2025

  13. Shell

    Shell

    #lecture note based on A programme that runs programmes on behalf of user. Usually console based, but it could be...

    6/24/2025

  14. Exceptional Control Flow

    Exceptional control flow

    #lecture note based on We don't yet have a way to control flow if... say... the printer is on fire....

    6/24/2025

  15. System-level IO

    System-level I/O

    #lecture note based on System level IO - much lower level than fopen, fputs, fclose, etc. Those are just higher...

    6/24/2025

  16. Network Programming

    Network Programming

    #lecture note based on Network - system of boxes and wires LAN local area WAN wide area SAN storage area MAN metropolitan ... internet - interconnect...

    6/24/2025

  17. Concurrent Programming

    Concurrent Programming

    #lecture note based on Classical problems in concurrent programmes Race - what happens when scheduler do arbitrary things e.g. multiple threads incrementing...

    6/24/2025

Misc

Misc 2

  • volatile means not in register, not not in main memory
  • Magic number - use of one number in one place magically make other code work or not work
  • char payload[0] is zero length array but means flexible size
  • offsetof(struct, member) is in C standard where compiler tells you offset to field in struct
  • Technically gcc is not compiler. It launches the compiler
  • static means it’s there but don’t tell other module
  • telnet to test server. it just sends ascii