Embedded Linux: Tvorba ovladačů a programování kernelu (LNXKRN1)
Unixové systémy, Linux - programování
Linux je vysoce přizpůsobitelný open-source operační systém, který lze využít na širokém spektru zařízení, od superpočítačů po embedded systémy. Tento kurz se zaměřuje na programování ovladačů jádra Linuxu a na to, jak přizpůsobit Linux specifickým potřebám, hardwarovým deskám a periferiím. Naučíte se porozumět základním principům kernelového programování, od inicializace jádra až po pokročilé techniky práce s hardwarovými sběrnicemi a zamykacími mechanismy.
Kurz je ideální pro vývojáře embedded systémů a systémové programátory, kteří chtějí efektivně pracovat s Linuxem na nízké úrovni a zvládnout návrh vlastních ovladačů zařízení.
TOTO ŠKOLENÍ VÁM POMŮŽE:
- Pochopit proces inicializace jádra Linuxu, včetně práce s device tree a initramfs
- Naučit se vytvářet a spravovat kernelové moduly a ovladače zařízení
- Osvojit si práci s hardwarovými sběrnicemi, jako jsou I2C, SPI, USB a PCI
- Vytvářet rozhraní mezi uživatelským prostorem a hardwarem pomocí sysfs, procfs a debugfs
- Zvládnout zamykací a synchronizační mechanismy v jádře, jako jsou mutexy a spinlocky
KDO BY SE MĚL KURZU ZÚČASTNIT?
- Vývojáři embedded systémů, kteří chtějí přizpůsobit Linux specifickým deskám a zařízením
- Systémoví programátoři, kteří se chtějí naučit vytvářet a spravovat ovladače zařízení
- IT profesionálové, kteří potřebují hlubší porozumění kernelovým modulům a mechanismům Linuxu
Privátní školení a termíny na míru
Toto téma je možné zrealizovat pouze jako privátní, a to nejen formou uzavřeného firemního kurzu, ale také jako individuální konzultaci pro jednotlivce.
V případě kurzu na míru je níže uvedená osnova pouze inspirací. Finální obsah vzdělávání, jeho délka i termíny budou přizpůsobeny konkrétním vstupním znalostem, potřebám a cílům účastníků.
Cenovou nabídku vám rádi připravíme na základě vstupů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.
KDE A KDY KURZ PROBÍHÁ?
Kontaktujte nás
S námi
máte na výběr: Přijďte na
kurz osobně do naší učebny, nebo se ke kurzu
připojte online. Pokud preferujete online formu, uveďte prosím do poznámky v objednávce "Připojím se virtuálně".
Více informací k hybridní formě školení
naleznete zde.
Náplň kurzu:
Skrýt detaily
-
Linux kernel initialization process
-
Kernel boot image and device tree
-
Root file system and init process
-
Loadable modules and initramfs
-
Getting a lab environment
-
Virtual machine environment
-
Build environment and tools
-
Running the first kernel code
-
Kernel code limitations and constraints
-
Lack of stable driver API
-
Maintenance of kernel code over time
-
Kernel code design specifics
-
Alternatives in the userspace
-
Device drivers for some subsystems
-
Stable user space-facing API
-
Free choice of programming language
-
Building kernel modules
-
Initialization and finalization
-
Resource acquisition and cleanup
-
Operation structure registration
-
Creating user-space interfaces
-
Kernel side of the virtual file system
-
Reading, writing, and ioctl calls
-
Purpose of procfs, sysfs, and debugfs
-
Exposing character devices
-
Global character device numbers
-
Dynamic miscdev allocation
-
Publishing devices in devtmpfs
-
The mechanics of hardware drivers
-
Device driver model in Linux
-
Initialization and finalization
-
Resource acquisition and cleanup
-
Hardware bus representation
-
Platform device pseudo-bus
-
Non-enumerating buses (I2C, SPI, …)
-
Enumerating buses (USB, PCI, …)
-
Connecting the user-space and hardware
-
Hardware device presented to user-space
-
Character devices and the block layer
-
Plugging into the big subsystems
-
Kernel module design patterns
-
Failed initialization unrolling
-
Callbacks with container_of
-
Pre-allocated buffers and FIFOs
-
Dynamic module loading infrastructure
-
Loading and unloading procedure
-
Symbol dependencies between modules
-
Resource acquisition and busy modules
-
Locking and waiting mechanisms
-
Mutexes and multiprocessing
-
Spin locks and interrupts
-
Timers and wait queues
-
ARM board support
-
Device & board files
-
Device tree binaries
-
Pinctrls, GPIOs, and interrupts
-
Kernel development discussion
-
Differences from bare-metal programming
-
Real-time & performance considerations
-
Legal, community, and public relations
-
Předpokládané znalosti:
-
Znalost unixového prostředí a programování v jazyku C.
-
Časový rozvrh:
-
5 dní (9:00hod. - 17:00hod.)
Vybrané zákaznické reference
Thermo Fisher Scientific Brno s.r.o., Petr K.
Embedded Linux: Tvorba ovladačů a programování kernelu (
LNXKRN1)
"Dobry den,
nas skolitel byl velice dobre pripraven a zodpovedel vsechny dotazy."
RETIA, a.s., Michal D.
Embedded Linux: Tvorba ovladačů a programování kernelu (
LNXKRN1)
"Dobrá diskuse, se školením jsem spokojen."
ŠKODA DIGITAL s.r.o., Petr H.
Embedded Linux: Tvorba ovladačů a programování kernelu (
LNXKRN1)
"Školení bylo směrované přesně na míru tomu, co jsem si od školení sliboval, že se dozvím, takže za mě 100%."