We specialize in a
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,
where necessary
providing personalized
assessment of their training needs and
customizing courses to those needs.
The emphasis of our courses is on providing
deep conceptual understanding.
Our course materials include a large number of diagrams,
example programs, and summary tables,
and a significant part of course time is devoted to carefully
designed practical exercises.
Michael Kerrisk began
programming on UNIX systems in 1987 and first taught
UNIX system programming
courses in 1989.
(His teaching career began as a university lecturer
in 1985.)
His unique set of qualifications and experience
ensure that course participants receive training of a very high standard:
He is
actively
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.
From 2004 to 2021, he was the maintainer of the
Linux man-pages
project,
which provides the manual pages documenting the
Linux kernel-user-space and GNU C library APIs.
As maintainer, he oversaw more than
22,000 commits to the project and made 196
project releases.
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 regular invitations to speak
at Linux
conferences.
In addition to being project maintainer,
he has also
authored or coauthored
more than 400
of the just over 1000 manual 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 manual pages.
The training materials
Participants in man7.org training courses receive a rich set
of training materials, including:
A copy of the trainer's book,
The Linux Programming Interface,
in electronic form, and, depending on the course, in printed form.
Extensive 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 provided across all courses consist of
some 50,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.
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,
based on
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 produced 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
each course.
Sample training materials
The following samples give some idea of the quality of our course materials:
Some questions to consider regarding training courses
With many 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
someone else,
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?
Are (samples of) the training materials available so that
you can assess their quality before booking a course?
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.
Past and current customers
Michael Kerrisk has
delivered training courses
in various countries, including
the USA, Australia, Germany, England,
France, the Netherlands, Norway, Sweden, Romania, and Switzerland.
Past and current customers
range from small and medium-sized businesses to
multinational companies and governments, and
include: