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.
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.
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.
Sections Open for Enrollment:
|Date:||Start Time:||End Time:||Meeting Type:||Location:|
|Tue, 06-22-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 06-29-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-06-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-13-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-20-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 07-27-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-03-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-10-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-17-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-24-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|
|Tue, 08-31-2021||6:30 p.m.||9:30 p.m.||Live-Online||REMOTE|