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.
План на курса
Въведение
- бърза история на GNU/Linux лицензиране Версиониране на ядрото цикъл на освобождаване дървета на ядрото основно ядро спрямо потребителско пространство механизъм срещу политика алтернативи на драйвер на ядрото RTOS срещу Linux
Памет Management
- Виртуална памет срещу физическа памет Разпределение на паметта в зоните на страниците на ядрото API плоча
Корекция на ядрото
- жизнен цикъл git източник на ядрото създаване на корекция проверка корекция корекция корекция изпращане корекция одитиран код
Модули на ядрото
- получаване на източници на ядрото конфигуриране/изграждане/инсталиране на драйвери на устройства (статично свързани, заредени по време на изпълнение) init/exit лицензиране EXPORT SYMBOL GPL извън дървото makefile module-init-tools module в дървото на ядрото Kconfig parameter passing sparse
Char драйвери
- архитектура потребител/ядро интерфейс I/O подсистема VFS sysfs (устройства, шина, драйвери, класове), kobject/ktype/kset linux ядро драйвер модел устройство файлове char драйвер инициализация регистрация отворена, освобождаване cdev, cdev добавяне, cdev del,... главни/малки числа udev, udevmonitor, udevadm
Разширени операции на драйвера за символи
- ioctl отключен ioctl compat ioctl потребителско пространство API пространство на ядрото API процес жизнен цикъл заспиване/блокиране заспиване/събуждане изчакване опашка гръмотевично стадо анкета/избор
Отстраняване на грешки в ядрото
- отстраняване на грешки отстраняване на грешки в ядрото бинарно търсене с git поддръжка за отстраняване на грешки от ядрото printk syslogd, klogd, loglevels, ограничение на скоростта, нива на отстраняване на грешки, отстраняване на грешки селективни подсистеми отстраняване на грешки чрез запитване debugfs oops отстраняване на грешки, потвърждаване на oops Magic SysRq Key kgdb/kdb JTAG
Проследяване
- gcov lcov oprofile ftrace nop tracer функция tracer sched превключвател tracer функция graph tracer динамичен tracer
прекъсвания срещу прекъсване на запитване програмни секции събития за повторно влизане манипулатор на прекъсване споделен манипулатор на прекъсване поток на прекъсване контрол на прекъсване
- Отлагане на работа
горна/долна половина softirqs tasklets работни опашки резбовани прекъсвания
- Паралелност
критичен регион/секция състояние на атомна надпревара синхронизация заключване заключващи решения съперничество безизходица какво да заключвам? какво може да се използва? атомарни операции spin locks reader-writer spin locks semaphore binary semaphore mutex reader-writer semaphore completion variables sequential locks disable preemption orderig и бариери
- време
HZ Jiffies големи/малки забавяния на таймерите на ядрото
- Хардуерен I/O
I/O портове I/O памет Как да се справим със страничните ефекти при достъп до регистри?
- Потребителско ядро Communication
put(get)_user() copy to(from)_user() Картографиране на I/O памет на ядрото procfs sysfs debugfs relayfs netlink ioctl
- Преносимост
размер на думата непрозрачни типове подписан/неподписан char подравняване на данни интегрален промоционален код повторно използване на endiness система отметка на размер на страница инструкция подреждане SMP/изпреварване/висока памет
- Освен когато е посочено друго, съдържанието и този план на курса са лицензирани съгласно Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Изисквания
- Основни познания за използването на система GNU/Linux като краен потребител
- Основно запознаване с обвивката на командния ред
- Основни познания за потребителско пространство / разработка на приложения
- Средни познания по програмиране на C
- Трябваше да е посещавал Embedded GNU/Linux Systems Architecture преди (силно препоръчително!) и/или да разбира добре темите, изложени там
35 Hours
Oтзиви от потребители (4)
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Course - The Yocto Project - An Overview - hands-on
Че имаше много упражнения.
Katarzyna Straszewska - Swiss AviationSoftware Ltd.
Course - Build Native iOS and Android Apps with Flutter
Machine Translated
Повече за лабораторията.
Sarbin - Cagayan Electric Power And Light Co., Inc.
Course - Flutter Development Bootcamp with Dart
Machine Translated
On time, training resources is readily available