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