Coronavirus (COVID-19) Update

Enjoy a fully remote summer of professional education at the Silicon Valley Campus and the re-emergence of in-person courses in September. Visit our COVID update page.

Course

Linux Systems Programming | LINX.X408


System calls are functions called from within a C program, which provide access to the lowest level resources of the OS. Topics on Systems Programming covered in this class will enable a C programmer to understand and implement standard utilities (e.g. ls, wc, cat). It includes conceptual background, functional interfaces and topics on I/O control, file systems, access, and locking; signal handling; process and threads management; IPC using pipes and TCP/UDP sockets; and related discussions on makefiles, man pages and rpm packaging utilities.

This course covers developing a complete ftp package, including client-side interface and the server-side components. The course materials include examples showing the use of all system calls introduced in the course, as well as complete client-server programs using TCP, UDP and RPC. This course is based on the POSIX standard, however, portability considerations for BSD extensions and SVR4 differences are discussed throughout.

Learning Outcomes:
At the conclusion of the course, you should be able to:

  • Design and demonstrate implementation of standard LINUX utilities (e.g. ls, wc, cat)
  • Explain programming interfaces and topics on I/O control, file systems, access and locking
  • Describe the use of signal handling interfaces
  • Describe Process and threads management
  • Describe IPC using pipes and TCP/UDP sockets
  • Discuss makefiles, man pages and rpm/apt packaging utilities

Note(s): To practice, students are expected to install or have access to Linux Operating System version 7, or higher (version 9 is preferred) on their home computers. Options include VMWare, VirtualBox, LiveCD, disk partition or separate drive.

Skills Needed: A basic knowledge of C language programming and a working knowledge of the Linux/UNIX operating environment are required.

Have a question about this course?
Speak to a student services representative.
Call (408) 861-3860
This course is related to the following programs:

Prerequisite(s):

Course Availability Notification

Please use this form to be notified when this course is open for enrollment.

Contact Us
Speak to a student services representative.

Call (408) 861-3860

Envelope extension@ucsc.edu