Kursplan
Introduksjon
- rask historie om GNU/Linux
- lisensiering
- kjerneversjon
- frigjøringssyklus
- kjernetrær
- hovedlinje
- kjerne kontra brukerplass
- mekanisme kontra policy
- alternativer for kjernedriver
- RTOS vs. Linux
Minne Management
- Virtuelt minne vs fysisk minne
- minnetildeling i kjernen
- sider
- soner
- API
- plate
Kjernelapp
- livssyklus
- git
- kjernekilde
- lage oppdatering
- sjekk patch
- fikse oppdatering
- skipslapp
- revidert kode
Kjernemoduler
- få kjernekilder
- konfigurere/bygge/installere
- enhetsdrivere (statisk koblet, lastet under kjøretid)
- init/exit
- lisensiering
- EKSPORTSYMBOL GPL
- ut av tremakefilen
- modul-init-verktøy
- modul i kjernetreet
- Kconfig
- parameteroverføring
- sparsom
Char-drivere
- arkitektur
- bruker-/kjernegrensesnitt
- I/O-delsystem
- VFS
- sysfs (enheter, buss, sjåfører, klasser),
- kobject/ktype/kset
- Linux kjerne-drivermodell
- enhetsfiler
- røye driver
- initialisering
- registrering
- åpne, slipp
- cdev, cdev add, cdev del,...
- dur/moll tall
- udev, udevmonitor, udevadm
Avanserte Charachter-driveroperasjoner
- ioctl
- ulåst ioctl
- compat ioctl
- brukerplass API
- kjerneplass API
- prosessens livssyklus
- sover/blokkerer
- sover/våkner
- ventekø
- tordnende flokk
- avstemning/velg
Kjernefeilsøking
- feil
- feilsøking
- feilsøking av kjernen
- binært søk med git
- feilsøkingsstøtte fra kjernen
- printk syslogd, klogd, loglevels, rate limit, debug levels, debug selektive subsystemer
- feilsøking ved å søke etter debugfs
- ups feilsøking, hevder ups
- Magic SysRq Key
- kgdb/kdb
- JTAG
Sporing
- gcov
- lcov
- oprofil
- ftrace
- nei sporer
- funksjonssporer
- skjemabrytersporer
- funksjonsgrafsporer
- dynamisk sporer
- trace-cmd/kernelshark
- perf
- LTTng
Avbryter
- avbryter vs. polling
- avbryte
- programseksjoner
- gjeninntreden
- hendelser
- avbryte behandler
- delt avbruddsbehandler
- avbryte flyten
- avbryte kontrollen
Utsettelse av arbeid
- øvre/nedre halvdeler
- softirqs
- oppgaver
- arbeidskøer
- gjenget avbryter
Samtidighet
- kritisk region/seksjon
- atomisk
- løpstilstand
- synkronisering
- låsing
- låseløsninger
- vranglås
- påstand
- hva skal man låse?
- hva kan brukes?
- atomoperasjoner
- spinnlåser
- leser-skribent spinnlåser
- semafor
- binær semafor
- mutex
- leser-skribent semafor
- kompletteringsvariabler
- sekvensielle låser
- deaktiver forkjøpet
- orden og barrierer
Tid
- HZ
- Jiffies
- store/små forsinkelser
- kjernetidtakere
Maskinvare I/O
- I/O-porter
- I/O-minne
- Hvordan håndtere bivirkninger ved å få tilgang til registre?
Brukerkjerne Communication
- put(get)_user()
- kopier til(fra)_bruker()
- Kjerne I/O
- minnekartlegging
- procfs
- sysfs
- debugfs
- stafetter
- nettkobling
- ioctl
Bærbarhet
- ordstørrelse
- ugjennomsiktige typer
- signert/usignert char
- datajustering
- integrert promotering
- gjenbruk av kode
- endiness
- systemhake
- sidestørrelse
- instruksjonsbestilling
- SMP/preemption/høyt minne
Med mindre annet er angitt innhold og denne kursoversikten er lisensiert under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Krav
- Grunnleggende kjennskap til å bruke et GNU/Linux-system som sluttbruker
- Grunnleggende kjennskap til et kommandolinjeskall
- Grunnleggende kunnskap om brukerrom / applikasjonsutvikling
- Middels C-programmeringskunnskap
- Burde ha deltatt på Embedded GNU/Linux Systems Architecture før (anbefales på det sterkeste!) og/eller ha en god forståelse av emnene som er skissert der
Testimonials (5)
Edward er en fantastisk tilrettelegger
Zibusiso Ncube - Agricatural Research Council
Kurs - Ionic 4 and Angular for Developers
Machine Translated
Kanskje flere øvelser kunne vært bedre for lerning, men tiden var for liten
Gianpiero Arico' - Urmet Spa
Kurs - Embedded Linux Systems Architecture
Machine Translated
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
Kurs - Flutter Development Bootcamp with Dart
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Kurs - The Yocto Project - An Overview - hands-on
The trainer was enthusiastic, kind, and loved the topic