Szkolenia The Linux Foundation

Cel szkolenia dlearning

Ten 4-dniowy kurs ma na celu pokazanie doświadczonym programistom, jak tworzyć sterowniki urządzeń dla wbudowanych systemów Linux i przekazać im podstawowe zrozumienie oraz znajomość jądra Linux.

Po opanowaniu tego materiału będziesz zaznajomiony z różnymi rodzajami sterowników urządzeń używanych w Linux i zostaniesz wprowadzony do wielu odpowiednich interfejsów API, które będą używane podczas pisania sterowników urządzenia. Laboratoria ilustrujące te koncepcje zostaną wykonane na sprzęcie ARM, aby programiści zaznajomili się z kompilacją krzyżową i tworzeniem sterowników. Dołączony zestaw programistyczny (można zachować) zostanie wykorzystany do zilustrowania testowania sterowników jądra przy użyciu technik TFTP i NFSroot.

Omówimy wewnętrzne elementy jądra i algorytmy, ale szczegółowo przeanalizujemy jedynie tylko te funkcje, które są zwykle używane w sterownikach urządzeń. Więcej szczegółów na temat innych zagadnień takich jak planowanie, zarządzanie pamięcią, itp., odnaleźć można w bardziej skoncentrowanym na jądrze kursie.

Plan szkolenia Rozwiń listę

  1. Wprowadzenie
    • Przedmiot szkolenia
    • Cele
    • Linux Foundation
    • Linux Foundation Training
    • Dystrybucje Linux
    • Przygotowanie systemu
    • Rzeczy zmieniają się w Linux
    • Dokumentacja i linki
    • Rejestracja kursu
  2. Czynności przygotowawcze
    • Procedury
    • Wersje jądra
    • Źródła jądra i użycie Git
    • Sprzęt
    • Drzewo inscenizacji
  3. Jak pracować w projektach OSS **
    • Omówienie wniesienia prawidłowego udziału
    • Badanie i zrozumienie DNA projektu
    • Określ czym chcesz się zająć
    • Zidentyfikowanie osób odpowiedzialnych, ich przepływu pracy i metod
    • Uzyskaj wczesne wejście i pracę w otwartym środowisku
    • Przekazuj przyrostowe bity, zamiast dużych fragmentów kodu
    • Zostaw swoje ego przed drzwiami: nie bądź wrażliwy
    • Bądź cierpliwy, rozwijaj relacje długoterminowe, bądź pomocny
  4. Cross-Development Toolchain
    • The Compiler Triplet
    • Wbudowany Linux Distribution Cross Compiler
    • Linaro
    • CodeSourcery
    • Crosstool-ng
    • Buildroot
    • OpenEmbedded
    • Yocto
  5. Podstawowa konfiguracja Target Development Board Setup
    • Cele laboratorium
    • Laboratorium
  6. Uruchamianie Target Development Board przez Ethernet
    • Cele laboratorium
    • Laboratorium
  7. Konfiguracja jądra, kompilacja, uruchamianie<
    • Konfiguracja jądra dla Development Board
    • Laboratorium
  8. Sterowniki urządzeń
    • Typy urządzeń
    • Mechanizm a polityka
    • Unikanie bloków binarnych
    • Zarządzanie energią
    • Jak aplikacje korzystają ze sterowników urządzeń
    • Przechodzenie przez wywołania systemowe dostępu do urządzenia
    • Numery błędów
    • Printk()
    • Devres: Managed Device Resources
    • Laboratorium
  9. Moduły i sterowniki urządzeń
    • Makra module_driver()
    • Moduły i Hot Plug
    • Laboratorium
  10. Zarządzanie pamięcią i alokacją
    • Pamięć wirtualna i fizyczna
    • Strefy pamięci
    • Tabela stron
    • Kmalloc()
    • _get_free_pages()
    • Vmalloc()
    • Płyty i alokacje pamięci podręcznej
    • Laboratorium
  11. Urządzenia znakowe
    • Węzły urządzeń
    • Liczby główne i drugorzędne
    • Rezerwacja dużych/mniejszych numerów
    • Dostęp do węzła urządzenia
    • Rejestracja urządzenia
    • Udev
    • Dev_printk() i Associates
    • Struktura file_operations
    • Punkty wejścia sterowników
    • Struktury plików i Inode
    • Różne sterowniki znaków
    • Laboratorium
  12. Funkcje jądra
    • Komponenty jądra
    • Przestrzeń użytkownika a przestrzeń jądra
    • Czym są wywołania systemowe?
    • Dostępne wywołania systemowe
    • Algorytmy planowania i struktury zadań
    • Kontekst procesu
    • Laboratorium
  13. Przesyłanie między użytkownikiem a przestrzenią jądra
    • Przesyłanie między przestrzeniami
    • Put(get)_user() i copy_to(from)_user()
    • Bezpośredni transfer: Jądro I/O i mapowanie pamięci
    • Jądro I/O
    • Mapowanie stron użytkownika
    • Mapowanie pamięci
    • Funkcje przestrzeni użytkownika dla mmap()
    • Punkt wejścia sterownika dla mmap()
    • Dostęp do plików z jądra
    • Laboratorium
  14. Sterowniki platformy
    • Czym są sterowniki platformy?
    • Główne struktury danych
    • Rejestrowanie urządzeń platformy
    • Przykład
    • Twarde dane platformy
    • Nowa droga: drzewa urządzeń
    • Laboratorium
  15. Drzewa urządzeń
    • Czym są drzewa urządzeń?
    • Co robią a czego nie drzewa urządzeń
    • Składnia drzewa urządzeń
    • Przechodzenie przez drzewa urządzeń
    • Powiązania drzewa urządzeń
    • Obsługa drzewa urządzeń w programach rozruchowych
    • Korzystanie z danych drzewa urządzeń w sterownikach
    • Współistnienie i konwersja starych sterowników
    • Laboratorium
  16. Przerwania i wątki
    • Czym są przerwania i wątki?
    • Wyjątki
    • Przerwania asynchroniczne
    • MSI
    • Aktywowanie/dezaktywowanie przerwań
    • Czego nie można robić w trakcie przerwania
    • Struktura danych IRQ
    • Instalowanie programu obsługi przerwań
    • Laboratorium
  17. Pomiary czasu
    • Rodzaje pomiarów czasu
    • Jiffies
    • Uzyskiwanie aktualnego czasu
    • Źródła zegara
    • Zegar czasu rzeczywistego
    • Programowalny interwalometr
    • Licznik znaczników czasu
    • HPET
    • Going Tickless
  18. Zegary jądra
    • Wstawianie opóźnień
    • Czym są zegary jądra?
    • Funkcje zegara o niskiej rozdzielczości
    • Implementacja zegara o niskiej rozdzielczości
    • Zegary wysokiej rozdzielczości
    • Korzystanie z zegarów wysokiej rozdzielczości
    • Laboratorium
  19. Ioctls
    • Czym są Ioctls?
    • Punkty wejścia sterowników dla Ioctls
    • Zablokowane i bezzamkowe Ioctle
    • Definiowanie Ioctls
    • Laboratorium
  20. Unified Device Model i sysfs
    • Unified Device Model
    • Podstawowe struktury
    • Prawdziwe urządzenia
    • Sysfs
    • Przykłady kset i kobject
    • Laboratorium
  21. Firmware
    • Czym jest Firmware?
    • Ładowanie Firmware
    • Laboratorium
  22. Usypianie i Kolejki Oczekujące
    • Czym są Kolejki Oczekujące?
    • Usypianie i wybudzanie
    • Przechodzenie do szczegółów usypiania
    • Ekskluzywne usypianie
    • Szczegóły wybudzania
    • Ankietowanie
    • Laboratorium
  23. Obsługa przerwania: Odroczone funkcje i sterowniki użytkownika
    • Połówki górne i dolne
    • Softirqs
    • Zadania
    • Kolejki Robocze
    • Nowe API Kolejki Roboczej
    • Tworzenie wątków jądra
    • Wątkowe programy obsługi przerwań
    • Obsługa przerwań w przestrzeni użytkownika
    • Laboratorium
  24. Sprzęt I/O
    • Bariery pamięci
    • Przydzielanie i mapowanie pamięci I/O
    • Dostęp do pamięci I/O
  25. Bezpośredni dostęp do pamięci (DMA) **
    • Czym jest DMA?
    • Ograniczenia pamięci DMA
    • Maski DMA
    • DMA API
    • Pule DMA
    • Scatter/Gather Mappings
    • Laboratorium
  26. Urządzenia technologii pamięci - MTD (System Plików Pamięci Flash)
    • Czym są urządzenia MTD?
    • NAND vs. NOR vs. eMMC
    • Moduły sterownika i użytkownika
    • System plików Flash
    • Laboratorium
  27. Sterowniki USB
    • Czy jest USB?
    • Topologia USB
    • Terminologia
    • Punkty końcowe
    • Deskryptory
    • Klasy urządzeń USB
    • Obsługa USB w Linux
    • Rejestrowanie sterowników urządzeń USB
    • Przenoszenie danych
    • Przykład sterownika USB
    • Laboratorium
  28. Ankieta zamknięcia i oceny
    • Ankieta ewaluacyjna

