2023-04-01: This is not April fools day joke. Homework #1 is available now. Please check our lab page for more details.
2023-03-06: The link to the lab page is available here.
2023-03-03: Our next lecture (and also the future lectures if not otherwise mentioned) will be moved to the computer classroom at EC315, 316, and 324. Please attend the lab lecture at the right classroom.
2023-02-06: IMPORTANT ANNOUNCEMENT: The professor has to join an event held in Singapore and will not be able to lecture the course on Feb 13. We will have TAs to introduce the policies and resources of this course in our first class. If you plan to sign-up this course, you may fill this form to join our course sign-up lottery.
2023-01-09: Course sign-up policies: Some of you are asking about the course sign-up policies. At the current stage, we will only sign up manually for: 1) you are a member of my lab, 2) I know you in person, or 3) you performed well in the INP course and I have promised you to sign up for this course. For the rest of you, we will have a course sign-up lottery at the beginning of this semester. Please check our posts here before the first lecture of the coming semester.
2023-01-06: Course web site refreshed.
Homework Submission Procedure
Pack all your files into a single tar.gz archive file.
Prerequisite: C programming, C++ programming (optional), Python programming, (x86/x86-64) Assembly (or learn in the class), Operating Systems.
Textbook: W. Richard Stevens and Stephen A. Rago, "Advanced Programming in the UNIX Environment," 2nd ed. or 3rd ed., Addison Wesley (開發圖書)
TAs:
TA group (TBD)
Email: echo 'dGFAem9vbGFiLm9yZwo=' | base64 -d
(you know how to decode it if you have participated the class on the 1st day)
TA's Office Hour: TBD @ EC223A
Course Topics:
Fundamental tools and shell programming
Files and directories
File I/O and standard I/O
System data files and information
Process environment
Process control
Signals
Assembly language integration
ptrace and applications
Threads
Daemon processes
Advanced I/O
Inter-process communication
Network I/O
Other Topics
Tentative Schedule (Recommended):
week
lab
date
topic
1
--
02/13
--
2
lecture only
02/20
overview
3
(228 holidays)
02/27
--
4
1
03/06
file+dir & file+stdio
5
2
03/13
sysinfo & procenv-1
6
3
03/20
procenv-2
7
4
03/27
procctl-1 & procctl-2
8
(tomb sweeping)
04/03
procrel-1 & procrel-2
9
<midterm week>
04/10
--
10
<homework demo>
04/17
IPC
11
5
04/24
signal-1 & signal-2
12
6
05/01
assembly-1, 2, 3
13
7
05/08
assembly-1, 2, 3
14
8
05/15
ptrace-1 & ptrace-2
15
9
05/22
thread & thread-ctl
16
<final week>
05/29
--
17
<homework demo>
06/05
--
Grading policy: Lab 60%; Homework 40%.
Homework judgment policy: We do not welcome copycats. You are encourages to discuss with your classmates, but all your submissions must be your own work.