Linux/UNIX System Programming Training

Course code: M7D-LUSP01

PDF icon Download Linux/UNIX System Programming course description (PDF)

Course overview

This course provides a deep understanding of the operating system architecture and low-level interfaces (principally, system calls and library functions) that are required to build system-level, multithreaded, and network applications on Linux and UNIX systems. The course consists of a mixture of detailed presentations coupled with a large number of carefully designed practical exercises that allow participants to apply the knowledge learned in the presentations.

By the completion of the course, participants will have the mastery needed to write complex system, network, and multithreaded applications on a Linux or UNIX system. Previous system programming experience (on Linux, UNIX, or any other operating system) is not required.

Note: previous system programming experience is not required.

Related courses

This course is also available as two smaller parts that can be followed as separate pieces:

Course details

Course outline.

The course employs a lecture+lab format.

Audience and prerequisites

The audience for this course is in practice rather diverse, and includes:

In order to get the most out of the course, participants should have:

Lab sessions

A significant part of the course is spent on practical exercises. The lab sessions also provide participants with the opportunity to obtain one-to-one assistance from the trainer on the course material and exercises.

Course materials

Course participants receive course books of around 500 pages. The course books include all of the slides and exercises presented in the course. Some notable features of the course books are the following: TLPI front cover (small)

In addition to the course book, participants receive a copy of The Linux Programming Interface, in either ebook or printed form (or, when possible, both).

The following samples give some idea of the course content and style of the course materials:

Onsite and virtual onsite courses

For onsite and virtual onsite courses, please email training@man7.org regarding availability and pricing.

If you elect to have an onsite training course on your premises, it is possible to determine the length and content of the course. The length and content of tailored courses is determined by your choice of topics, typically based on a subset of the topics in The Linux Programming Interface. Relevant topics that are not in the "Standard" list are also possible; see Alternative Topics in the course outline, and contact me if you have specific requests.

Public courses: upcoming dates, prices, and booking

Date Location Maximum participants
7-8 April 2025 Online: UTC+2 timezone (Europe) 14 Registration
23-27 June 2025 Online: UTC-4 timezone (Americas) 14 Registration
2-6 February 2026 Online: UTC+1 timezone (Europe) 14 Registration

Online courses in Europe timezones are normally timed around Berlin time, starting at 08:00, 08:30, or 09:00. Online courses in Americas timezones are normally timed around New York time, starting at 09:00 or 10:00. Depending on the length of breaks, classes typically run for 8 to 8.5 hours per day.

For public 5-day online courses, the per-attendee price is €3100 reduced to €3000 when booked (and either paid or a company purchase order is supplied) at least 4 weeks before the start of the course. (In addition, 19% German VAT is charged for participants attending from German locations; 19% German VAT is also applicable for private attendees in any location in the European Union without a VAT ID.)

Currently (and for the foreseeable future), public versions of this course are delivered only in online format.

Discounts are available for multiple attendees from the same company or organization; please inquire at training@man7.org for details.

About the trainer

Michael Kerrisk has a unique set of qualifications and experience that ensure that course participants receive training of a very high standard: Michael Kerrisk

For more information about the trainer, as well as many reasons why you might want to consider choosing man7.org training courses, please see reasons to choose man7.org training.

Contact

For further inquiries about the course, please get in contact via one of the following methods:

Mailing list

If you would like to be added to a mailing list to receive notifications of public training courses that are scheduled in the future, send a mail (noting your location) to training@man7.org.