Aktualne promocje

20/01/2017
29/09/2020
31/10/2020

Barcampy, konferencje, wydarzenia

29/11/2016 - 18:00
08/11/2016 - 08:30
04/11/2016 (Caly dzien)

RHD362 Red Hat Linux Kernel Internals II: Device Drivers

Kod szkolenia: 
RHD362
Opis szkolenia: 

Kurs rozwija umiejętności i kształci wiedzę związaną z tworzeniem sterowników urządzeń dla systemu Linux. Na zakończenie kursu, uczestnicy mogą legitymować się znajomością architektury systemu, warstwy sprzętowej i zarządzania pamięcią, znają także pojęcia związane z modularyzacją i strukturą źródeł jądra systemu. Tworzą samodzielnie sterowniki i posiadają wiedzę dotyczącą urządzeń blokowych, znakowych oraz współpracy z urządzeniami sieciowymi.

Cel szkolenia: 
  • Wykształcenie umiejętności tworzenia sterowników urządzeń dla systemu Red Hat Enterprise Linux
  • Sprawne posługiwanie się blokadami i mechanizmami synchronizacji na poziomie jądra systemu
  • Efektywne stosowanie wywołań realizujących rządania obsługi pamięci i innych zasobów systemowych
Grupa docelowa: 

Doświadczeni programiści języka C z dobrą znajomością jądra systemowego Linux oraz ci którzy chcą nauczyć się tworzenia sterowników urządzeń dla systemu operacyjnego Linux.

Wymagania wobec słuchaczy: 
  • Doświadczenia w programowaniu w języku C

  • Wiedzy równoważnej z RHD251 Red Hat Linux Programming

Cena netto PLN: 
9715
Cena brutto PLN: 
11949.45
Cena EURO: 
2253
Czas trwania: 
5 dni
Uwagi: 

Cena w PLN jest kosztem sugerowanym. Koszt zajęć 2253 euro, przeliczenie wg kursu sprzedaży w NBP z dnia wystawienia faktury, pierwszy dzień zajęć.  Kurs euro=4,3120 PLN wg kursu z dnia 7 czerwca 2013r.

 

Oferujemy również szkolenia w naszych ośrodkach w Krakowie i Gdyni, jak i w lokalizacjach wskazanych przez klienta.

W celu ustalenia szczegółów prosimy o kontakt na osec@osec.pl

Konspekt: 
  1. Wstęp i ogólne spojrzenie na programowanie na poziomie jądra systemu operacyjnego
    • Czym jest jądro systemu operacyjnego?
    • Warianty jądra systemowego Linux
    • Interakcja z jądrem systemu operacyjnego
    • Implementacja jądra systemu Linux
    • Źródła jądra systemu Linux
    • Tworzenie modułów jądra
    • Kompilowanie modułów jądra
    • Więcej na temat modułów jądra systemu
    • Przegląd struktur jądra systemu
  2. Sterowniki urządzeń
    • Sterownik urządzenia – czym jest?
    • Projekt sterownika urządzeń
    • Współpraca z urządzeniami znakowymi
    • Współpraca z urządzeniami blokowymi
    • Współpraca z urządzeniami sieciowymi
    • Węzły urządzeń
    • Rejestrowanie sterowników urządzeń
    • Problem węzłów urządzeń
    • Operacje plikowe
    • Definiowanie operacji plikowych
    • Rejestrowanie operacji plikowych
    • Konwencje wywołań I/O na plikach
  3. Zunifikowany model urządzeń
    • Obiekt w modelu urządzeń
    • System plików sysfs
    • Struktura modelu urządzeń
    • Połączenie wszystkich aspektów
    • Gniazda połączeń sieciowych i zdarzenia z przestrzeni użytkownika
    • Agent zdarzeń z przestrzeni użytkownika
    • Rejestrowanie urządzeń
    • Różne urządzenia
  4. Obsługa przerwań
    • Kontekst przerwania
    • Przechwytywanie obsługi przerwania
    • Struktura przerwania
    • Rejestrowanie ISR
    • Kontekst systemu
    • Przerwania programowe (ang. softirqs)
    • Odroczone działania: „tasklety”
    • Odroczone działania: kolejki zadań
    • Nietypowa kolejka zadań
    • Przykład: obsługa myszki i transmisji szeregowej
  5. Zaawansowane operacje na plikach
    • Wywołania IOCTL
    • Konwencje wywołań IOCTL
    • Implementacja wywołań IOCTL
    • Operacje nieblokujące IOCTL
    • Usypianie
    • Kolejki oczekiwania
    • Warianty wywołania wait_event()
    • Usypianie w trakcie wywołań systemowych
    • Multipleksowane operacje I/O
    • Obsługa transferu danych poprzez polling
  6. Współpraca z urządzeniami
    • Operacje na urządzeniach
    • Zarządzanie wyłącznym dostępem
    • Porty I/O
    • Bufory pamięci urządzeń I/O
    • Dostęp od buforów urządzeń I/O
    • Sterowniki w przestrzeni użytkownika
  7. Dostęp bezpośredni do pamięci
    • Zarządzanie dostępem DMA (ang. Direct Memory Access)
    • Inicjalzowanie transferu DMA
    • Alokacje
    • Stumienie i mapowanie transferów DMA
  8. Sterowniki urządzeń PCI
    • Peripheral Component Interconnect – standard jako taki
    • Przestrzeń konfiguracji PCI
    • Rejestrowanie sterownika PCI
    • Funkcje testowania sterownika PCI
    • Inicjalizowanie urządzenia PCI
    • Zwalnianie urządzenia PCI
    • Zarządzanie zasobami PCI
    • Dostęp do przestrzeni konfiguracyjnej
    • Lista urządzeń PCI
  9. Urządzenia USB
    • USB – standard jako taki
    • Deskryptory USB
    • Typy transmisji USB
    • Implementacja obsługi USB w systemie Linux
    • Sterowniki USB
    • Rejestracja urządzeń USB
    • Inicjalizacja interfejsów USB
    • Klasy sterowników urządzeń USB
    • USB i żądanie transferu blokowego
    • Użycie transferu bloku w ramach szyny USB
    • Żądanie obsługi synchronicznej w ramach USB
    • Dodatkowe informacje
  10. Urządzenia sieciowe
    • Obsługa sieci
    • Urządzenia sieciowe
    • Wywołania zwrotne urządzeń sieciowych
    • Inicjalizacja urządzeń sieciowych
    • Kontrola kolejki w sterownikach urządzeń sieciowych
    • Statystyki podsystemu obsługi sieci
    • Bufory gniazd i pakietów
    • API buforów gniazd
    • Transmisja danych
    • Odbiór danych
    • Przykładowa implementacja
  11. Sterowniki urządzeń blokowych
    • Urządzenia blokowe
    • Szeregowanie I/O
    • Algorytm windy w systemie Linux 2.6
    • Implementacja urządzeń blokowych
    • Rejestrowanie urządzeń blokowych
    • Operacje plikowe na urządzeniach blokowych
    • Struktura gendisk
    • Kolejka żądań
    • Przykład inicjalizacji
    • Przechwytywanie i obsługa żądań
  12. Kompilowanie własnego jądra systemowego
    • Kompilacja jądra

Logowanie

O osec.pl

Nasz serwis działa dzieki następującym projektom:

Drupal CMS - http://www.drupal.org
Apache HTTPD - http://www.apache.org
PHP - http://www.php.net
MySQL - http://www.mysql.com

ipv6 ready