Course Overview
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.
Who should attend
This course is for experienced developers.
Prerequisites
Students should be proficient in C programming, and be familiar with basic Linux utilities and text editors.
Course Content
- Introduction
- Preliminaries
- Compilers
- Libraries
- Make
- Source Control
- Debugging and Core Dumps
- Debugging Tools
- System Calls
- Memory Management and Allocation
- Files and Filesystems in Linux
- File I/O
- Advanced File Operations
- Processes - I
- Processes - II
- Pipes and Fifos
- Asynchronous I/O**
- Signals - I
- Signals - II
- POSIX Threads - I
- POSIX Threads - II
- Networking and Sockets
- Sockets - Addresses and Hosts
- Sockets - Ports and Protocols
- Sockets - Clients
- Sockets - Servers
- Sockets - Input/Output Operations
- Sockets - Options
- Netlink Sockets
- Sockets - Multiplexing and Concurrent Servers
- Inter Process Communication
- Shared Memory
- Semaphores
- 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.