Training The Linux Foundation

Training goals

code: LFD401

This four days 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 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.

During this course you will 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.

Conspect Show list

  1. Introduction
    • Objectives
    • Who You Are
    • The Linux Foundation
    • Linux Foundation Training
    • Linux Distributions
    • Platforms
    • Preparing Your System
    • Using and Downloading a Virtual Machine
    • Things change in Linux
    • Course Registration
  2. Preliminaries
    • Procedures
    • Standards and the LSB
  3. How to Work in OSS Projects **
    • Overview on How to Contribute Properly
    • Stay Close to Mainline for Security and Quality
    • Study and Understand the Project DNA
    • Figure Out What Itch You Want to Scratch
    • Identify Maintainers and Their Work Flows and Methods
    • Get Early Input and Work in the Open
    • Contribute Incremental Bits, Not Large Code Dumps
    • Leave Your Ego at the Door: Don’t Be Thin-Skinned
    • Be Patient, Develop Long Term Relationships, Be Helpful
  4. Compilers
    • GCC
    • Other Compilers
    • Major gcc Options
    • Preprocessor
    • Integrated Development Environments (IDE)
    • Labs
  5. Libraries
    • Static Libraries
    • Shared Libraries
    • Linking To Libraries
    • Dynamic Linking Loader
    • Labs
  6. Make
    • Using make and Makefiles
    • Building large projects
    • More complicated rules
    • Built-in rules
    • Labs
  7. Source Control
    • Source Control
    • RCS and CVS
    • Subversion
    • git
    • Labs
  8. Debugging and Core Dumps
    • gdb
    • What are Core Dump Files?
    • Producing Core Dumps
    • Examining Core Dumps
    • Labs
  9. Debugging Tools
    • Electric Fence
    • Getting the Time
    • Profiling and Performance
    • valgrind
    • Labs
  10. System Calls
    • System Calls vs. Library Functions
    • How System Calls are Made
    • Return Values and Error Numbers
    • Labs
  11. Memory Management and Allocation
    • Memory Management
    • Dynamical Allocation
    • Tuning malloc()
    • Locking Pages
    • Labs
  12. Files and Filesystems in Linux **
    • Files, Directories and Devices
    • The Virtual File System
    • The ext2/ext3 Filesystem
    • Journaling Filesystems
    • The ext4/ Filesystem
    • Labs
  13. File I/O
    • UNIX File I/O
    • Opening and Closing
    • Reading, Writing and Seeking
    • Positional and Vector I/O
    • Standard I/O Library
    • Large File Support (LFS)
    • Labs
  14. Advanced File Operations
    • Stat Functions
    • Directory Functions
    • inotify
    • Memory Mapping
    • flock() and fcntl()
    • Making Temporary Files
    • Other System Calls
    • Labs
  15. Processes – I
    • What is a Process?
    • Process Limits
    • Process Groups
    • The proc Filesystem
    • Inter-Process Communication Methods
    • Labs
  16. Processes – II
    • Using system() to Create a Process
    • Using fork() to Create a Process
    • Using exec() to Create a Process
    • Using clone()
    • Exiting
    • Constructors and Destructors
    • Waiting
    • Daemon Processes
    • Labs
  17. Pipes and Fifos
    • Pipes and Inter-Process Communication
    • popen() and pclose()
    • pipe()
    • Named Pipes (FIFOs)
    • splice(), vmsplice() and tee()
    • Labs
  18. Asynchronous I/O**
    • What is Asynchronous I/O?
    • The POSIX Asynchronous I/O API
    • Linux Implementation
    • Labs
  19. Signals – I
    • What are Signals?
    • Signals Available
    • Dispatching Signals
    • Alarms, Pausing and Sleeping
    • Setting up a Signal Handler
    • Signal Sets
    • sigaction()
    • Labs
  20. Signals – II
    • Reentrancy and Signal Handlers
    • Jumping and Non-Local Returns
    • siginfo and sigqueue()
    • Real Time Signals
    • Labs
  21. POSIX Threads – I
    • Multi-threading under Linux
    • Basic Program Structure
    • Creating and Destroying Threads
    • Signals and Threads
    • Forking vs. Threading
    • Labs
  22. POSIX Threads – II
    • Deadlocks and Race Conditions
    • Mutex Operations
    • Semaphores
    • Futexes
    • Conditional Operations
    • Labs
  23. Networking and Sockets
    • Networking Layers
    • What are Sockets?
    • Stream Sockets
    • Datagram Sockets
    • Raw Sockets
    • Byte Ordering
    • Labs
  24. Sockets – Addresses and Hosts
    • Socket Address Structures
    • Converting IP Addresses
    • Host Information
    • Labs
  25. Sockets – Ports and Protocols
    • Service Port Information
    • Protocol Information
    • Labs
  26. Sockets – Clients
    • Basic Client Sequence
    • socket()
    • connect()
    • close() and shutdown()
    • UNIX Client
    • Internet Client
    • Labs
  27. Sockets – Servers
    • Basic Server Sequence
    • bind()
    • listen()
    • accept()
    • UNIX Server
    • Internet Server
    • Labs
  28. Sockets – Input/Output Operations
    • write(), read()
    • send(), recv()
    • sendto(), recvfrom()
    • sendmsg(), recvmsg()
    • sendfile()
    • socketpair()
    • Labs
  29. Sockets – Options
    • Getting and Setting Socket Options
    • fcntl()
    • ioctl()
    • getsockopt() and setsockopt()
    • Labs
  30. Netlink Sockets**
    • What are netlink Sockets?
    • Opening a netlink Socket
    • netlink Messages
    • Labs
  31. Sockets – Multiplexing and Concurrent Servers
    • Multiplexed and Asynchronous Socket I/O
    • select()
    • poll()
    • pselect() and ppoll()
    • epoll
    • Signal Driven and Asynchronous I/O
    • Concurrent Servers
    • Labs
  32. Inter Process Communication
    • Methods of IPC
    • POSIX IPC
    • System V IPC**
    • Labs
  33. Shared Memory
    • What is Shared Memory?
    • POSIX Shared Memory
    • System V Shared Memory**
    • Labs
  34. Semaphores
    • What is a Semaphore?
    • POSIX Semaphores
    • System V Semaphores**
    • Labs
  35. Message Queues
    • What are Message Queues?
    • POSIX Message Queues
    • System V Message Queues**
    • Labs
  36. Closing and Evaluation Survey

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

