| SIUC Home | Campus Index A-Z | Apply Now | People Finder | Jobs | Webmail |

Department
Home, Overview, Contact, Facilities...

People
Faculty, Staff

Programs
Undergraduate, Graduate, Courses, Course Schedules, Course Materials...

Research
Activities, Grants

Scholarships

Opportunities

Utilities
Webmail, Downloads

CS 306-3
Linux/UNIX Programming

Catalog Description

This course will prepare students to develop software in and for Linux/UNIX environments. Topics to be covered include basic operating system concepts, effective command line usage, shell programming, the C language, programming development tools, system programming, network programming (client-server model and sockets), and GUI programming.

Prerequisite:

220 with a grade of C or better.

Objectives

1. To become comfortable using Linux/UNIX systems and gain proficiency with a basic set of commands and utilities.
2. To prepare students to develop software on and for Linux/UNIX systems.
3. To introduce the C language and get experience programming in C.
4. To become familiar with important Linux/UNIX library functions and system calls.
5. To gain an understanding of the inner workings of UNIX-like operating systems and lay a foundation for an advanced course in operating systems.


Course Outline
  Lectures
1. Introduction to Operating Systems
OS functions, OS types, components (kernel, drivers, etc.)
command-line interfaces (CLIs) vs. GUI interfaces (GUIs)
1
2. Introduction to UNIX
Linux/UNIX history
CLI: shells, bash, c shell
GUI: X windows, window managers
distributions and application software
file system structure, pathnames, file permissions
3
3. Effective shell (CLI) usage 3
basic commands and utilities (cd, mkdir, rm, cp, cat, etc.)
piping, redirection, filters (grep, sed etc.)
command line editing, history, etc.
shell startup files, aliases
3
4. Bash shell programming
variables, parameters
metacharacters, shell expansions
control constructs (if, for, while, etc.)
I/O
3
5. GNU programming and development tools
gcc, make, gdb, etc.
editors, IDEs, libraries
1
6. Introduction to C language programming
header files, preprocessor directives
pointers, arrays, strings
dynamic memory allocation
command-line arguments, return values
standard library I/O
3
7. System programming
files and I/O (open, close, read, write, dup, etc.)
directories (opendir, readdir, etc.)
processes (fork, exec, etc.)
signals
pipes and IPC (pipo, mkfifo, etc.)
14
8. Network programming
IP basics, TCP, UDP
client-server model
sockets system calls
6
9. GUI programming
curses/ncurses
Qt and GTK toolkits
event-oriented programming
6
  Total 40

Webmaster - EOE Link - Privacy Policy     Last Update: August 2007