Developing Applications for Linux - LFD401

Learn how to develop applications for the Linux environment. In this course, you’ll get hands-on experience with the necessary tools and methods for Linux application development and learn about the features and techniques that are unique to Linux. [5 Days]

Course description

This course is designed to help experienced developers get up to speed quickly on how to develop applications for a Linux environment. In this course you’ll learn:

  • The tools and methods for developing C programs and doing systems programming under Linux.
  • Debugging techniques and process management.
  • Linux specific paid and system calls.
  • And more.

The information in this course will work with any major Linux distribution.

Course details

Who should attend?

This course is for experienced developers.

Previous knowledge
You should:

  • Be proficient in the C programming language.
  • Be familiar with basic Linux (Unix) utilities such as ls, rm, grep, tar.
  • Be comfortable using any of the available text editors (e.g. emacs, vi).
  • Experience with any major Linux distribution is helpful but not strictly required.

Course Materials

As part of your registration, a printed copy of the course manual will be will be provided. If you are attending in person the material will be available onsite on the day the class begins.

Stockholm, Bucharest or On-Site
On request
Number of days

Course outline

Course Outline
01: Introduction
02: Preliminaries
03: Compilers
04: Libraries
05: Make
06: Source Control
07: Debugging and Core Dumps
08: Debugging Tools
09: System Calls
10: Memory Management and Allocation
11: Files and Filesystems in Linux
12: File I/O
13: Advanced File Operations
14: Processes - I
15: Processes - II
16: Pipes and Fifos
17. Asynchronous I/O**
18: Signals - I
19: Signals - II
20: POSIX Threads - I
22: POSIX Threads - II
23: Networking and Sockets
24: Sockets - Addresses and Hosts
25: Sockets - Ports and Protocols
26: Sockets - Clients
27: Sockets - Servers
28: Sockets - Input/Output Operations
29: Sockets - Options
30: Netlink Sockets
31: Sockets - Multiplexing and Concurrent Servers
32: Inter Process Communication
33: Shared Memory
34: Semaphores
35: Message Queues

 ** These sections may be considered in part or in whole as optional. They contain either background reference material, specialized topics, or advanced subjects. The instructor may choose to cover or not cover them depending on classroom experience and time constraints.