** Te sekcje mogą być uznane za częściowo lub w całości 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

Znajomość podstawowych interfejsów i metod jądra, takich jak pisanie, kompilowanie, ładowanie i rozładowywanie modułów, używanie podstawowych operacji synchronizacji oraz podstaw alokacji i zarządzania pamięcią, takich jak omawiane podczas kursu LFD420 (Kernel Internals and Development).

Poziom trudności
Czas trwania 4 dni
Certyfikat

Uczestnicy otrzymają certyfikaty podpisane przez The Linux Foundation.

Prowadzący

Certyfikowany trener The Linux Foundation.

Szkolenia powiązane tematycznie

Programowanie

Systemy operacyjne

Linux

Formularz kontaktowy

Prosimy o wypełnienie poniższego formularza, jeśli chcą Państwo uzyskać więcej informacji o powyższym szkoleniu.






* pola oznaczone (*) są wymagane

Informacje o przetwarzaniu danych przez Compendium – Centrum Edukacyjne Spółka z o.o.

CENA 5800 PLN NETTO Czy wiesz, że możesz uzyskać do 100% dofinansowania na ten kurs?   Sprawdź jak »

zamknij

Kody rabatowe

Kod rabatowy, może dotyczyć (szkolenia, producenta, terminu). Jeżeli posiadasz kod rabatowy, to wpisz go w odpowiednie pole.
(kolor zielony oznacza wpisanie prawidłowego kodu | kolor czerwony oznacza, że wpisany kod jest nieprawidłowy)

