Course code: M7D-TIPC01
Download Linux/UNIX Threads and IPC Programming course description (PDF)
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.
Note: some previous system programming background is presumed. Where necessary, that background can be gained by following the Linux/UNIX System Programming Fundamentals (SPINTRO01) course.
This course covers the same topics as the last part (the final three days) of the Linux/UNIX System Programming (M7D-LUSP01) course.
Note that this course is similar to the 3-day Linux/UNIX IPC Programming (M7D-IPC02) course, but omits some of the IPC topics in that course while adding coverage of POSIX threads.
The course employs a lecture+lab format.
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:
The content of the course is applicable in a range of compiled programming languages, such as C, C++, Rust, and D and scripting languages such as Python, and participants are welcome to use their preferred language in the lab sessions.
It is presumed that attendees will have a working knowledge of the topics covered in the course Linux/UNIX System Programming Fundamentals (M7D-SPINTRO01). In particular, participants should have a good understanding of concepts such as: file I/O using system calls, process lifecycle (fork(), exec(), wait()), and signals.
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 participants receive course books of around 250 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:
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:
For onsite and virtual onsite courses, please email firstname.lastname@example.org regarding availability and pricing.
|21-23 February 2024||Online: UTC+1 timezone (Europe)||14||Registration|
|20-22 March 2024||Online: UTC-4 timezone (Americas)||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.5 to 9 hours per day.
For public 3-day online courses, the per-attendee price is €1750 reduced to €1650 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 19% 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.)
For public in-person 3-day courses in Munich, GERMANY, the per-attendee price is €1850 + 19% German VAT (MWSt).
The course price for in-person courses includes the cost of lunch and refreshments. Discounts are available for multiple attendees from the same company or organization; please inquire at email@example.com for details.
Michael Kerrisk has a unique set of qualifications and experience that ensure that course participants receive training of a very high standard:
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,
For further inquiries about the course, please get in contact via one of the following methods:
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 firstname.lastname@example.org. Likely future locations are Europe and USA West Coast, but other locations may also be possible, especially if they can be scheduled to coincide with an interesting conference.