By contrast with large training companies, we take
a "boutique" approach to training,
specializing in a relatively small
range of topics
that are of particular
relevance for developers of low-level Linux/UNIX
user-space applications in
domains ranging from embedded to enterprise server systems.
We work closely with our customers, providing personalized
assessment of their training needs, and where necessary
customizing our courses to those needs.
Our customers range from small and medium-sized businesses to
multinational companies and governments.
Present and past customers include
French and British governments.
The emphasis of our courses is on providing
deep conceptual understanding
coupled with intensive in-class practical work.
Our course materials include a large number of diagrams,
example programs, and summary tables,
and up to 50% of course time is devoted to carefully
designed practical exercises.
Some customers request, and we naturally provide,
certificates of course completion
for all attendees.
Michael Kerrisk began
programming on UNIX systems in 1987 and has been
teaching UNIX system programming
courses since 1989.
(His teaching career began as a university lecturer
His unique set of qualifications and experience
ensure that course participants receive training of a very high standard:
[Link currently broken while we await the
return of gmane.org]
involved in Linux development—working
with kernel developers
on testing, review, and design of new
Linux kernel-user-space APIs (system calls, etc.).
In many cases, he personally knows
the developers of the APIs that he describes
in his courses; in some cases,
he has even been influential in the design of those APIs.
Since 2004, he has been the maintainer of the
which provides the manual pages documenting the
Linux kernel-user-space and GNU C library APIs.
As maintainer, he has to date (December 2016) overseen 17,000 commits
to the project and 175
His involvement with the project stretches back to 2000,
and has provided
him with a broad and deep understanding of Linux APIs
and their historical development.
That involvement has led to wide recognition in the
Linux development community
and a number of invitations to
the annual invitation-only
Linux Kernel Summit.
In addition to being project maintainer,
he has also
authored or coauthored more than 380 of the just over 1000 man pages
provided by the man-pages project;
if you are doing system programming on Linux,
you're almost certainly already relying on knowledge
that he has put into the man pages.
The training materials
Participants in man7.org training courses receive a rich set
of training materials, including:
Extensive printed course books
containing all of the slides and exercises
presented during the course.
The course materials are liberally sprinkled with
diagrams and sample code that illustrate the concepts presented
in the course.
A source code tarball containing
clearly written and
well commented code examples
directly relevant to the course.
The source code examples run to some 20,000 lines
of code, all of which has been written by the trainer.
(Much of this source code is
the code that accompanies
the trainer's book,
The Linux Programming Interface,
supplemented by further examples relevant to the course.)
Template solutions for the course exercises.
For most of the more significant programming exercises,
solution templates are provided.
These templates provide the background boilerplate code
needed for completing the exercises, leaving participants
to focus on the specific technical problems posed by the exercises.
By this means, we are able to cover more ground
in the practical sessions and
work on more ambitious exercises.
Worked solutions for most course exercises
(provided by email at completion of the course).
All man7.org training courses are taught from materials
produced by the trainer.
Those materials are
constantly updated and improved,
changes in the Linux kernel and C libraries
and experiences delivering each course.
Because the materials are updated so frequently,
the course books provided for each course are printed on demand.
The same edition of the course books is rarely used for
more than two courses;
indeed, typically, a unique edition is produced for
Sample training materials
The following samples give some idea of the quality of our course materials:
Some questions to consider regarding training courses
With most large training organizations,
when you enroll for a highly specialized technical course,
you're likely to get an external trainer hired in by the company.
Commonly, you won't have a guarantee about who the trainer is,
how much training experience they have,
or how up to date they are with the current
state of Linux development.
Furthermore, that trainer will likely be working
with training materials and example programs produced by
and in some cases those materials may be a few years old.
Thus, the trainer may be working under the burden
of teaching with outdated training materials that
adopt a training approach that is unfamiliar
and inconsistent with that of the trainer.
Here are some questions you may want to ask yourself
(or your training provider) when choosing a specialized training
course of the kind offered by man7.org:
Do you know exactly who will be delivering the course?
What evidence do you have regarding
how up to date the trainer is
with the latest developments on Linux
or how much training experience they have with teaching the
course in question?
When were the course materials published?
Are the course materials up to date with the latest Linux developments?
Were the course materials prepared by the trainer?
If not, how familiar is the trainer with the materials?
Is the trainer engaged with the Linux development community?
With respect to man7.org training,
we hope the answers to all of these questions are provided on this page.
For inquiries about courses and consulting,
you can contact us in the following ways: