În interiorul Linux: explorezi system calls, procese, IPC și managementul memoriei cu C.
Hands‑on cu POSIX APIs, file I/O, semnale, pipe‑uri și memorie partajată.
Explorezi scheduling, thread‑uri și sincronizare în detaliu.
Dobândești experiență practică prin programare și testare de aplicații user‑space (~70% labs).
Cum te ajută: capeți fundație solidă pentru aplicații Linux eficiente și portabile.
Cui i se adresează: conceput pentru persoane cu baze de C/Linux care doresc skill‑uri avansate.
La final vei stăpâni Linux internals și vei crea aplicații robuste la nivel de user.
Curriculum
Introducere în embedded Linux
- Analiza principalelor componente ale unui proiect embedded Linux
Toolchains
- Tipuri de toolchains
- Alegerea bibliotecii C
- Componentele și uneltele toolchain-ului
- Construirea unui toolchain (focus pe ARM)
- Static vs. dynamic linking
- Cross-compiling pentru proiecte mai mari — exemplu
Bootloaders
- Înțelegerea bootloader-elor
- Introducere în device trees
- Das U-Boot: instalare, configurare, comenzi principale
Booting the kernel
- Boot pe BeagleBone Black
- Boot pe QEMU
O aplicație Linux simplă
- Introducere foarte scurtă în POSIX IPC
- Construirea unei aplicații IPC folosite pe parcursul cursului
Debugging și core dumps
- Debugging de bază
- Debugging remote
- Comenzile principale GDB
- Analiza fișierelor core și controlul aplicațiilor CPU‑intensive
Intro în Yocto
- Instalarea Yocto
- Configurare, build și rulare
- Layers, BitBake și rețete
- Personalizarea imaginilor
Kernel programming – preview
- Error numbers și output-ul kernelului
- Prezentare task_struct
- Liste înlănțuite în kernel
- Mecanisme OOP în kernel
Intro în module
- Exemplu trivial
- Compilarea modulelor
- Modules vs. built‑in
- Utilitare pentru module
- Încărcare/descărcare automată
- Export de simboluri
Intro în device drivers
- Modules și device drivers
- Alocare/dealocare memorie
- Transfer de date între user‑space și kernel‑space
- Character devices
- Utilizarea cache-ului
- Interrupts și exceptions
- Deferrable functions
Module opționale
Îmbunătățiri sugerate (opțional)
- Unități systemd și supravegherea proceselor
- IPC avansat: POSIX message queues, shared memory, semaphores
- Filesystems: bazele /proc și sysfs pentru developeri de aplicații
- Scheduling și priorități (nice/rtprio) în user‑space
- gdbserver + sfaturi de debugging remote în VS Code
- perf și un scurt intro eBPF pentru troubleshooting
Structura zilei de curs
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30