FORMA SZKOLENIA ?

zamknij

Szkolenie stacjonarne

Szkolenia stacjonarne w Compendium CE odbywają się najczęściej w naszych lokalizacjach w Krakowie i Warszawie, ale także w miejscu ustalonym przez klienta. Grupa uczestnicząca w szkoleniu spotyka się w danym miejscu o określonym czasie i wraz z trenerem aktywnie uczestniczy w laboratoriach.

Szkolenie dlearning

W szkoleniach Compendium Distance Learning możesz uczestniczyć z dowolnego miejsca na świecie. Kursanci, dzięki zaawansowanej technologii, którą dostarcza Compendium CE, stale widzą i słyszą trenera, mogą mu zadawać pytania poprzez chat i mikrofon, a także uczestniczą w ćwiczeniach i laboratoriach, które rozwiązują wraz z prowadzącym. Po więcej informacji zajrzyj na stronę dlearning.eu

MATERIAŁY SZKOLENIOWE ?

zamknij

Materiały papierowe

Materiały tradycyjne: cena zawiera standardowe materiały wydawane w postaci książek papierowych, drukowanych lub innej, w zależności od ustaleń z producentem.

Materiały ctab

Materiały ctab: cena zawiera tablet ctab oraz materiały szkoleniowe w formie elektronicznej bądź tradycyjne materiały szkoleniowe i materiały dodatkowe dostarczone w wersji elektronicznej w zależności od ustaleń z producentem (w postaci dokumentów PDF lub EPUB). Tak dostarczone materiały są przystosowane pod kątem wyświetlania ich na tablecie ctab. Po więcej informacji zajrzyj na stronę ctab.

 

WYBIERZ TERMIN SZKOLENIA

Zarezerwuj termin szkolenia
Terminy szkolenia dla angielskiej wersji językowej