EEC Logo



Programming in the Linux Environment

Duration: 5 days

Audience

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).

Course Contents

  1. Overview of Programming on Linux (tools and techniques)
  2. Linux Programming Standards
  3. Command Line Tools
    1. Shell Scripting with a Focus on Programming Tasks
    2. Configuration Management and Version Control (RCS, CVS, Subversion, Git, others)
    3. Overview of Compiling, Linking, and Debugging (gcc and ddd)
    4. Automating Builds Using make (includes an overview of imake)
    5. Overview of lex and yacc Note1
  4. Operating System APIs
    1. Process Lifecycle and Management (including capability management)
    2. Virtual Filesystem API (both POSIX standard and Linux-specific)
    3. Filesystem Services (directory lookup, FAM, filesystem statistics)
    4. Multi-threaded Applications (including futexes)
    5. Signal Handling
    6. System V Interprocess Communication (shared memory, semaphores, message queues)
    7. Named and Unnamed Pipes
    8. Socket Programming (including multicasting)
    9. Asynchronous I/O
    10. Overview of the PTY Implementation Note1
  5. Packaging and Deployment
    1. Building Custom RPM or .deb Packages
    2. Converting Between Package Types Using alien
    3. Kernel Compilation (why and how) Note1

Course Objectives

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.

Instructional Technique

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.

Prerequisites

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.