From A-State Computer Science Wiki
Jump to: navigation, search

CS 4-5223 Unix Systems Programming

Fall 2019, Section 001, TR 9:30am-10:45am, CSM 211 (3 credits)


Dr. Jeff Jenness
OfficeCSM 132Office HoursTR 11:00am-12:00pm and MW 11:00pm-12:00pm
Phone870-972-3978 ext.

Course Description

CS 4-5223.  UNIX Systems Programming
System level programming in UNIX systems. Prerequisites: CS 3113. Fall.


The student will learn the fundamentals of the Unix programming environment. The student will be able to understand and program with the Unix application programmer interfaces including the file, directory, process, and communication APIs.


  • Understand the following concepts:
    1. Unix command-line environment
    2. Regular Expression syntax and construction
    3. basic Unix system structures
    4. Unix streams and file I/O
    5. Unix process structure and signals
    6. threads and thread interaction
    7. IPC communication protocols
    8. Networking with TCP/IP
  • Understand and use the following software (minimally):
    1. Unix command shell (bash)
    2. GNU make and gdb
    3. GNU compiler suite (C or C++)
    4. Unix POSIX APIs on Debian Linux
  • Explore aspects and understand the Unix APIs:
    1. I/O APIs (File, Directory, Formatted, Asynchronous)
    2. Process APIs (Control, Signals, Threads, Daemons)
    3. Communication APIs (Interprocess, Networking)
  • Be able to construct Unix programs using the tools and APIs


Grades are assigned on a standard scale with the following weights:

Projects (3)50%


(subject to change)

Week  TopicReadingAssignment
1 The Unix environment and basic commands
2 Regular Expressions in Unix
3 The Unix programming environment: GCC, vi, make, gdb Chapter 1 & 2
4 Basic File I/O and streams Chapter 3
5 Advanced File I/O, Directories and Control Chapter 4 & 5
6 System File Structure and Information Chapter 6
7 The Process Environment Chapter 7
8 Process Control and Relationships Chapter 8 & 9
9 Signals and Signal Processing Chapter 10
10 Threads and Thread Control Chapter 11 & 12
11 Daemons Processes Chapter 13
12 Asychronous I/O Chapter 14
13 Interprocess Communication Chapter 15
14 Networks and Socket Programming Chapter 16

Dates to Remember



Go here for past and posted projects. Submit all projects by email to




The Linux Programming Interface: A Linux and UNIX System Programming Handbook, 1st ed. (ISBN: 978-1593272203), by Michael Kerrisk. No Starch Press, 2010. (Amazon)

Online Resources

Go here to browse the course online file repository.
25 Free Books To Learn Linux For Free

Software Downloads

Course Policies

See Department Policies which will be adhered to within the course.

See Also


IBM Vows To Spend $1 Billion To Promote An Operating System That Competes With Windows    Apply Geek, Sep 17, 2013


  • Advanced Programming in the Unix Environment    Another excellent book describing the Unix API
  • The UNIX System    The official UNIX system at The Open Group with some good historical information and standard specifications
  • Unix Timeline    Chart of Unix system history from 1969 to present
  • The Unix Programming Environment    An older book by Mark Burgess, but still relevant [PDF]
  • GCC, The GNU Compiler Collection    Contains all the information for the GNU compilers and add-ons
  • clang Compiler Family    Contains all the information for the C language family frontend for LLVM
  • Regular Expression (Wikipedia)    Article on regular expressions
  • Regular-Expressions.Info    In-depth information on regular expression syntax in software
  • regular expressions 101    Online regular expression tester
  • RegExr    Another online regular expression tester

create PDF version