Linux Development Fundamentals

Linux Development Fundamentals is a four-day course aimed at providing engineers and technical leaders the knowledge necessary to develop applications for Linux using GNU-based development tools.  The material focuses on the development of user-space applications using various Linux system calls, tools and utilities.   At the completion of this course, attendees will be able to develop, compile and debug C-based applications using the GNU tool chain and Linux system calls.

Course Objectives

The course is designed to introduce the concepts and characteristics of Linux development.  The students will learn:

  • The Linux boot cycle including the use of various boot firmware, initramfs and early kernel initialization sequences on x86, ARM, PPC and MIPs processors
  • The role of the root file system in both standalone and networked Linux configurations
  • The various commonly used tools and techniques for monitoring, debugging and troubleshooting Linux applications
  • The GNU library, its services and uses
  • Process management and inter-process communications techniques
  • Linux’s understanding of time and the use of timers
  • The use and development of Linux services also know as daemons
  • How desktop Linux development differs from embedded Linux development


This course is targeted at engineers and technical managers who need to learn how to develop, debug and/or monitor Linux applications.  The course emphasis will be in C/C++.  However, other language options will be discussed.

Course Materials

The course materials include a workbook that contains all of the slides presented during the lecture as well as hands-on lab exercises.  The on-site course is taught using Linux-based, multi-core laptops to demonstrate the concepts presented during the class.


Get more information on this course