1. |
|
Introduction
|
Overview of class policies and an
introduction to Systems Programming;
What is Systems Programming and why
is it important. |
|
2. |
|
Development Tools
|
Review C Unix Programming Tools; gcc
and make. How to compile using gcc
and compile and link using make. |
|
3. |
|
More Development Tools
|
Reviews C Unix Programming Tools: gdb
for debugging. Provides in depth
example of how to use gdb. |
|
4. |
|
C Survival Skill 1
|
Reviews important basic concepts in C
programming; pointers. Shows how to
implement pointers and how pointers can
change in memory. |
|
5. |
|
C Survival Skill 2
|
Reviews important basic concepts in C
programming; memory allocation and
arrays. Shows how to allocate and
deallocate heap memory and how
arrays are similar to pointers. |
|
6. |
|
C Survival Skill 3
|
Reviews important basic concepts in C
programming; argv and argc and printf.
Shows how to implement and use
argv, argc, and printf. |
|
7. |
|
C Survival Skill 4
|
Reviews important basic concepts in C
programming; malloc and types of
memory. Shows how stack memory
changes during program execution. |
|
8. |
|
System Calls and I/O
|
A two part lecture which covers basic
file system calls and I/O calls; open,
close, stat, read, write. |
|
9. |
|
Processes
|
Covers processes under Unix; what they
are, their lifecycle, creating them with
fork, and managing them with wait and
waitpid. |
|
10. |
|
Thread
|
A two part lecture covering threads;
what they are, why do we need them,
process vs threads, and how to create using pthreads. |
|
11. |
|
Introduction to Networking
|
Describes basic concepts for networks;
protocols, protocol layers, service
models, and interfaces. Short
introduction to TCP and UDP. |
|
12. |
|
Advanced Networking
|
Describes the concepts required to
understand the client-server model.
Shows how to implement a C/S using
sockaddr, getaddrinfo, socket, bind,
listen, and connect / accept. How to
send and receive data with send and
recv. Managing a connection with close
and shutdown. |
|