Szkolenia The Linux Foundation

Cel szkolenia dlearning

kod: LFD450

Ten 4-dniowy kurs zapewni Ci wiedzę potrzebną do tworzenia embedded Linux product. Poznasz metody stosowane do adaptacji jądra Linuxa i bibliotek przestrzeni użytkownika oraz narzędzi do określonych środowisk osadzonych, takich jak te używane w elektronice użytkowej, wojsku, medycynie, przemyśle i motoryzacji.

Podczas tego kursu między innymi omawiana jest:

  • Architektura jądra Linuxa, podkreślająca istotne punkty dla dostosowania jądra do niestandardowej platformy wbudowanej
  • Techniki prawidłowego wymiarowania systemu w celu spełnienia ograniczeń projektu
  • Mnogość zasobów dostępnych do budowy środowiska programistycznego dla projektów osadzonych.
  • Dostępne opcje wypełniania bibliotek i przestrzeni użytkownika aplikacji w celu spełnienia celów i ograniczeń systemów wbudowanych.

Informacje zawarte w tym kursie będą działać z każdą główną dystrybucją Linuxa.

Plan szkolenia Rozwiń listę

  1. Wstęp
    • Cele
    • Kim jesteś
    • Linux Foundation
    • Linux Foundation Training
    • Dystrybucje Linuxa
    • Platformy
    • Przygotowanie systemu
    • Zmiany w Linuxie
    • Dokumentacja i linki
    • Rejestracja
  2. Przygotowanie środowiska
    • Dystrybucje Linuxa
    • Instalacja maszyny wirtualnej
    • Procedury
  3. Jak pracować w projektach OSS **
    • Omówienie prawidłowego udziału
    • Badanie i zrozumienie DNA projektu
    • Dowiedz się, czym chcesz się zająć
    • Zidentyfikuj opiekunów i obserwuj ich pracę i metody
    • Uzyskaj wczesne wejście i pracę w otwartym środowisku
    • Contribute Incremental Bits, Not Large Code Dumps
    • Zostaw swoje ego w drzwiach: Wrzuć na luz
    • Bądź cierpliwy, rozwijaj relacje długoterminowe, bądź pomocny
  4. Koncepcje systemów wbudowanych i czasu rzeczywistego
    • Podstawowe koncepcje
    • Przyczyny ochrony
    • Off the Shelf (OTS)
    • Osadzone ostrzeżenia
    • Systemy operacyjne czasu rzeczywistego
    • Linux w czasie rzeczywistym
    • Niestandardowa pomoc sprzętowa
    • Zasoby
  5. Cross-Development Environments: cele i potrzeby
    • Wprowadzenie
    • Dlaczego to trudne?
    • Rozważania dotyczące celu projektu
    • Linki do dodatkowych dyskusji
    • Laboratorium
  6. System Kbuild
    • Wprowadzenie
    • Kbuild Makefiles
    • Podstawy Kconfig
  7. Cross-Development Toolchain
    • The Compiler Triplet
    • Built-in Linux Distribution Cross Compiler
    • Linaro
    • CodeSourcery
    • crosstool-ng
    • Buildroot
    • OpenEmbedded
    • Projekt Yocto
    • Clang
    • Laboratorium
  8. Podstawowa konfiguracja Target Development Board
    • Cele laboratorium
    • Laboratorium
  9. Booting the Target Development Board z uSD
    • Cele laboratorium
    • Laboratorium
  10. Booting a Target Development Board over Ethernet
    • Cele laboratorium
    • Laboratorium
  11. Boot loaders and U-Boot
    • Etapy Boot Code
    • Przykłady GPL Boot Loaders
    • Das U-Boot
    • U-Boot Command Line
    • Środowisko U-Boot
    • Laboratorium
  12. Konfiguracja jądra, kompilacji i uruchamiania
    • Konfiguracja jądra dla Development Board
    • Laboratorium
  13. Sterowniki urządzeń **
    • Typy urządzeń
    • Węzły urządzeń
    • Character Drivers
    • Przykład
    • Laboratorium
  14. Device Trees
    • Co to są Device Trees?
    • Device Trees co robią a czego nie?
    • Składnia Device Tree
    • Omówienie przykładów Device Tree
    • Powiązania w Device Tree
    • Obsługa Device Tree w Boot Loaders
    • Korzystanie z danych Device Tree Data w sterownikach
    • Współistnienie i konwersja starych sterowników
    • Laboratorium
  15. Pakowanie docelowego systemu plików
    • Cele Osadzone systemu plików
    • Katalogi: ankieta
    • Wbudowane typy systemów plików
  16. Zbuduj Target Root Filesystem
    • Cele laboratorium
    • Laboratorium
  17. Wybór głównego systemu plików
    • SysV init vs. BusyBox init
    • udev vs. BusyBox mdev
    • Systemd
    • C Wybór biblioteki
  18. Konfigurowanie uClibc
    • Konfigurowanie uClibc dla NFS
    • Laboratorium
  19. Zbuduj BusyBox Utility Suite
    • Podstawowe czynności
    • Integracja z Buildroot
    • Laboratorium
  20. Monitorowanie jądra i debugowanie
    • Śledzenie i profilowanie
    • Ftrace, Trace-Cmd, Kernelshark
    • Perf
    • Korzystanie z perf
    • Sysctl
    • Klucz SysRq i wiadomości oops
    • Debugery jądra
    • Laboratorium
  21. Right-Sizing
    • Oft-Needed Embedded Components
    • Inwentaryzacja rozmiarów jądra
  22. Urządzenia technologii pamięci (systemy plików pamięci flash)
    • Czym są urządzenia MTD?
    • NAND vs. NOR vs. eMMC
    • Moduły sterownika i użytkownika
    • Systemy plików Flash
    • Laboratorium
  23. Skompresowane systemy plików
    • SquashFS
    • Wdrażanie w partycji MTD
    • Laboratorium
  24. Aktualizacje systemu
    • Kiedy należy zaktualizować?
    • Strategie aktualizacji
    • Wbudowane systemy aktualizacji
    • Laboratorium
  25. Real-Time Extensions
    • Przewidywalność i zapobieganie oraz blokady
    • Projekt PREEMPT_RT
    • Lista kontrolna w czasie rzeczywistym
  26. Zakończenie i ankieta
    • Ankieta ewaluacyjna

** Te sekcje mogą być uznane za częściowe lub w całości jako opcjonalne. Zawierają materiały źródłowe, tematy specjalistyczne lub przedmioty zaawansowane. Instruktor może zdecydować się na ich realizację lub nie, w zależności od doświadczenia uczestników i ograniczeń czasowych.

Pobierz konspekt szkolenia w formacie PDF

Dodatkowe informacje

Wymagania

Kurs jest przeznaczony przede wszystkim dla doświadczonych programistów, programistów i inżynierów, którzy są zainteresowani nauką adaptacji Linuxa do systemu wbudowanego. Uczestnicy powinni być znać podstawowe narzędzia Linuxa, znać język programowania C i czuć się komfortowo w środowisku Linux lub UNIX.

Poziom trudności
Czas trwania 4 dni
Certyfikat

Uczestnicy otrzymają certyfikat The Linux Foundation.

Prowadzący

Certyfikowany trener The Linux Foundation.

Informacje dodatkowe

Pre-class preparation material will be provided before class.

Szkolenia powiązane tematycznie

Programowanie

Systemy operacyjne

Linux