Linux – Embedded Driver and Kernel Development (LNXKRN1)
Unix-like systems, Linux - programming
Many simple drivers run as applications in user space, but sometimes you must run code inside the kernel or modify existing kernel sources to meet project needs. Set up a virtual machine or real target hardware to begin practical experiments.
Linux evolved since 1991 and provides an object-like driver model to work with memory and I/O controllers and dedicated buses such as I2C, SPI, USB or PCI Express. The course covers implementations in C, with optional Rust or C++ tracks and targets x86-64 or ARM64.
THIS TRAINING COURSE WILL HELP YOU:
- Understand how code runs inside the kernel and the driver model
- Write drivers and work with buses and devices in Linux
- Implement synchronization across CPU cores and interrupt code
WHO SHOULD ATTEND?
- Developers of embedded products based on Linux platforms
- Engineers writing device drivers for custom hardware
- Teams porting embedded projects to Linux-based systems
- Anyone curious about Linux kernel and driver internals
COURSE LOCATION AND AVAILABLE DATES
Need this course in English?
Public courses are usually delivered in Czech, but this course is also available in English. We can arrange private training for your team online, at your premises or in our classrooms, and tailor the content to your needs.
For groups of around 4 or more participants, private training can already be comparable in price to booking individual places on a public course. Send us your requirements and we’ll recommend the best format and provide an exact quote.
Request training in English
Course content:
Hide details
-
Kernel initialization
-
Kernel boot image and the device tree
-
Root filesystem and the init process
-
Loadable modules and initramfs
-
Setting up the lab environment
-
Virtual machine environment
-
Build environment and tooling
-
Running your first kernel code
-
Constraints and specifics of kernel code
-
No stable driver API guarantees
-
Long-term maintenance of kernel code
-
Design specifics for kernel-space code
-
User-space alternatives
-
Device drivers running in user space
-
More stable APIs toward user space
-
Wider choice of programming languages
-
Building kernel modules
-
Initialization and cleanup
-
Acquiring and releasing resources
-
Registering operation structures
-
Creating user-space interfaces
-
Virtual filesystem interfaces
-
Read, write and ioctl operations
-
Roles of procfs, sysfs and debugfs
-
Exposing character devices
-
Global character device numbering
-
Dynamic miscdev allocation
-
Publishing devices via devtmpfs
-
Hardware driver mechanics
-
Linux device driver model
-
Initialization and teardown flows
-
Resource acquisition and release
-
Representing hardware buses
-
Devices accessed by CPU instructions
-
Buses without enumeration (I2C, SPI, …)
-
Smart buses with enumeration (USB, PCI, …)
-
Connecting user space with hardware
-
Presenting hardware devices to applications
-
Character devices and the block layer
-
Integration with specialized subsystems
-
Kernel module design patterns
-
Rollback on failed initialization
-
Callbacks using
container_of
-
Preallocated buffers and FIFOs
-
Dynamic module loading infrastructure
-
Module loading and unloading steps
-
Symbol dependencies between modules
-
Resource management and blocked removal
-
Locking and waiting mechanisms
-
Mutexes and working with kernel threads
-
Spinlocks, interrupts and synchronization
-
Timers and wait queues
-
Support for ARM boards
-
Device and board files
-
Binary device tree
-
Pinctrl, GPIO and interrupts
-
Discussion about kernel development
-
Differences vs. bare-metal programming
-
Real-time and performance considerations
-
Legal, community and PR aspects
-
Prerequisites:
-
Good knowledge of C programming.
-
Schedule:
-
5 days (9:00-17:00)
Training and learning environment
What does the environment for in-person IT courses look like?We hold training courses in our own classrooms equipped with modern computer equipment for each participant and a large projection screen. Each workstation is fitted with a powerful computer for seamless practical exercises, and the environment supports a calm, friendly atmosphere during training.
Do I need to bring my own laptop to the classroom IT course?Our training rooms are fully equipped, so you do not need to bring your own laptop. A modern computer with all necessary hardware and software is ready for you at your workstation.
Will you receive an official certificate after completing an IT course?Yes, upon successful completion of the training course, you will receive an official ICT Pro certificate confirming your participation and acquired technical skills. You can use it to verify your qualifications or add it to your professional profile.
Where can you find our training center in Brno?The premises of the ICT Pro training center are located on the 1st floor of the COMGUARD building at Sochorova 38 in Brno. Positioned on the border of Žabovřesky and Komín, the location is easily accessible by both car and public transport.
Where can you find our training center in Prague?The premises of the ICT Pro training center are located on the 1st floor of the Opatov Park building at Líbalova 1, Prague 11 – Chodov. The location provides a comfortable environment for your education with convenient access.
What facilities and refreshments are available to you during training breaks?Our training centers feature a fully equipped kitchenette for a comfortable break during your courses. The facilities include a coffee machine, microwave, kettle, and a wide selection of drinks and snacks.
What beverage refreshments are available during your course?A beverage station with a coffee machine, teas, syrups, and water is at your disposal throughout the entire training session. You can enjoy a coffee or another drink of your choice anytime during breaks.
What light refreshments are provided for you during the courses?During course breaks, participants can enjoy light sweet snacks, pastries, and fruit syrups to mix their own drinks. Fresh water dispenser and plates are also available for your convenience.
Should I bring my own snacks to ICT Pro training?There is no need to. A wide selection of savory snacks, sweet biscuits, and snack bars is available for you during breaks. Boost your energy for all-day focus right inside the training center premises.
Can you spend training breaks in the fresh air?Yes, an outdoor terrace is available at our training center. During breaks between learning sessions, you can relax in the fresh air in a pleasant green environment.
Where can you relax during course breaks?Our training center features a spacious outdoor terrace with seating options. During breaks between learning sessions, you can step outside to relax and recharge in the fresh air.