Week | Date | Class | Topic | Readings/Notes | Assignment/Solutions |
1 | T 1/12 | Lecture 1 | UNIX 1 Intro to Unix and Linux |
APUE: 1.2 (pg. 1-2), APUE: 1.11 (pg. 21) Origins and History of Unix |
HW 1 |
W 01/13 | Lecture 2 | UNIX 2 Unix File System and Command Line Tools |
APUE: 1.3, 1.4 cp(1), mv(1), rm(1), rmdir(1), mkdir(1), touch(1), which(1),ls(1) |
||
F 01/15 | Lab 1 | UNIX 3 File Permissions/Ownership and Unix Familiarization and Command Line Tools |
who(1), groups(1), passwd(5), chmod(1), chown(1), chgrp(1) cat(1), less(1), more(1), head(1), tail(1), sed(1), grep(1), cut(1), sort(1), uniq(1), wc(1) |
||
2 | M 01/18 | no class | MLK Day | ||
W 01/20 | Lecture 3 | UNIX 4 Unix Design Philosophy and Standard Streams |
HW 2 | ||
F 01/22 | Lab 2 | Bash Script Lab |
APUE: 1.5, 2.1, 2.3 Advanced Bash Scripting Guide bash(1) |
||
3 | M 01/25 | Lecture 4 | C Programming 1 Format Input/Output and Basic Types |
printf(3), scanf(3) | HW 3 |
W 01/27 | Lecture 5 | C Programming 2 Structures, Pointers, and Arrays |
|||
F 01/29 | Lab 3 | C prog Lab 1 |
APUE: 7.4 | ||
4 | M 02/01 | Lecture 6 | C Programming 3 Strings and String Library |
string(3), strlen(3), strcmp(3) | HW 4 |
W 02/03 | Lecture 7 | C Programming 4 Command Line Arguments and Double Arrays |
atoi(3), sscanf(3) | ||
F 02/05 | Lab 4 | C prog Lab 2 |
|||
5 | M 02/08 | Lecture 8 | C Programming 5 Program Memory Layout and Dynamic Memory |
APUE: 7.6, 7.8 malloc(3), free(3) |
HW 5 |
W 02/10 | Lecture 9 | C Programming 6 Dynamic Array Allocation and Data Representation |
callco(3) | ||
F 02/12 | Lab 5 | Memory Leaks and Memory Allocation Lab (simplefs) |
|||
6 | M 02/15 | no class | Washington Birthday | ||
W 02/17 | Lecture 10 | C Programming 7 File Streams 6-Week Practicum Released |
APUE: 1.11 (pg 21-23) fopen(3), fclose(3), fread(3), fwrite(3) |
HW 6 | |
F 02/19 | 6-Week Exam | |
|||
7 | M 02/22 | Lecture 11 | Operating System 1 User-Space, Kernel-Space and System Call API |
APUE: 3.1-2.9 (pg. 61-72) intro(2), syscalls(2) |
HW 7 |
W 02/24 | Lecture 12 | Operating System 2 File and Device I/O via System Calls |
open(2), close(2), read(2), write(2) | ||
F 02/26 | Lab 6 | Makefiles, myls, mycp, mytouch lab |
stat(1), stat(2) | ||
8 | M 02/29 | Lecture 13 | Processes 1 Process Creation and Management |
fork(2), exec(3), wait(2) | HW 8 |
W 03/02 | Lecture 14 | Processes 2 fork/exec/wait |
getpid(2) | ||
F 03/04 | Lab 7 | minishell lab |
|||
9 | M 03/07 | Lecture 15 | Processes 3 Process State and OS Scheduling |
nice(2) | HW 9 |
W 03/09 | Lecture 16 | Processes 4 Terminal Device and Job Control |
fg,bg,Ctrl-C,Ctrl-Z,jobs | ||
F 03/11 | Lab 8 | myps/mypstree |
|||
SPRING BREAK | |||||
10 | M 03/21 | Lecture 17 | Processes 5 Process Groups and Terminal Signaling |
setpgrp(2),setpgid(2),getpgrp(2),getpgid(2) | HW 10 |
W 03/23 | Lecture 18 | Processes 6 Pipes, Pipelines and File Duplication |
pipe(2), dup2(2) | ||
F 03/25 | Lab 9 | pipeline shell |
|||
11 | M 03/28 | Lecture 19 | Processes 7 Signals and Signal Handling |
signal(2) | HW 11 |
W 03/30 | Lecture 20 | Processes 8 Alarms, sigaction() and re-entrant system calls |
alarm(3),sigaction() | ||
F 04/01 | Lab 10 | Signal Handling/fg-shell |
tcsetpgrp(2) | ||
12 | M 04/04 | Lecture 21 | File Systems 1 File System, Kernel Data Structures and Open Files |
HW 12 | |
W 04/06 | Lecture 22 | File Systems 2 File Links: Hard and Symbolic 12-Week Practicum Released |
ln,link(2),unlink(2) | ||
F 04/08 | 12-Week Exam | |
|||
13 | M 04/11 | Lecture 23 | OS Security 1 Setting User/Group Permissions |
setuid(2),getuid(2),seteuid(2),geteuid(2) | HW 13 |
W 04/13 | Lecture 24 | OS Security 2 Path, Injection, and Overflow Attacks |
system(3) | ||
F 04/15 | Lab 11 | Security Lab |
|||
14 | M 04/18 | Lecture 25 | Networking 1 Network Fundamentals/Client Server Model |
/etc/services, netcat, netstat | HW 14 |
W 04/20 | Lecture 26 | Networking 2 Socket Addressing and Client Sockets |
socket(2),inet_ntoa(3),inet_aton(3),getaddrinfo(3),htons(3),ntohs(3),connect(2), | ||
F 04/22 | Lab 12 | Socket Client Lab |
|||
15 | M 04/25 | Lecture 27 | Networking 3 Server Sockets |
bind(2), listen(2), accept(2), select(2) | HW 15 |
W 04/27 | Lecture 28 | Threading 1 Posix Threads |
pthread_create(3), pthread_join(3) | ||
F 04/29 | Lab 13 | (SOFS) Threading Socket Server Lab |
|||
16 | M 05/02 | Lecture 29 | Threading 2 Locking, Deadlock and Concurrency Final Practicum Released |
pthread_mutex_init(3), pthread_mutex_destroy(3), pthread_mutex_lock(3), pthread_mutex_unlock(3) | |
T 05/03 | -- | Final Practicum due | |||
-- | -- | |
|||
17 | M 5/9 | -- | Final Exam at 755, Location MI110 |