Programowanie sterowników urządzeń w jądrze Linux - Linux Device Drivers Development

Kurs na praktycznych przykładach dostarcza wiedzę niezbędną do rozpoczęcia projektowania i implementacji sterowników urządzeń w jądrze Linux. Omawiana jest organizacja kodu źródłowego sterowników, sposoby komunikacji jądra z przestrzenią użytkownika, usługi i mechanizmy dostarczane przez jądro sterownikom, oraz sposoby debugowania kodu. Praktyczne ćwiczenia przeprowadzane są na komputach o architekturze ARM, zarówno fizycznyh, jak i emulowanych.

Cel szkolenia:

  • poznanie zasad działania jądra Linux;
  • poznanie sposobów analizowania i debugowania jądra;
  • poznanie algorytmów, mechanizmów i ich warstw: planisty, wywołań systemowych, zarządzania pamięcią;
  • poznanie zasad i dobrych praktyk związanych z tworzeniem sterowników w Linuksie;
  • wykształcenie praktycznych umiejętności pisania sterowników (obsługi pamięci, przerwań, komunikacji z przestrzenią użytkownika, współbieżności itp.);
  • poznanie frameworków dostarczanych przez jądro: model sterowników urządzeń, urdządzenia klas: misc, input, net, framebuffer i inne;
  • nabycie praktycznych umiejętności programowa w jądrze, debugowania go i rozwiązywania problemów.

Program szkolenia:

  • Wprowadzenie do programowania w jądrze Linux.
  • Przygotowanie środowiska pracy, programy pomocnicze i ich wersje.
  • Praca z kodem źródłowym jądra i zewnętrznych modułów w środowisku Eclipse.
  • Uruchamianie jądra systemu, rola bootloadera. U-BOOT.
  • Moduły jądra - zarządzanie modułami, organizacja kodu jądra.
  • Zarządzanie pamięcią, przestrzeń adresowa, alokacja pamięci, działanie systemu w środowisku z niewystarczającą ilością pamięci (kmalloc, kzalloc, vmalloc, get_free_pages, ioremap, SLAB, SLUB, SLOB, oom_killer)
  • Komunikacja ze sprzętem (wejście-wyjście).
  • Komunikacja z przestrzenią użytkownika: wywołania systemowe. Działanie wywołań systemowych w architekturach x86 i ARM.
  • Procesy: pamięć wirtualna, przestrzeń adresowa procesu, cykl życia procesu, tworzenie procesu, atrybuty procesu, task_struct, implementacja wątków.
  • Planista: O(1), CFQ, cgroup, implementacja planisty, klasy szeregowania procesów (SCHED_OTHER, SHCED_FIFO, SCHED_RR, SCHED_DEADLINE), priorytety procesów, afiniczność.
  • Wirtualny system plików - budowa i implementacja.
  • Zaawansowane operacje na plikach w VFS - komunikacja z przestrzenią użytkownika - metody synchroniczne i asynchroniczne, ioctl, mmap, AIO.
  • Czas w jądrze systemu: pomiar upływu czasu, wstrzymanie uruchomienia - usypianie na określony czas, oczekiwanie na zdarzenia, timery, timery wysokiej rozdzielczości.
  • Przerwania: sposób obsługi i rejestracji przerwań w jądrze, dolne połówki (softirq, tasklet, workqueue), przerwania w wątkach (RT).
  • Wejście-wyjście oparte na przerwaniach: synchronizacja proces-jądro, waitqueue, przykłady rzeczywistych sterowników,
  • Wielowątkowość i synchronizacja zasobów (zmienne atomowe, mutexy, semafory, spinlock, zmienne warunkowe, algorytmy niewymagające blokowania - RCU).
  • Frameworki dla typowych klas urządzeń.
  • Zunifikowany model urządzeń w Linuksie. W jaki sposób system widzi sprzęt i organizuje urządzenia? Start systemu, magistrala, sterownik magistrali, sterownik kontrolera, urządzenie, automatyczne kojarzenie sterowników z urządzeniami,
  • Magistrala platform. Specyfikowanie urządzeń przy pomocy Device-Tree.
  • Magistrala PCI, specyfika urządzeń i sterowników PCI.
  • Magistrala USB, specyfika urządzeń i sterowników USB.
  • Urządzenia blokowe - struktura sterownika i wydajność.
  • Urządzenia sieciowe - struktura sterownika, kontrola transmisji, interfejs gniazd, strojenie parametrów,
  • Podsystem urządzeń wejściowych interfejsu użytkownika (input).
  • Sterownik bufora ramki (grafika).
  • DMA, zasada działania, alokacja pamięci dla DMA, synchronizacja.
  • Debugowanie jądra systemu.

Szkolenie odbędzie się w dniach 16-19 lutego 2015 r. w Warszawie. Cena - 3500 zł.

Dodaj do ulubionych źródeł w Google
Posłuchaj
00:00

http://bis-linux.com/pl/kernel_development

Chcesz częściej widzieć nasze artykuły w Google? Dodaj ElektronikaB2B do ulubionych źródeł
Powiązane treści
Sterowniki silników małej mocy
Języki programowania dla systemów wielordzeniowych
Zobacz więcej w kategorii: Technika
Produkcja elektroniki
Ochrona antystatyczna fundamentem nowoczesnej produkcji
Komponenty
Niewielka uszczelka, ogromne znaczenie. Jak uszczelnienia FOF decydują o skuteczności ekranowania EMC obudów?
Komponenty
Folie termoprzewodzące elektroizolujące – jak jednocześnie odprowadzać ciepło i izolować elektrycznie?
Mikrokontrolery i IoT
Watchdog - przegląd konfiguracji
Zasilanie
Filtry przeciwzakłóceniowe: przegląd rynku, technologii i zastosowań
Projektowanie i badania
Drony zmieniają oblicze pola walki
Zobacz więcej z tagiem: Artykuły
Magazyn
Wrzesień 2026
Magazyn
Sierpień 2026
Targi zagraniczne
Electronica 2026 - targi i konferencja producentów elektroniki

Zobaczyć obiekt oczami radaru, czyli dlaczego potrzebujemy laboratorium do pomiarów RCS?

Radar postrzega świat inaczej niż człowiek. Zamiast obrazu tworzonego przez światło widzialne rejestruje echo wysłanej fali elektromagnetycznej. Na odpowiedź radarową obiektu wpływają nie tylko jego rozmiary, lecz także kształt, zastosowane materiały, częstotliwość oraz kierunek obserwacji. Dlatego dwa przedmioty o podobnych wymiarach mogą być dla radaru widoczne zupełnie inaczej. Jak zatem sprawdzić, co radar rzeczywiście "widzi"? Służą temu pomiary RCS, prowadzone między innymi w specjalistycznych laboratoriach, które zapewniają kontrolowane i powtarzalne warunki oraz umożliwiają uzyskanie dokładności wymaganej w danym zastosowaniu.
Zapytania ofertowe
Unikalny branżowy system komunikacji B2B Znajdź produkty i usługi, których potrzebujesz Katalog ponad 7000 firm i 60 tys. produktów