COP 4604 -- Unix System Programming
Sequence #6211, Term: Spring 2002
Last modified: 23 April 2002 by R.Levow
New and Updated Items
Added hints for
course project. Entries for -v and $VAR substitution (posted
4/23)
Project Presentation Schedule
(updated 4/22)
Final Exam Review (posted
4/21)
On Course Project added notes
on command checking and variable substitution (posted
4/20)
Corrected final exam date to April 27 (posted
4/3)
Class Time: Saturday 9:00 - 11:50 am, LA-340 (Davie)
Textbook: Beginning
Linux Programming , Second Edition, by Neil Matthew and Richard
Stones, Wrox Press, 1999, ISBN 1861002971. Code from the book is
here
.
Recommended Resources:
-
A complete C language reference, including standard library documentation.
This may be either in the form of a text or electronic as the documentation
for a C/C++ compiler
-
Red Hat or other flavor of Linux installed on personal PC
-
Advanced Programming
in the UNIX Environment, Richard
Stevens , Addison-Wesley, 1993
-
UNIX System Programming, Keith Haviland, Dina Gray and Ben Salama,
2nd ed., Addison-Wesley, 1999.
-
The Design of the UNIX operating System, Maurice Bach, Prentice
Hall, 1986.
-
The Design and Implementation of the 4.4 BSD Operating System ,
Marshall McKusick, Keith Bostic, Michael Karels and John Quarterman, Addison-Wesley,
1996.
-
Interprocess Communications in UNIX, John Gray, Prentice Hall, 1997.
-
Programming with UNIX Threads, Charles J. Northrup, John Wiley &
Sons, Inc., 1997.
-
Practical UNIX Programming: A Guide to Concurrency, Communication, and
Multithreading, Kay Robbins and Steven Robbins, Prentice Hall, 1996.
-
UNIX Internals: The New Frontiers, Uresh Vahalia, Prentice Hall,
1996.
-
A Practical Guide to the UNIX System, Mark Sobell, 3rd ed., Benjamin/Cummings,
1995.
-
UNIX for Programmers and Users, Graham Glass & King Ables, 2nd
ed., Prentice Hall, 1999.
Web Resources (a very incomplete list)
Class discussion group on Yahoo
A discussion group for the class has been created at
http://groups.yahoo.com/group/cop4604_spring02
Questions concerning the course can be posted there for response by
other students or by Dr. Levow to be shared with all members of the class.
You can participate in the group if you wish in several ways. If
you subscribe, you will receive copies of all emails posted to the group
and can post messages to the group. Alternatively, you can visit
the site and view all messages posted there, with or without joining the
group.
Many resources can be found by using various search engines
Click here to view the Course
Syllabus
Click here for general
information on course policies including program submission, late penalties,
getting help, etc.
Lecture Tpoics, Reading Assignments, and Exam Schedule
-
January 12: Course Intro., Intro to Linux/Unix (Ch.1)
-
January 19: Shell Programming (Ch.2)
-
January 26: C Language Topics for System Programming, Files and Directories
(Ch.3)
-
February 2: Ch. 3 continued
-
February 9: The Unix Environment (Ch. 4)
-
February 16: Ch. 4 continued
-
February 23: Exam
1 (1 hour); lecture after exam on Tools and Debugging (Ch. 8 &
9)
(Program Solutions for Exam 1)
-
March 2: Processes and Signals (Ch. 10 - reading quiz)
-
March 9: Spring Break
-
March 16: Processes (cont.)
-
March 23: Signals and Course Project Code review
-
March 30: Course Project Code review (cont.)
-
April 6: Exam 2 (1
hour 20 min), lecture on project code
-
April 13: Project Presentation Sign-up, project code for trap, and
more
-
April 20: Project support
-
April 27: Final exam
Course Notes
¶ - Derived from notes
by Dr. Sam Hsu
Programming Assignments
-
Shell Script
chmodr. Due 1/26
-
File processing:
Due 2/9
-
chmodr program:
Due 2/23
-
File processing 2: Due 3/16
-
Timing shell: Due 3/30
Project
Project, version 1.03
Base code for project
Submission: The project will be due not later than Thursday,
May 2. Each group must sign up for a presentation
time and submit the project code and documentation with hwroy by that
time. Bring printed copy of code and documentation for submission
at presentation time.
Assignments, Exams and Grading
There will be short a short quiz before each class based on assigned readings.
The final exam will be cumulative and will last about 2 and a half hours.
Quizzes will be closed book; exams will be open book. In computing
the final grade, homework will count 17%, project 22%, exams 17% each,
and the final exam 27%.
Programming Environment
Programming must be done in the Linux/Unix environment, generally in C,
using the system calls studied in the course. If you have a personal
PC, it is recommended that you install Linux on it. If you provide
blank writable CDs, you can create installation CDs in the CSE Davie lab.
The authors of the text have provided a substantial number of examples
that are useful for study and from which much can be learned by testing
modifications.
This course was originally developed by Prof. Sam Hsu. Materials from
his course can be viewed here
.