Course Outline
Εισαγωγή
- γρήγορη ιστορία του GNU/Linux
- αδειοδότησης
- έκδοση πυρήνα
- κύκλος απελευθέρωσης
- πυρηνόδεντρα
- κύρια γραμμή
- πυρήνας έναντι χώρου χρήστη
- μηχανισμός έναντι πολιτικής
- εναλλακτικές λύσεις προγράμματος οδήγησης πυρήνα
- RTOS εναντίον Linux
Μνήμη Management
- Εικονική μνήμη έναντι φυσικής μνήμης
- κατανομή μνήμης στον πυρήνα
- σελίδες
- ζώνες
- API
- πλάκα
Patch πυρήνα
- κύκλος ζωής
- git
- πηγή πυρήνα
- δημιουργία ενημερωμένης έκδοσης κώδικα
- ελέγξτε το έμπλαστρο
- διορθώστε το έμπλαστρο
- έμπλαστρο πλοίου
- ελεγμένο κωδικό
Ενότητες πυρήνα
- λάβετε πηγές πυρήνα
- διαμόρφωση/κατασκευή/εγκατάσταση
- προγράμματα οδήγησης συσκευών (στατικά συνδεδεμένα, φορτωμένα κατά το χρόνο εκτέλεσης)
- έναρξη/έξοδος
- αδειοδότησης
- ΣΥΜΒΟΛΟ ΕΞΑΓΩΓΗΣ GPL
- από δέντρο makefile
- module-init-tools
- ενότητα στο δέντρο πυρήνα
- Kconfig
- πέρασμα παραμέτρων
- αραιός
Char Drivers
- αρχιτεκτονική
- διεπαφή χρήστη/πυρήνα
- Υποσύστημα I/O
- VFS
- sysfs (συσκευές, λεωφορείο, προγράμματα οδήγησης, κλάσεις),
- kobject/ktype/kset
- Μοντέλο προγράμματος οδήγησης πυρήνα linux
- αρχεία συσκευής
- char driver
- αρχικοποίηση
- εγγραφή
- άνοιγμα, απελευθέρωση
- cdev, cdev add, cdev del,...
- κύριοι/ελάσσονες αριθμοί
- udev, udevmonitor, udevadm
Προηγμένες λειτουργίες προγράμματος οδήγησης χαρακτήρων
- ioctl
- ξεκλείδωσε ioctl
- compat ioctl
- API χώρου χρήστη
- API χώρου πυρήνα
- κύκλο ζωής της διαδικασίας
- ύπνος/μπλοκάρισμα
- ύπνος/ξύπνημα
- ουρά αναμονής
- βροντερό κοπάδι
- δημοσκόπηση/επιλογή
Εντοπισμός σφαλμάτων πυρήνα
- έντομο
- αποσφαλμάτωση
- αποσφαλμάτωση του πυρήνα
- δυαδική αναζήτηση με git
- υποστήριξη εντοπισμού σφαλμάτων από τον πυρήνα
- printk syslogd, klogd, loglevels, όριο ρυθμού, επίπεδα εντοπισμού σφαλμάτων, επιλεκτικά υποσυστήματα εντοπισμού σφαλμάτων
- εντοπισμός σφαλμάτων μέσω ερωτήματος για εντοπισμό σφαλμάτων
- ουπς εντοπισμός σφαλμάτων, επιβεβαίωση οκ
- Μαγικό κλειδί SysRq
- kgdb/kdb
- JTAG
Ιχνηλασία
- gcov
- lcov
- οπροφίλ
- ftrace
- nop tracer
- ιχνηθέτης λειτουργίας
- ιχνηλάτης sched switch
- ιχνηθέτης γραφήματος συνάρτησης
- δυναμικός ιχνηλάτης
- trace-cmd/kernelshark
- perf
- LTTng
Διακόπτει
- διακόπτει έναντι ψηφοφορίας
- διακοπή
- ενότητες προγράμματος
- επανεισδοχή
- εκδηλώσεις
- χειριστής διακοπής
- κοινόχρηστος χειριστής διακοπών
- διακόπτει τη ροή
- έλεγχος διακοπής
Αναβολή Εργασίας
- πάνω/κάτω μισά
- softirqs
- tasklets
- ουρές εργασίας
- διακοπές με σπείρωμα
Συγχρονισμός
- κρίσιμη περιοχή/τμήμα
- ατομικός
- αγωνιστική κατάσταση
- συγχρονισμός
- κλείδωμα
- λύσεις κλειδώματος
- αδιέξοδο
- ισχυρισμός
- τι να κλειδωσω
- τι μπορεί να χρησιμοποιηθεί;
- ατομικές λειτουργίες
- περιστροφικές κλειδαριές
- περιστροφικές κλειδαριές αναγνώστη-συγγραφέα
- σηματοφόρος
- δυαδικός σηματοφόρος
- mutex
- σηματοφόρος αναγνώστης-συγγραφέας
- μεταβλητές ολοκλήρωσης
- διαδοχικές κλειδαριές
- απενεργοποιήστε την προκοπή
- παραγγελίες και εμπόδια
Φορά
- HZ
- Jiffies
- μεγάλες/μικρές καθυστερήσεις
- χρονόμετρα πυρήνα
Είσοδος/Έξοδος υλικού
- Θύρες I/O
- I/O Μνήμη
- Πώς να αντιμετωπίσετε τις παρενέργειες πρόσβασης στα μητρώα;
Χρήστης-πυρήνας Communication
- put(get)_user()
- copy to(from)_user()
- Πυρήνα I/O
- χαρτογράφηση μνήμης
- προφ
- sysfs
- διορθώνει
- ρελέφ
- netlink
- ioctl
Φορητότητα
- μέγεθος λέξης
- αδιαφανείς τύποι
- υπογεγραμμένο/ανυπόγραφο χαρ
- ευθυγράμμιση δεδομένων
- ολοκληρωμένη προώθηση
- επαναχρησιμοποίηση κώδικα
- ενδιάμεση
- τικ συστήματος
- μέγεθος σελίδας
- παραγγελία οδηγιών
- SMP/preemption/υψηλή μνήμη
Εκτός εάν αναφέρεται διαφορετικά, το περιεχόμενο και η περιγραφή αυτού του μαθήματος αδειοδοτούνται σύμφωνα με το Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).
Requirements
- Βασική εξοικείωση με τη χρήση ενός συστήματος GNU/Linux ως τελικός χρήστης
- Βασική εξοικείωση με ένα κέλυφος γραμμής εντολών
- Βασικές γνώσεις χώρου χρήστη / ανάπτυξη εφαρμογών
- Γνώσεις προγραμματισμού μεσαίου επιπέδου C
- Θα έπρεπε να έχει παρακολουθήσει το Embedded GNU/Linux Systems Architecture πριν (συνιστάται ανεπιφύλακτα!) ή/και να έχει καλή κατανόηση των θεμάτων που περιγράφονται εκεί
Testimonials (5)
Ο Έντουαρντ είναι ένας φοβερός συντονιστής
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
Machine Translated
Ίσως περισσότερες ασκήσεις θα μπορούσαν να είναι καλύτερες για εκμάθηση, αλλά ο χρόνος ήταν λίγος
Gianpiero Arico' - Urmet Spa
Course - 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
Course - Flutter Development Bootcamp with Dart
That the trainer adapts to our needs
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Course - The Yocto Project - An Overview - hands-on
The trainer was enthusiastic, kind, and loved the topic