COP 4604 -- Unix System Programming
Sequence #5546, Term: Spring 2000
Last modified: 1 May 2000 by R.Levow
New and Updated Items
Project Submission & Presentation
Instructions (5/1)
Class Time: Tuesday, 7:10 - 10:00 pm, LA-340 (Davie)
Textbook: Advanced
Programming in the UNIX Environment, Richard
Stevens, Addison-Wesley, 1993. (Note: The second edition was scheduled
for publication in December 1999 but has been delayed until March 2000.
We will therefore use the original, 1993, edition.) Code from the text
is also available locally on the CSE net at ~roy/public_html/cop4604.00s/apue.
Recommended:
-
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.
Click here to view the Course
Syllabus
Click here for general
information on course policies including program submission, late penalties,
getting help, etc.
Reading Assignments and Exam Schedule
-
January 11
-
January 18: Ch. 1-3
-
January 25: Ch 4
-
February 1: Ch 4
-
February 8: Ch 5-6
-
February 15: Exam
1 (1 hour), Ch. 5-6
-
February 22: Ch. 7-8
-
March 7: Ch. 10
-
March 14: Spring Break
-
March 21: Project sample code, Ch. 11
-
March 28: Exam 2 (1 hour), then lecture on project
sample code (continued) and Ch. 11
Exam covers chapters 5 - 8 and 10.
-
April 4: Ch. 12
-
April 11: Project review
-
April 18: Threads <
1-per-page
> < 4-per-page
> Examples
-
April 25: Threads (continued)
-
May 2: Final exam (individual presentations)
Programming Assignments
-
File Processing.
Due January 25
-
Directory
Processing. Part 1 Due February 8, Part 2 Due February 15
-
Revision
of Assignment 1: Due February 22
-
Process timing
shell: Due March 21
Project
Simple user
shell (ush): Due April 25
Submission and presentation: The project is due by hwroy
on April 25 bu the start of class. Late submissions will be accepted
until Thursday, May 4, at 3:00 pm and are subject to late penalties.
Each student must make an appointment for an individual presentation of
the project to me at my office. The presentations will be scheduled
for 20 minutes. The following times are available in Davie:
Tuesday, May 2, 5 - 10 pm, Wednesday, May 3, 4 - 8 pm, Thursday, May 4,
4 - 8 pm. In addition, I will make individual appointments at other
times in Boca on request.
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.
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 Unix environment, generally in C, using
the system calles studied in the course. Stevens has provided a substantial
number of examples that are useful for study and from which much can be
learned by testing modifications. These programs all include the header
file ourhdr.h that contains prototypes for a number of functions Stevens
has defined for convenience and/or compatability. The source code for these
functions is in the appropritate lib.sys directory, lib.sun for our systems.
For instance, error.c contains all of the error reporting functions like
err_sys().
I have compiled those files that compile into a library, libmisc.a.
You should be sure to include it in your compiles. You do this by adding
the following flags to your compile command before the files to compile.
gcc ... -L~roy/public_html/cop4604.00s/apue
-lmisc ...
The first, -L, adds the following directory to the library search path
and the second, -l, causes libmisc.a to be used.
This course was originally developed by Prof. Sam Hsu. Materials from
his course can be viewed here.