Embedded GNU/Linux Kernel Internals and Device Drivers - Plan Szkolenia
Opis
Ta 5-dniowa klasa szkoleniowa wykorzystuje praktyczne ćwiczenia połączone z instrukcjami, aby zilustrować koncepcje wewnętrznych elementów jądra GNU / Linux i rozwoju sterowników urządzeń. Został zaprojektowany tak, aby szybko przyspieszyć pracę. Opisujemy procesy, koncepcje i polecenia niezbędne do pisania sterowników urządzeń GNU / Linux poprzez połączenie teorii i szkolenia w miejscu pracy.
Nie wymyślaj koła na nowo, lecz ucz się od doświadczonego trenera, a zdobędziesz praktyczną wiedzę i umiejętność jej efektywnego wykorzystania we własnym projekcie programowania wbudowanego.
Kto powinien wziąć udział?
Osoby zainteresowane rozwojem lub oceną sterowników urządzeń GNU/Linux, takie jak inżynierowie oprogramowania, inżynierowie terenowi, kierownicy (projektów), inżynierowie sprzętu.
Plan Szkolenia
Wprowadzenie
- krótka historia GNU/Linux
- licencjonowanie
- wersjonowanie jądra
- cykl wydań
- drzewa jądra
- mainline
- jądro a przestrzeń użytkownika
- mechanizm vs. polityka
- alternatywy dla sterowników jądra
- RTOS vs. Linux
Pamięć Management
- Pamięć wirtualna vs. pamięć fizyczna
- alokacja pamięci w jądrze
- strony
- strefy
- API
- płyta
Patch jądra
- cykl życia
- git
- źródło jądra
- tworzenie poprawki
- sprawdź poprawkę
- popraw patch
- wysłać łatkę
- skontrolowany kod
Moduły jądra
- pobierz źródła jądra
- configure/build/install
- sterowniki urządzeń (połączone statycznie, ładowane w czasie wykonywania)
- init/exit
- licencjonowanie
- EXPORT SYMBOL GPL
- poza drzewem makefile
- module-init-tools
- moduł w drzewie jądra
- Kconfig
- przekazywanie parametrów
- rzadki
Sterowniki Char
- architektura
- interfejs użytkownika/jądra
- Podsystem wejścia/wyjścia
- VFS
- sysfs (urządzenia, magistrala, sterowniki, klasy),
- kobject/ktype/kset
- model sterownika jądra systemu Linux
- pliki urządzeń
- sterownik char
- inicjalizacja
- rejestracja
- open, release
- cdev, cdev add, cdev del,...
- numery major/minor
- udev, udevmonitor, udevadm
Zaawansowane operacje sterownika karty
- ioctl
- odblokowany ioctl
- compat ioctl
- API przestrzeni użytkownika
- API przestrzeni jądra
- cykl życia procesu
- spanie/blokowanie
- usypianie/budzenie
- kolejka oczekiwania
- grzmiące stado
- poll/select
Debugowanie jądra
- błąd
- debugowanie
- debugowanie jądra
- wyszukiwanie binarne z git
- wsparcie debugowania z jądra
- printk syslogd, klogd, loglevels, rate limit, debug levels, debug selective subsystems
- debugowanie przez zapytanie debugfs
- debugowanie oops, potwierdzanie oops
- Magiczny klucz SysRq
- kgdb/kdb
- JTAG
Śledzenie
- gcov
- lcov
- oprofile
- ftrace
- nop tracer
- function tracer
- sched switch tracer
- śledzenie wykresu funkcji
- dynamiczny tracer
- trace-cmd/kernelshark
- perf
- LTTng
Przerwania
- przerwania a odpytywanie
- przerwanie
- sekcje programu
- reentrancy
- zdarzenia
- program obsługi przerwań
- współdzielony program obsługi przerwań
- przepływ przerwań
- kontrola przerwań
Odraczanie pracy
- górna/dolna połowa
- softirqs
- tasklety
- kolejki robocze
- przerwania gwintowane
Współbieżność
- region/sekcja krytyczna
- atomowy
- warunek wyścigu
- synchronizacja
- blokowanie
- rozwiązania blokujące
- impas
- rywalizacja
- Co blokować?
- czego można użyć?
- operacje atomowe
- blokady spinowe
- blokady typu czytelnik-zapisujący
- semafor
- semafor binarny
- muteks
- semafor czytający-zapisujący
- zmienne uzupełniające
- blokady sekwencyjne
- wyłączanie wywłaszczania
- porządkowanie i bariery
Czas
- HZ
- Jiffies
- duże/małe opóźnienia
- timery jądra
Sprzętowe wejścia/wyjścia
- Porty wejścia/wyjścia
- Pamięć I/O
- Jak radzić sobie z efektami ubocznymi dostępu do rejestrów?
User-Kernel Communication
- put(get)_user()
- copy to(from)_user()
- I/O jądra
- mapowanie pamięci
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Przenośność
- rozmiar słowa
- nieprzezroczyste typy
- znak podpisany/niepodpisany
- wyrównanie danych
- promocja całek
- ponowne użycie kodu
- endianess
- tik systemowy
- rozmiar strony
- porządkowanie instrukcji
- SMP/preemption/wysoka pamięć
O ile nie zaznaczono inaczej, treść i niniejszy zarys kursu są objęte licencją Attribution-NonCommercial-ShareAlike 4.0 International (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 wcześniej uczestniczyć w Embedded GNU/Linux Systems Architecture (zdecydowanie zalecane!) i/lub dobrze rozumieć tematy tam przedstawione.
Szkolenia otwarte są realizowane w przypadku uzbierania się grupy szkoleniowej liczącej co najmniej 5 osób na dany termin.
Embedded GNU/Linux Kernel Internals and Device Drivers - Plan Szkolenia - Booking
Embedded GNU/Linux Kernel Internals and Device Drivers - Plan Szkolenia - Enquiry
Embedded GNU/Linux Kernel Internals and Device Drivers - Zapytanie o Konsultacje
Zapytanie o Konsultacje
Opinie uczestników (5)
Edward jest niesamowitym facylitatorem
Zibusiso Ncube - Agricatural Research Council
Szkolenie - Ionic 4 and Angular for Developers
Przetłumaczone przez sztuczną inteligencję
Może więcej ćwiczeń byłoby lepsze dla nauki, ale czas był zbyt mały.
Gianpiero Arico' - Urmet Spa
Szkolenie - Embedded Linux Systems Architecture
Przetłumaczone przez sztuczną inteligencję
Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. Охватил все запрошенные темы и подробно ответил на каждый вопрос. Это была очень приятная опыт. *Note: The last two sentences seem to have been partially translated into Russian, which was not requested. Here is the corrected Polish translation:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. Oenaire wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każdy pytanie. To była bardzo miła doświadczenie. *Corrected version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. O pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każdy pytanie. To była bardzo miła doświadczenie. *Final corrected version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To była bardzo miła doświadczenie. *Final corrected version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final corrected version without unnecessary parts:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере необходимости. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without unnecessary parts:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without unnecessary parts:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without unnecessary parts:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version without errors:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczenie. *Final correct version:* Wiedza Miguela na temat była rozległa. Ułatwił zrozumienie szkolenia, a jego przepływ był dobrze zbilansowany; dodając nowe cechy do każdego раздела по мере necessities. Pokrył wszystko, co było zadane, i udzielił szczegółowych odpowiedzi na każde pytanie. To było bardzo miłe doświadczeni
Paul Coaton - SEMPCheck Services
Szkolenie - Flutter Development Bootcamp with Dart
Przetłumaczone przez sztuczną inteligencję
Dostosowanie trenera do naszych potrzeb
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Szkolenie - The Yocto Project - An Overview - hands-on
Przetłumaczone przez sztuczną inteligencję
Rzeczowe odpowiedzi trenera poparte doświadczeniem programistycznym.
Igor Firak
Szkolenie - Build Native iOS and Android Apps with Flutter
Propozycje terminów
Szkolenia Powiązane
Advanced Flutter
14 godzinTo prowadzone przez instruktora szkolenie na żywo Polsce (na miejscu lub zdalnie) jest przeznaczone dla programistów, którzy chcą używać Flutter do tworzenia aplikacji wieloplatformowych.
Pod koniec tego szkolenia uczestnicy będą mogli
- Migrować aplikacje z Java do Flutter.
- Zintegrować usługi zaplecza Firebase, takie jak baza danych, uwierzytelnianie i przechowywanie.
- Tworzyć animacje i zaawansowane funkcje interfejsu użytkownika dla aplikacji.
BLoC Pattern
14 godzinSzkolenie na żywo prowadzone przez instruktora (na miejscu lub zdalnie) jest przeznaczone dla programistów, którzy chcą dowiedzieć się, jak używać BLoC Pattern do zarządzania stanem w różnych aplikacjach.
Po zakończeniu tego szkolenia uczestnicy będą w stanie
- Zrozumienie podstawowych koncepcji i architektury BLoC.
- Tworzenie, testowanie i debugowanie BLoC.
- Poznanie kontekstu kompilacji BLoC.
Course Outline Buildroot: a Firmware Generator for Embedded Systems
7 godzinBuildroot to projekt typu open-source, który zawiera skrypty tworzące zestaw narzędzi do kompilacji krzyżowej, konfigurowalny obraz głównego systemu plików i Linux jądro dla urządzeń wbudowanych. Podczas tego praktycznego kursu uczestnicy dowiedzą się, jak z niego korzystać:
- Jak wybrać oprogramowanie, które trafi do głównego systemu plików.
- Jak dodawać nowe pakiety i modyfikować istniejące.
- Jak dodać wsparcie dla nowych płyt wbudowanych.
Podczas kursu zostaną utworzone bootowalne obrazy systemu plików. Kursy zdalne są dostarczane przy użyciu emulatora QEMU, podczas gdy w klasie można korzystać z QEMU lub prawdziwych płyt wbudowanych wybranych przez trenera.
Inne projekty o podobnych celach obejmują projekt Yocto i OpenWRT. Skorzystaj z tych prezentacji, aby określić, który z nich jest właściwym wyborem dla Twoich potrzeb.
Embedded Linux Systems Architecture
35 godzinCele kursu
Zapewnienie zrozumienia podstaw wbudowanego GNU/Linux, jak poszczególne elementy pasują do siebie. Jakie komponenty są potrzebne do zbudowania wbudowanego systemu GNU/Linux, skąd je wziąć i jak je skonfigurować/zbudować/zainstalować? Skąd uzyskać pomoc? Co z licencjami na oprogramowanie? Ćwiczenia praktyczne zapewnią ci niezbędne doświadczenie praktyczne, aby po pomyślnym ukończeniu tego szkolenia rozwijać własne wbudowane systemy GNU/Linux.
Opis
Ten pięciodniowy kurs szkoleniowy wykorzystuje praktyczne ćwiczenia połączone z instrukcjami, aby zilustrować koncepcje wbudowanego GNU/Linux. Został on zaprojektowany, aby szybko doprowadzić cię do prędkości. Filozofia, koncepcje i polecenia niezbędne do efektywnego korzystania z GNU/Linux są opisane poprzez połączenie teorii i szkolenia w miejscu pracy.
Nie wymyślaj koła na nowo, ale ucz się od doświadczonego trenera i zabierz do domu praktyczną wiedzę na temat GNU/Linux oraz umiejętność efektywnego wykorzystania go we własnym projekcie rozwoju wbudowanego.
Kto powinien wziąć udział?
Menedżerowie, kierownicy projektów, inżynierowie oprogramowania, sprzętu, rozwoju, systemów, testerzy, administratorzy, technicy i inne osoby zainteresowane technologią, które chcą jak najszybciej zrozumieć, jak działa Embedded GNU/Linux. Musisz korzystać z GNU/Linux lub musisz pozwolić sobie na luksus, aby zdecydować, czy ma to sens, czy nie. Być może próbowałeś już używać Embedded GNU/Linux, ale nie jesteś pewien, czy wszystko zrobiłeś we właściwy sposób. Obecnie używasz innego systemu operacyjnego i chcesz dowiedzieć się, czy GNU/Linux może być lepszy i/lub tańszy.
Opcje dostawy
Wszystkie materiały szkoleniowe są w języku angielskim, ale ich prezentacja może odbywać się w języku angielskim lub niemieckim, zgodnie z życzeniem, na całym świecie.
- na miejscu - prowadzony przez instruktora
- on-line - prowadzony przez instruktora
- połączenie na miejscu/on-line - prowadzone przez instruktora
Build Native iOS and Android Apps with Flutter
14 godzinW tym prowadzonym przez instruktora szkoleniu na żywo w Polsce (na miejscu lub zdalnie) uczestnicy dowiedzą się, jak używać Flutter do szybkiego tworzenia aplikacji mobilnej działającej zarówno na iOS, jak i Android urządzeniach.
Pod koniec tego szkolenia uczestnicy będą mogli
- Szybko zainstalować framework, IDE i inne narzędzia, aby rozpocząć rozwój.
- Zrozumieć i używać języka Dart firmy Google do szybkiego prototypowania aplikacji mobilnej.
- Testować i wdrażać aplikacje mobilne działające zarówno na iOS, jak i Android przy użyciu jednej bazy kodu.
- Dostosowywanie aplikacji przy użyciu bogatego zestawu widżetów, układów i animacji.
Flutter Development Bootcamp with Dart
35 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla programistów, którzy chcą używać Flutter do tworzenia i budowania wysokiej jakości aplikacji mobilnych dla Android, iOS i innych platform ze wspólnej bazy kodu.
Pod koniec tego szkolenia uczestnicy będą mogli
- Skonfigurować niezbędne środowisko programistyczne, aby rozpocząć tworzenie aplikacji Flutter.
- Używać języka programowania Dart do opracowywania kodu do tworzenia aplikacji.
- Używać Flutter widżetów do projektowania i tworzenia estetycznego i łatwego w użyciu interfejsu użytkownika.
- Wdrażać i testować aplikacje na różnych platformach (mobilnych, stacjonarnych, internetowych itp.).
Ionic2
14 godzinThis instructor-led, live training in Polsce (online or onsite) is aimed at beginner-level to intermediate-level developers who wish to use Ionic 2 to build hybrid mobile applications.
By the end of this training, participants will be able to:
- Understand the fundamentals of Ionic 2 and its architecture.
- Build single-page and multi-page applications using Ionic 2.
- Customize apps with SCSS and third-party integrations.
- Test, deploy, and manage mobile app releases effectively.
Ionic 4 and Angular for Developers
21 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla twórców stron internetowych, którzy chcą stworzyć hybrydową aplikację mobilną z Ionic 4.
Pod koniec tego szkolenia uczestnicy będą mogli
- Zintegrować natywne funkcje urządzenia z hybrydową aplikacją mobilną.
- Używać Angular i Ionic 4 do tworzenia hybrydowych aplikacji mobilnych.
- Uruchomić aplikację hybrydową na emulatorze urządzenia mobilnego.
Ionic 6
14 godzinTo prowadzone przez instruktora szkolenie na żywo w Polsce (na miejscu lub zdalnie) jest przeznaczone dla twórców stron internetowych, którzy chcą stworzyć nowoczesną aplikację mobilną z Ionic 6.
Pod koniec tego szkolenia uczestnicy będą mogli
- Zintegrować natywne funkcje urządzenia z nowoczesną hybrydową aplikacją mobilną.
- Poznać podstawy Ionic.
- Nauczyć się wdrażać aplikacje Ionic do produkcji.
- Uruchomić nowoczesną aplikację hybrydową na emulatorze urządzenia mobilnego.
LEDE: Set Up a Linux Wireless Router
7 godzinProjekt LEDE (Linux Embedded Development Environment) to system operacyjny Linux oparty na OpenWrt. Jest to kompletny zamiennik dla dostarczanego przez dostawców oprogramowania sprzętowego szerokiej gamy routerów bezprzewodowych i urządzeń niesieciowych.
W tym instruktażowym szkoleniu na żywo uczestnicy dowiedzą się, jak skonfigurować router bezprzewodowy oparty na LEDE.
Uczestnicy
- Administratorzy i technicy sieci
Format kursu
- Część wykładu, część dyskusji, ćwiczenia i ciężka praktyka praktyczna
IBM MobileFirst Platform for Hybrid Mobile Application Development
21 godzinIBM MobileFirst Platform (wcześniej znana jako Worklight Foundation) to pakiet narzędzi i usług do tworzenia aplikacji mobilnych i tabletów dla przedsiębiorstw. Jego API po stronie klienta jest dostępne dla natywnych iOS (Objective-C), natywnych Android (Java), J2ME, C# natywnych Windows Phone (C#) i JavaScript dla wieloplatformowych aplikacji hybrydowych LUB mobilno-webowych. Platforma MobileFirst jest dostępna lokalnie lub w chmurze.
W tym prowadzonym przez instruktora szkoleniu na żywo uczestnicy dowiedzą się, jak skonfigurować i używać MobileFirst Platform do tworzenia hybrydowych aplikacji mobilnych opartych na HTML5, JS i CSS oraz zarządzania nimi.
Pod koniec tego szkolenia uczestnicy będą mogli
- Zainstalować i skonfigurować MobileFirst
- Tworzyć, testować i wdrażać wieloplatformowe hybrydowe aplikacje mobilne.
- Używać mechanizmów bezpieczeństwa MobileFirst do zabezpieczania aplikacji.
- Aktualizować aplikacje bezprzewodowo w organizacji, z pominięciem sklepów z aplikacjami.
- Administrować i monitorować aplikacje mobilne.
Uczestnicy
- Deweloperzy
Format kursu
- Część wykładu, część dyskusji, ćwiczenia i ciężka praktyka praktyczna w środowisku laboratoryjnym na żywo.
Uwaga
- To szkolenie jest oparte na Mobile Foundation 8.0. Aby poprosić o inną wersję lub inne dostosowanie tego kursu, skontaktuj się z nami w celu uzgodnienia.
Tworzenie aplikacji mobilnych w technologii Xamarin.Forms na platformy Android oraz iOS
14 godzinKurs "Tworzenie aplikacji mobilnych w technologii Xamarin.Forms" skupia się na kluczowych aspektach tworzenia aplikacji na platformy Android i iOS. Uczestnicy zdobędą umiejętności w konfiguracji środowiska, projektowaniu interfejsu, implementacji wzorca MVVM, testowaniu, korzystaniu z usług REST, budowie i wdrażaniu aplikacji. Kurs obejmuje również proces publikacji w App Center, App Store i Google Play, zapewniając kompleksowe przygotowanie do pracy z Xamarin.
Xamarin for Cross-Platform Development
21 godzinW tym prowadzonym przez instruktora szkoleniu na żywo w Polsce (online lub na miejscu) uczestnicy poznają kluczowe aspekty Xamarin, podejmując się opracowania własnego zestawu aplikacji mobilnych dla Android, iOS i Windows.
Yocto Project
28 godzinW tym prowadzonym przez instruktora szkoleniu na żywo w Polsce uczestnicy dowiedzą się, jak utworzyć system kompilacji dla wbudowanego Linux opartego na Yocto Project.
Pod koniec tego szkolenia uczestnicy będą w stanie
- Zrozumieć podstawowe pojęcia stojące za systemem kompilacji Yocto Project, w tym przepisy, metadane i warstwy.
- Zbudować obraz Linux i uruchomić go pod emulacją.
- Oszczędzać czas i energię budując systemy wbudowane Linux.
The Yocto Project - An Overview - hands-on
28 godzinOpis
To czterodniowe szkolenie łączy teorię z praktycznymi ćwiczeniami w celu wprowadzenia Yocto Project.
Odpowiada na często zadawane pytania, takie jak:
- Czy naprawdę konieczne jest używanie innej wersji toolchaina/bibliotek/pakietów dla każdego projektu GNU/Linux, a na dodatek stosowanie innego przepływu pracy?
- Czy można zapewnić, że środowisko programistyczne jest identyczne dla wszystkich deweloperów/dostawców i że za ponad 10 lat nadal będzie można tworzyć identyczne kompilacje jak dziś?
- Czy YP może pomóc dowiedzieć się, na jakich licencjach oprogramowania są licencjonowane używane pakiety?
Sesje praktyczne są przeprowadzane na docelowym sprzęcie (np. Beagle Bone Black Rev. C - http://beagleboard.org/BLACK). Po zakończeniu szkolenia będziesz mógł pobrać obraz docker z Ubuntu 14.x i wszystkimi preinstalowanymi zależnościami oraz przykładami, aby pracować z materiałem kursu we własnych laboratoriach. Należy pamiętać, że nie jest to kurs wprowadzający do Embedded GNU/Linux. Powinieneś już wiedzieć, jak działa Embedded GNU/Linux i jak skonfigurować / zbudować jądro GNU/Linux i sterowniki jądra.
Kto powinien wziąć udział?
Używasz już GNU/Linux w swoich projektach i prawdopodobnie słyszałeś o Yocto Project, ale nie odważyłeś się przyjrzeć mu bliżej lub miałeś trudności z jego użyciem. Nie wiesz, czy i jak twój codzienny przepływ pracy może być dostosowany do YP i ogólnie uważasz, że YP jest raczej skomplikowany. Po co nam to wszystko, skoro wcześniej wszystko było (podobno) o wiele łatwiejsze? Po szkoleniu powinieneś być w stanie zdecydować, czy potrzebujesz YP, czy nie. Warsztaty skierowane są do programistów, programistów, inżynierów systemowych, testerów, administratorów, inżynierów i innych osób zainteresowanych YP, z solidną znajomością Embedded GNU/Linux.