Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

Linux Internals and Application Programming

Intermediar
14 h
4.7 (201 recenzii)
Linux Internals and Application Programming

Î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