Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Plan Szkolenia
Wstęp
- krótka historia GNU/Linux licencjonowanie wersjonowania jądra cykl wydawniczy drzewa jądra jądro główne a mechanizm przestrzeni użytkownika a zasady jądra alternatywy sterowników RTOS kontra Linux
Pamięć Management
- Pamięć wirtualna a alokacja pamięci fizycznej w płytach API stref stron jądra
Łatka na jądro
- cykl życia git źródło jądra utwórz łatkę sprawdź łatkę napraw łatkę wysyłaj łatkę sprawdzony kod
Moduły jądra
- pobierz źródła jądra skonfiguruj/zbuduj/zainstaluj sterowniki urządzeń (statycznie połączone, ładowane w czasie wykonywania) licencja init/exit SYMBOL GPL z drzewa makefile moduł-init-tools moduł w drzewie jądra Przekazywanie parametrów Kconfig sparse
Sterowniki Char
- architektura interfejs użytkownika/jądra podsystem I/O VFS sysfs (urządzenia, magistrala, sterowniki, klasy), kobject/ktype/kset Linux kernel sterownik model pliki urządzeń char inicjalizacja sterownika rejestracja otwarta, wydanie cdev, cdev add, cdev del,... liczby główne/podrzędne udev, udevmonitor, udevadm
Zaawansowane operacje sterownika znakowego
- ioctl odblokowany ioctl kompatybilny ioctl przestrzeń użytkownika API przestrzeń jądra API cykl życia procesu spanie/blokowanie spania/budzenie kolejka oczekiwania grzmiące stado ankieta/wybór
Debugowanie jądra
- debugowanie błędów debugowanie jądra wyszukiwanie binarne za pomocą git debug wsparcie z jądra printk syslogd, klogd, loglevels, limit szybkości, poziomy debugowania, debugowanie selektywne podsystemy debugowanie poprzez wysyłanie zapytań debugfs oops debugowanie, potwierdzanie oops Magiczny klucz SysRq kgdb/kdb JTAG
Rysunek kalkowy
- gcov lcov oprofile ftrace nop funkcja śledzenia tracer sched przełącznik funkcji śledzenia wykres funkcji śledzenia dynamiczny znacznik
przerwania a odpytywanie przerwań sekcje programu zdarzenia ponownego wejścia procedura obsługi przerwań współdzielona obsługa przerwań przepływ przerwań kontrola przerwań
- Odkładanie pracy
górna/dolna połowa zadania softirqs kolejki robocze przerwania wątkowe
- Konkurencja
krytyczny region/sekcja wyścig atomowy synchronizacja warunków blokowanie rozwiązań blokujących spór o zakleszczenie, co zablokować? co można wykorzystać? operacje atomowe blokady spinowe czytnik-zapis blokady spinowe semafor semafor binarny mutex czytnik-zapis zmienne uzupełniania semaforów blokady sekwencyjne wyłączanie kolejności wywłaszczania i bariery
- Czas
HZ Jiffies duże/małe opóźnienia liczników jądra
- Sprzętowe wejścia/wyjścia
Porty we/wy Pamięć we/wy Jak radzić sobie ze skutkami ubocznymi dostępu do rejestrów?
- Jądro użytkownika Communication
put(get)_user() kopiuj do(z)_user() Kernel I/O mapowanie pamięci procfs sysfs debugfs przekaźnikfs netlink ioctl
- Ruchliwość
rozmiar słowa typy nieprzezroczyste ze znakiem/bez znaku znak wyrównanie danych integralny kod promocyjny ponowne wykorzystanie endianness system zaznaczenie rozmiaru strony kolejność instrukcji SMP/wywłaszczanie/duża pamięć
- O ile nie zaznaczono inaczej, treść i niniejszy zarys kursu są objęte licencją na podstawie Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 4.0 Międzynarodowe (CC BY-NC-SA 4.0).
Wymagania
- Podstawowa znajomość korzystania z systemu GNU/Linux jako użytkownik końcowy
- Podstawowa znajomość powłoki wiersza poleceń
- Podstawowa znajomość przestrzeni użytkownika / tworzenia aplikacji
- Pośrednia znajomość programowania w języku C
- Powinien uczestniczyć w kursie Embedded GNU/Linux Systems Architecture wcześniej (zdecydowanie zalecane!) i/lub dobrze rozumieć przedstawione tam tematy
35 godzin
Opinie uczestników (5)
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Szkolenie - Flutter Development Bootcamp with Dart
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Szkolenie - The Yocto Project - An Overview - hands-on
Rzeczowe odpowiedzi trenera poparte doświadczeniem programistycznym.
Igor Firak
Szkolenie - Build Native iOS and Android Apps with Flutter
I really enjoy having a virtual PC online, I can do exercises whenever I want
Dongfu Li - Northforge Innovations Inc
Szkolenie - Yocto Project
Schematyczne podjeście do prowadzenia zajęć