Experienced C programmers who have worked on Unix/Linux systems in the
past and are interested in developing or porting applications to the
Linux environment. This course is available for the RedHat
and SUSE distributions, but a variety of customized topics are
available for other distributions as well (primarily Debian-based).
- Overview of Programming on Linux (tools and techniques)
- Linux Programming Standards
- Command Line Tools
- Shell Scripting with a Focus on Programming Tasks
- Configuration Management and Version Control (
RCS, CVS, Subversion, Git, others)
- Overview of Compiling, Linking, and Debugging (
gcc and ddd)
- Automating Builds Using
make (includes an overview of imake)
- Overview of
lex and yacc Note1
- Operating System APIs
- Process Lifecycle and Management (including capability management)
- Virtual Filesystem API (both POSIX standard and Linux-specific)
- Filesystem Services (directory lookup, FAM, filesystem statistics)
- Multi-threaded Applications (including futexes)
- Signal Handling
- System V Interprocess Communication (shared memory, semaphores, message queues)
- Named and Unnamed Pipes
- Socket Programming (including multicasting)
- Asynchronous I/O
- Overview of the PTY Implementation Note1
- Packaging and Deployment
- Building Custom
RPM or .deb Packages
- Converting Between Package Types Using
alien
- Kernel Compilation (why and how) Note1
Upon completion of this course, the student will be able to
write application code in the C language that conforms to published
Linux programming standards.
Students are invited to bring their current ideas and questions to the
classroom for discussion. Case studies, lecture, group problem solving,
and online laboratories will be used.
-
Experience in C programming (preferably six months or more)
-
Familiarity with Linux commands and directory structure
-
Experience with the vi or emacs text editor
-
Understanding of basic shell usage for Unix/Linux (wildcards, I/O redirection)
You can find detailed classroom equipment requirements in
the classroom setup guide.The largest value is obtained when the student has been working
as a C programmer for at least one year.
Students who consider themselves "rusty" in their C
skills should refresh those skills first.
|
Note1 |
Optional topic; can be included in class, but there may be time
constraints. |