CS5432 Advanced UNIX Programming, Fall 2023

  • Instructor: Cheng-Hsin Hsu (chsu@cs.nthu.edu.tw), Delta (台達館) 643.
  • Time: Tuesday 2:20 p.m. – 3:10 p.m., Friday 3:30 – 5:10 p.m.
  • Location: Delta 104
  • Office Hour: Wednesday 2-3 p.m. or by appointment, at Delta 643
  • TAs: Kuan-Yu Lee (kyl@gapp.nthu.edu.tw) and Jia-Wei Fang (nthu107062121@gapp.nthu.edu.tw)
  • TA Hour: Tuesday 7-8 p.m., at EECS 741
  • Vevox Link: https://vevox.app/#/m/150675385

一、課程說明(Course Description)

We will train the students to be qualified UNIX-like system programmers, by getting to know the commands, development and debugging environments, system calls, and popular libraries on UNIX systems. On top of that, we will discuss more advanced C/UNIX topics such as process control, daemon, signals, and threads. Code examples given in Richard Stevens’ classic UNIX programming textbook will be reviewed and discussed in the class.

Prerequisites:  Introduction to Programming, Operating Systems

二、指定用書(Text Books)

W. Richard Stevens and Stephen A. Rago, “Advanced Programming in the UNIX Environment,” 3rd ed., Addison Wesley



四、教學方式(Teaching Method)

Lectures and discussions.


We will spend 1 week on each of the following topics.

1. Fundamental tools and shell programming
2. Files and directories
3. File I/O and standard I/O
4. System data files and information
5. Process environment
6. Process control
7. Signals
8. Threads
9. Daemon processes
10. Advanced I/O
11. Inter-process communications
12. Network I/O
13. Terminals


  • Programming assignments (48 pts): 12 times
  • Midterms exams (30 pts): 15 pts + 15 pts
  • Final Exam (15 pts)
  • FreeBSD contributions (10 pts)