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.
Struttura del corso
Introduzione
-
breve storia di GNU/Linux
Licenze
Controllo delle versioni del kernel
Ciclo di rilascio
alberi del kernel
linea principale
kernel vs. spazio utente
Meccanismo vs. politica
alternative ai driver del kernel
RTOS vs. Linux
Memorie Management
-
Memoria virtuale vs. memoria fisica
Allocazione della memoria nel kernel
Pagine
Zone
API
lastra
Kernel Patch
-
ciclo vitale
Git
sorgente del kernel
Crea patch
Controlla la patch
Correggi la patch
toppa per nave
Codice verificato
L'edizione 2016 degli Stati Uniti
-
Ottenere i sorgenti del kernel
Configurare/Compilare/Installare
driver di periferica (collegati staticamente, caricati in fase di esecuzione)
init/exit
Licenze
ESPORTA SIMBOLO GPL
Makefile fuori dall'albero
module-init-tools
modulo nell'albero del kernel
Kconfig
Passaggio di parametri
rado
Char Drivers
-
architettura
Interfaccia utente/kernel
Sottosistema I/O
VFS
sysfs (dispositivi, bus, driver, classi),
kobject/ktype/kset
Modello di driver del kernel Linux
File di dispositivo
char driver
inizializzazione
registrazione
aprire, rilasciare
cdev, cdev add, cdev del,...
Numeri maggiori/minori
udev, udevmonitor, udevadm
Operazioni avanzate del driver Charachter
-
ioctl
IOCTL sbloccato
compat ioctl
API dello spazio utente
API dello spazio kernel
Ciclo di vita del processo
Dormire/Bloccare
dormire/svegliarsi
coda d'attesa
Mandria tonante
Sondaggio/Selezione
Debug del kernel
-
insetto
Debug
debug del kernel
Ricerca binaria con git
Supporto per il debug dal kernel
printk syslogd, klogd, loglevels, limite di velocità, livelli di debug, sottosistemi selettivi di debug
Debug tramite query su debugfs
debug oops, asserzione oops
Chiave Magic SysRq
KGDB/KDB
JTAG
Tracciatura
-
GCOV
LCOV
oprofilo
ftrace
Tracciante NOP
tracciatore di funzioni
Tracciatore di interruttori Sched
Tracciatore del grafico delle funzioni
tracciante dinamico
interrupt e polling interrompere Sezioni del programma rientro avvenimenti gestore di interrupt Gestore di interrupt condiviso Interrompere il flusso Controllo dell'interrupt
-
Posticipare il lavoro
metà superiore/inferiore softirqs Tasklet Code di lavoro Filettato Interrrupts
-
Concorrenza
Regione/sezione critica atomico Condizione di gara sincronizzazione frenaggio Soluzioni di chiusura impasse contesa Cosa bloccare? Cosa si può usare? Operazioni atomiche Blocchi di rotazione Blocchi di rotazione lettore-scrittore semaforo semaforo binario mutex Semaforo lettore-scrittore Variabili di completamento Serrature sequenziali Disabilita l'interruzione per diritti di priorità Ordinamento e barriere
-
Ore
HZ Jiffies Ritardi grandi/piccoli Timer del kernel
-
Hardware I/O
Porte I/O Memoria I/O Come affrontare gli effetti collaterali accedendo ai registri?
-
Kernel utente Communication
put(get)_user() copia in(da)_user() Kernel I/O Mappatura della memoria PROCFS sysfs debugfs relèfs collegamento di rete ioctl
-
Portabilità
Dimensione della parola Tipi opachi char firmato/non firmato Allineamento dei dati Promozione integrale Riutilizzo del codice A questo punto, l'unica cosa che si segno di spunta del sistema Dimensione pagina Ordinamento delle istruzioni SMP/diritti di priorità/memoria elevata
-
Salvo diversa indicazione, il contenuto e la struttura del corso sono concessi in licenza ai sensi di Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Requisiti
- Familiarità di base con l'uso di un sistema GNU/Linux come utente finale
- Familiarità di base con una shell a riga di comando
- Conoscenza di base dello spazio utente / sviluppo di applicazioni
- Conoscenze intermedie di programmazione C
- Aver già frequentato Embedded GNU/Linux Systems Architecture (fortemente raccomandato!) e/o avere una buona conoscenza degli argomenti ivi descritti
35 ore
Recensioni (4)
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Corso - The Yocto Project - An Overview - hands-on
Che c'erano un sacco di esercizi.
Katarzyna Straszewska - Swiss AviationSoftware Ltd.
Corso - Build Native iOS and Android Apps with Flutter
Traduzione automatica
Maggiori informazioni sul laboratorio.
Sarbin - Cagayan Electric Power And Light Co., Inc.
Corso - Flutter Development Bootcamp with Dart
Traduzione automatica
On time, training resources is readily available