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.
Schița de curs
Introducere
- istoric rapid al licențelor GNU/Linux kernel versioning ciclu de lansare kernel trees kernel principal vs. mecanism de spațiu utilizator vs. politică kernel driver alternative RTOS vs. Linux
memorie Management
- Memoria virtuală vs. alocarea memoriei memoriei fizice în zonele de pagini kernel API slab
Patch Kernel
- ciclu de viață git kernel sursă creați corecție verificare corectură corectare corecție expediere corecție cod auditat
Modulele Kernel
- obțineți sursele de nucleu configurați/construiți/instalați driverele de dispozitiv (legate static, încărcate în timpul execuției) init/exit licențiere EXPORT SYMBOL GPL din arbore makefile module-init-tools modulul în arborele kernel Parametrul Kconfig trece rară
Drivere Char
- arhitectură interfață utilizator/kernel subsistem I/O VFS sysfs (dispozitive, magistrală, drivere, clase), kobject/ktype/kset Linux kernel driver model fișiere dispozitiv char driver inițializare înregistrare deschis, lansare cdev, cdev add, cdev del,... numere majore/minore udev, udevmonitor, udevadm
Operații avansate ale driverului de caractere
- ioctl deblocat ioctl compat ioctl user space API kernel space Ciclul de viață al procesului API adormire/blocare adormire/trezire coadă de așteptare sondaj/selectare turmă
Depanare kernel
- depanare erori depanare căutare binară a nucleului cu suport git debug de la kernel printk syslogd, klogd, loglevels, limită de viteză, niveluri de depanare, depanare selectivă a subsistemelor depanare prin interogare debugfs oops depanare, afirmând oops Magic SysRq Key kgdb/kdb JTAG
Urmărirea
- gcov lcov oprofile ftrace nop funcția de urmărire trasor sched switch funcția de urmărire grafic tracer dynamic tracer
întreruperi vs. secțiuni de program de întrerupere de sondare evenimente de reintrare handler de întrerupere gestionar de întreruperi partajat întreruperea fluxului de control al întreruperii
- Amânarea Muncii
jumătățile de sus/inferioare softirqs tasklet-uri cozi de lucru întreruperi cu fire
- Concurență
regiune/secțiune critică stare de cursă atomică sincronizare blocare soluții de blocare conflict de blocare ce să blochezi? ce poate fi folosit? operațiuni atomice blocări de rotație cititor-scriitor blocuri de rotație semafor binar semafor mutex cititor-scriitor semafor variabile de completare blocări secvențiale dezactivați ordinea de preempțiune și bariere
- Timp
HZ Jiffies întârzieri mari/mici temporizatoarele nucleului
- I/O hardware
Porturi I/O Memorie I/O Cum să faceți față efectelor secundare accesând registrele?
- Nucleul utilizatorului Communication
put(get)_user() copy to(from)_user() Maparea memoriei Kernel I/O procfs sysfs debugfs relayfs netlink ioctl
- Portabilitate
dimensiunea cuvintelor tipuri opace semnate/nesemnate caracter aliniere a datelor cod de promovare integrală reutilizare sistem endianess bifare dimensiune pagină ordonare instrucțiuni SMP/preempționare/memorie mare
- Cu excepția cazului în care se menționează altfel, conținutul și această schiță a cursului sunt licențiate în conformitate cu Atribuire-NonComercial-Partajare la fel 4.0 Internațional (CC BY-NC-SA 4.0).
Cerințe
- Familiaritate de bază cu utilizarea unui sistem GNU/Linux ca utilizator final
- Familiaritate de bază cu un shell de linie de comandă
- Cunoștințe de bază privind spațiul utilizatorului / dezvoltarea de aplicații
- Cunoștințe intermediare de programare C
- Ar trebui să fi participat la Embedded GNU/Linux Systems Architecture înainte (recomandat cu tărie!) și/sau să aibă o bună înțelegere a subiectelor prezentate acolo .
35 ore
Mărturii (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
Curs - Flutter Development Bootcamp with Dart
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Curs - The Yocto Project - An Overview - hands-on
The trainer was enthusiastic, kind, and loved the topic
Isaac Murphy - Royal New Zealand Airforce
Curs - Build Native iOS and Android Apps with Flutter
Learning the steps required to implement the MVVM model.
Roy Chia - AFBI
Curs - Xamarin: Build Native Mobile Applications for Android, iOS and Windows from a Single C# Code Base
I really enjoy having a virtual PC online, I can do exercises whenever I want