Outline of Course Topics
- Introduction to Linux/UNIX and Operating Systems
- Linux/UNIX history
- OS functions, OS types, components (kernel, drivers, etc.)
- command-line interfaces (CLIs) vs. GUI interfaces (GUIs)
- CLI: shells, bash, c shell
- GUI: X windows, window managers
- file system structure, pathnames, file permissions
- Linux distributions and application software
- Effective Shell (CLI) Usage
- basic commands and utilities (cd, mkdir, rm, cp, cat, etc.)
- piping, redirection, filters
- command line editing, history, etc.
- shell startup files, aliases
- Introduction to C Language Programming
- C vs. Java
- header files, preprocessor directives
- pointers, arrays, strings
- dynamic memory allocation
- command-line arguments, return values
- standard library I/O functions
- Linux/UNIX Development Tools and Techniques
- compiling: GCC, Make, etc.
- editors and IDEs
- debugging: GDB, DDD, etc.
- libraries
- System Programming
- files and I/O (open, close, read, write, dup, etc.)
- processes (fork, exec, etc.)
- threads [optional]
- pipes and IPC (pipe, mkfifo, etc.)
- signals
- Network Programming
- networking basics, IP, TCP, UDP
- client-server model
- socket, etc. system calls