CSC 301 - Systems Programming

Course Description

This course is an introduction to systems programming concepts and techniques. Topics covered will include the user/kernel interface, fundamental concepts of Unix, user authentication, basic and advanced I/O, leystems, signals, process relationships, and interprocess communication. Fundamental concepts of software development and maintenance on Unix systems (development and debugging tools such as "make" and "gdb") will also be covered. The functions of an operating system, operating system utilities and programming embedded systems for set-top devices will be taught using C.

Syllabus

Full text of the syllabus can be downloaded from here.

Lectures

1.Introduction
2.Unix Overview
3.File I/O
4.Files and Directories
5.Filesystems
6.System Data Files, Date and Time
7.Process Environment
8.Process Control
9.Signals
10.Threads
11.Pipes (new)
12.Sockets (new)
13.Advanced I/O

Assignments

1.File I/O
2.Simple Shell
3.Signals and Threads
4.Mini Web Server (Sample Web Page) (new)

Project

Implement the "ls(1)" command as decribed in the manual page provided to you.

See the full project description for details.

Exams

Labs

1.Counter
2.Accesssolution (new)

Resources

Literature

Other

Tutorials

Tools

Linux/UNIX images