Download conspect training as PDF

Additional information

Prerequisites

This course is for experienced developers. Students should be proficient in C programming, and be familiar with basic Linux utilities and text editors.

Difficulty level
Duration 4 days
Certificate

The participants will obtain certificates signed by The Linux Foundation.

Trainer

Certified The Linux Foundation Trainer.

Other training The Linux Foundation | Linux

Training thematically related

Programming

Open Source

Operation Systems

Linux

Contact form

Please fill form below to obtain more info about this training.







* Fields marked with (*) are required !!!

Information on data processing by Compendium - Centrum Edukacyjne Spółka z o.o.

PRICE 2200 EUR

FORM OF TRAINING ?

 

TRAINING MATERIALS ?

 

SELECT TRAINING DATE

    • General information
    • Guaranteed dates
    • Last minute (-10%)
    • Language of the training
    • English
    • General information
    • Guaranteed dates
    • Last minute (-10%)
    • Language of the training
    • English
Book a training appointment
close

Traditional training

Sessions organised at Compendium CE are usually held in our locations in Kraków and Warsaw, but also in venues designated by the client. The group participating in training meets at a specific place and specific time with a coach and actively participates in laboratory sessions.

Dlearning training

You may participate from at any place in the world. It is sufficient to have a computer (or, actually a tablet, or smartphone) connected to the Internet. Compendium CE provides each Distance Learning training participant with adequate software enabling connection to the Data Center. For more information, please visit dlearning.eu site

close

Paper materials

Traditional materials: The price includes standard materials issued in the form of paper books, printed or other, depending on the arrangements with the manufacturer.

Electronic materials

Electronic materials: These are electronic training materials that are available to you based on your specific application: Skillpipe, eVantage, etc., or as PDF documents.

Ctab materials

Ctab materials: the price includes ctab tablet and electronic training materials or traditional training materials and supplies provided electronically according to manufacturer's specifications (in PDF or EPUB form). The materials provided are adapted for display on ctab tablets. For more information, check out the ctab website.

Upcoming The Linux Foundation training

Training schedule
The Linux Foundation