CS3320: Linux System Programming


Credit Hours: 3
Terms Offered: Fall
Elective Course


Introduction to operation system administration and development on the linux operating system. Students will learn how the linux operating system is constructed, including its common organization into subsystems, capabilities and features, administration tools, and programmer interface. Students will also practice administering user capabilities, the file system, access controls, and other system services (e.g., printing and networking). Special emphasis is given to developing low-level programming skills in C and assembly languages for kernel programming.



By the end of the course, students will be able to:

  • Use low-level C language features intermixed, as necessary, with assembly language to implement a variety of user-space and kernel-level programs, such as those required for process management, memory management, network management and device drivers.

  • Understand the manner in which user-space programs communicate with the kernel via system calls and the vulnerabilities associated with this mechanism.

  • Configure, build, modify and install a linux O/S from source code.

  • Perform common system administration tasks (e.g., user management, configure file or web service) to set up and operate a linux server as a system administrator.

  • Understand the overall architecture of linux, including the common file system hierarchy, sub-systems, and applications and services configuration management.

  • Understand SELinux integration into the kernel and the capabilities provided by this integration.


Please describe the bug that you encountered or tell us what you think. We will log your username, email address, and the time that the issue was submitted.