COP 4604 -- Unix System Programming
Term: Fall 2004
Last modified: 30 November 2004 by R. Levow
New and Updated Items
Project, Final
topics
Class Time: Wednesday 7:10 - 10:00
Rooms: LA-225 (Davie, Live), IS-123 (Boca, Live Video), and FEEDS
Textbook: Beginning
Linux Programming , Third Edition, by Neil Matthew, Richard
Stones, and Alan Cox, Wrox Press, 2003, ISBN 0-7645-4497-7. Code
from the book is
here
.
Recommended References and 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
- Many books from O'Reilly
Media
- Advanced
Programming
in the UNIX Environment (full text on-line), Richard
Stevens, Addison-Wesley, 1993
- Advanced Linux Programming,
Mark Mitchell, Alex Samuel, Jeffrey Oldham., Sams, 2001
- 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
Linux, John Gray, Pearson, 2003.
- Programming with POSIX®
Threads, David R. Butenhof, Addison-Wesley, 1997
- Linux Internals, Mioshe Bar, McGraw-Hill Osborne, 2000
Many resources can be found by using various search engines
Class discussion group will be maintained on the class
Blackboard site. 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.
Click here to view the Course
Syllabus
Click here for general
information on course policies including program submission, late
penalties,
getting help, etc.
Lecture Topics, Reading
Assignments, and Exam
Schedule
(Preliminary and subject to revision)
- August 25: Course Intro., Intro to Linux/Unix (Ch.1)
- September 1: Shell Programming (Ch.2)
- September 8:
Hurricane Frances (no class)
- September 15: Shell Programming (cont), C Language Topics
for System Programming
- September 22: Files and Directories (Ch.3)
- September 29: The Unix Environment (Ch. 4)
- October 6: Tools and Debugging (Ch. 8 & 9)
- October 13: Processes and Signals (Ch. 10)
- October 20: Exam 1 (1 hour 20 minutes; review);
lecture after exam on Processes and Signals (cont)
- October 27: Processes (cont.)
- November 3: Signals and Course Project Code review
- November 10: Course Project Code review (cont.)
- November 17: Lecture on project code
- November 24: Project Presentation Sign-up, project code
for trap, and more
- December 1: Project support
- December 8: Final exam (on
processes, signals, project code)
Course Notes
¶ - Derived from notes
by Dr. Sam Hsu
Programming Assignments
- Shell Script
chmodr Due: Extended to October 4
- chmodr program: Code chmodr as a C program with numeric
permissions only. Due:
October 14
- Timing shell Due Nov. 3
Project
Project
Base code for project
Submission: The project will be due not later than Thursday,
December 9. 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 25%, project 25%, exam 1 20%
each,
and the final exam 30%. 
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. The PCs in
the CSE Davie Lab in LA-325 have Linux installed as do a few systems in
the CSE Boca lab in SE-319. 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.
Some of his materials are used, with his permission.