Linux & Open-Source Training Linux Laptops Linux Services

Linux Development Essentials

A Two Day Course

Course Description
This course is designed to bring C developers up to speed with a variety of tools and capabilities of Linux. This includes development and debugging tools as well as system and library functions.

The intent is to provide background that will be of general interest to all Linux based developers.
Students should be prepared for some lengthy programming exercises.

This course provides substantial practice with key tools and capabilities available to developers of Linux based applications and system software. The course shows attendees how to use development and debugging tools and how to make use of many Linux system calls and library routines.

Attendees will spend approximately 50 percent of the class time actually gaining hands-on experience with these topics.

Course Objectives
Effectively use a variety of tools for Linux application development.
To give you practical experience in using Linux system calls and library routines.
Compile programs with variety of options.
Use GDB to debug applications.
Use electric fence, gprof, gcov, and other tools for debugging and performance analysis.
Write a simple shell.
Create socket base applications.

Attendees will learn:
How to use GNU tools for compiling and debugging.
How to use an integrated development environment.
How to use system calls for such things as inter-process communication, interacting with the file system.

Who Should Attend:
The course is for programmers who are new to Unix and Linux. Attendees should have experience with C and be able to perform basic Unix commands.

Duration: Two days. (9AM - 5PM)

Course Materials
The workshop materials include a comprehensive student workbook . The workbook contains all of the slides used in the course as well as hands-on lab exercises.

Course Workshop:
The workshop makes use of standard PC's with a desktop Linux distribution for development. Usually, Fedora Core 3.

Course Content:

Linux Development

Objectives and format
Course overview

Overview Of Linux Programming

Linux kernel overview
System calls and library routines

System Libraries and Headers

System Include files
Using and creating libraries
Using Make

Programming with GNU tools

debugging with gdb


Integrated Development Environments: KDevelop & Eclipse
Electric Fence & Valgrind

Process Management

Creating processes
Process signaling and status
Process and user ID's

Linux File System

Access Permissions
I/O System Calls
Manipulating files
Higher performance I/O

Optional: All attendees will get a Linux laptop to be used during the class. You have the option of purchasing this laptop with an additional course fee.

On-site: If you would like to arrange an on-site Linux software development class, please contact us at

Fee: per student (includes all class materials)

Public class schedule: Please see dates on our calendar page.
Enrollment Form

Receive Announcements & Linux Tips
Linux is a registered trademark of Linus Torvalds.