CS456 - Systems Programming
This is the website for CS456 - Systems Programming taught by Steve Baker
Click on the links on the left for information about the course.
- Makefiles, GDB and Memory
An introduction to make and Makefiles, a GDB quick howto and the memory layout of Unix processes
- Basic file I/O & pipes
In Unix, everything is a file, basic I/O system calls and pipes.
- X86_64 Assembly:
- Asm Lesson 1 - The Central Processing Unit (CPU)
Introduction to the CPU, registers, the flag register, assembly instructions and address/values.
- Asm Lesson 2 - Registers, Memory layout, System calls and NASM
Parts of a register, Linux process memory layout, Register usage during system calls and the Netwide Assembler (NASM)
- Asm Lesson 3 - Machine Language / Instructions (part 1)
Comparing data and jumps, C to Assembly translations
- Asm Lesson 4 - Machine Language / Instructions (part 2)
Copying data, Looping, Functions and the stack, Arithmetic operations
- Asm Lesson 5 - The hardware stack
Using the stack for temporary local variables.
- Asm Lesson 6 - The C library, The heap, C pointers in assembly
Using the C library from assembly, The C dynamic memory heap allocation functions and C pointers to assembly guide
- Tokenization and expressions
- Creating an interpreter
- Creating a Unix shell