Linux C, low level, IoT, embedded systems and kernel classroom training

We offer a wide range of classroom training courses related to Linux and C programming: basic shell scripting and C, low level programming and embedded Linux systems development, Internet of Things (IoT).

We have also conducted numerous on-site trainings - including many that were custom-made to fit our customer's particular needs - for a large number of companies dealing in various trades.


781 participants trained

Training: Linux programming, shell, C, kernel, embedded

For public sessions, you can sign in yourself or delegate one or a few employees. The prices given in the tables are for sessions in our London training rooms, per one person.
On customer's request we conduct trainings in London, other locations in UK and anywhere in Europe, either at the customer's premises or in any other place, on either customer's hardware or ours. For on-demand training costs see here.

Title / Code Date Duration

Price TooltipTriangle

Advanced C/C++, low level, kernel and embedded
Linux C/C++ Programmer's Workshop


On demand 4+ TooltipTriangle

4 days

1140 EUR

Low Level C Linux Programming


On demand 4+ TooltipTriangle

2 days

790 EUR

Embedded Linux Systems (SoC, IoT)


On demand 5+ TooltipTriangle

5 days

1490 EUR

Linux Kernel and Driver Development


On demand 5+ TooltipTriangle

3 days

1190 EUR

Bash shell programming


On demand 5+ TooltipTriangle

1 day

380 EUR

Advanced shell programming, Bash, AWK


On demand 5+ TooltipTriangle

1 day

390 EUR

Additional information

  • training prices given above are exempt from VAT
  • training prices given above are for our London site - for other locations, please contact us
  • training prices given above are valid for upfront payment at least 7 days before the beginning of the training, when you apply via our standard application form or sign a standard training contract. Payments for custom contracts and payments after the course are 5% higher.

What is included in the training fees?

All training fees for training conducted at our premises include:

  • our training materials
  • a certificate of training
  • snacks, coffee, tea and soft drinks available during the whole course
  • after the course, an opportunity for contacting the trainer/trainers once for advice and answers concerning the training material

Some training courses also include lunches; more information is available in the detailed course description.

Linux Kernel Programming Using C Language

The Linux kernel, which is the heart of the operating system, was written mainly in the C language. Therefore, programmers working on kernel development must have solid knowledge of this programming language and the specifics of working in the kernel environment.

Structure of the Linux Kernel

The Linux kernel consists of many modules that are responsible for various aspects of the system's functioning. Each module handles specific tasks such as file handling, memory management, and device support. All these modules work together to create a coherent operating system.

Programming in C Language

C is widely used for Linux kernel programming due to its efficiency and low-level nature. Kernel programmers must be proficient in pointers, memory management, and bit operations - key aspects of C programming.

Programming languages, especially C, play a key role in creating and developing the Linux operating system kernel. The C language is widely used in kernel programming for several reasons:

  1. Efficiency: The C language enables low-level programming, which is crucial for the operating system kernel. Simple C operations are directly mapped to processor instructions, which translates into efficiency and performance.
  2. Proximity to Hardware: The C language offers direct access to memory, pointers, and bit operations, which is important when programming operating systems where low-level hardware management is necessary.
  3. Portability: The C language is portable, which means that code written in the language can be easily transferred between different processor architectures. This is crucial for the Linux kernel, which runs on a variety of platforms.
  4. Assembler support: In some cases, especially in critical parts of the code, it may be necessary to use assembler. The C language allows for seamless integration with code written in assembly language.
  5. History and Tradition: The Linux kernel was written in C from its inception by Linus Torvalds. For this reason, the tradition of using C continues throughout the project.
  6. Rich Library Database:The C language has a rich library database, which facilitates the development of advanced software and enables the use of various system functions and services.
  7. Easy Integration with Assembler:The C language allows easy integration with code written in Assembler, which is useful for low-level hardware maintenance.

The C language is not the only language used in the context of Linux kernel programming, but it serves as the primary tool for this purpose. Other languages, such as assembly or scripts in a scripting language, may be applied in specific code segments, but they are often used as supplements to the main code written in the C language.

See also

Embedded Linux Systems (SoC)

A complete and thorough overview of Linux in embedded systems. This training, full of practical, hands-on exercises done on actual embedded systems, provides both the necessary theoretical knowledge and practical examples and use cases. After this course, participants are able to prepare development environment and operating system themselves. Read more

See Also

We recommend also our complete programming training offer.

Read more


Ask us anything about this training

* I hereby give my consent to the processing of my personal data by ALX Training Ltd. for the purpose of this request.