Course Outline

Εισαγωγή

    γρήγορη ιστορία του GNU/Linux αδειοδότησης έκδοσης πυρήνα έκδοσης κύκλου κυκλοφορίας δέντρα πυρήνα κύρια γραμμή πυρήνα έναντι μηχανισμού χώρου χρήστη έναντι εναλλακτικών προγραμμάτων οδήγησης πυρήνα πολιτικής RTOS έναντι Linux

Μνήμη Management

    Εικονική μνήμη έναντι εκχώρησης φυσικής μνήμης σε ζώνες API σελίδων πυρήνα

Patch πυρήνα

    κύκλος ζωής πηγή πυρήνα git δημιουργία κώδικα ενημερωμένης έκδοσης κώδικα επιθεώρησης επιδιόρθωσης ενημέρωσης κώδικα

Ενότητες πυρήνα

    λήψη πηγών πυρήνα διαμόρφωση/κατασκευή/εγκατάσταση προγραμμάτων οδήγησης συσκευών (στατικά συνδεδεμένα, φορτωμένα κατά την εκτέλεση) αδειοδότηση έναρξης/έξοδος ΕΞΑΓΩΓΗ ΣΥΜΒΟΛΟΥ GPL εκτός δέντρου ενότητα makefile module-init-tools σε δέντρο πυρήνα Η παράμετρος Kconfig περνάει αραιή

Char Drivers

    αρχιτεκτονική διεπαφή χρήστη/πυρήνα Υποσύστημα εισόδου/εξόδου VFS sysfs (συσκευές, δίαυλος, προγράμματα οδήγησης, κλάσεις), kobject/ktype/kset πρόγραμμα οδήγησης linux μοντέλου αρχείου συσκευής αρχείου αρχικοποίησης προγράμματος οδήγησης char, έκδοση cdev, προσθήκη cdev, cdev del,... κύριοι/ελάσσονες αριθμοί udev, udevmonitor, udevadm

Προηγμένες λειτουργίες προγράμματος οδήγησης χαρακτήρων

    ioctl ξεκλείδωτο ioctl compat ioctl χώρος χρήστη API kernel space Διαδικασία API κύκλος ζωής ύπνος/αποκλεισμός ύπνος/αφύπνιση ουρά αναμονής βροντή κοπάδι δημοσκόπηση/επιλογή

Εντοπισμός σφαλμάτων πυρήνα

    εντοπισμός σφαλμάτων εντοπισμός σφαλμάτων στη δυαδική αναζήτηση του πυρήνα με υποστήριξη εντοπισμού σφαλμάτων git από τον πυρήνα printk syslogd, klogd, loglevels, όριο ρυθμού, επίπεδα εντοπισμού σφαλμάτων, εντοπισμός σφαλμάτων επιλεκτικών υποσυστημάτων εντοπισμός σφαλμάτων μέσω ερωτήματος εντοπισμού σφαλμάτων oops εντοπισμού σφαλμάτων, διεκδίκησης oops Magic SysRqbd kgd

Ιχνηλασία

    gcov lcov oprofile ftrace nop tracer λειτουργία ιχνηθέτη sched switch λειτουργία ιχνηθέτη γράφημα ιχνηθέτης δυναμικός ιχνηλάτης
trace-cmd/kernelshark
  • perf
  • LTTng
  • Διακόπτει
  • διακόπτες έναντι ψηφοφορίας διακοπής ενότητες προγράμματος συμβάντα επανεισαγωγής χειριστής διακοπής κοινόχρηστος χειριστής διακοπής έλεγχος διακοπής ροής διακοπής

      Αναβολή Εργασίας

    πάνω/κάτω μισά softirq tasklets εργασίας ουρές με νήματα διακοπές

      Συγχρονισμός

    κρίσιμη περιοχή/τμήμα ατομική φυλή κατάσταση συγχρονισμός κλείδωμα λύσεις κλειδώματος αδιέξοδο διαμάχη τι να κλειδώσω; τι μπορεί να χρησιμοποιηθεί; ατομικές λειτουργίες spin locks αναγνώστης-συγγραφέας spin locks σηματοφόρος δυαδικός σηματοφόρος mutex μεταβλητές ολοκλήρωσης σηματοφόρου διαδοχικές κλειδαριές απενεργοποίηση σειράς προκαταβολής και φραγμοί

      χρόνος

    Το HZ Jiffies μεγάλο/μικρό καθυστερεί τους χρονομετρητές πυρήνα

      I/O υλικού

    Θύρες εισόδου/εξόδου Μνήμη εισόδου/εξόδου Πώς να αντιμετωπίσετε τις παρενέργειες κατά την πρόσβαση σε καταχωρητές;

      Χρήστης-πυρήνας Communication

    put(get)_user() copy to(from)_user() Αντιστοίχιση μνήμης I/O πυρήνα procfs sysfs debugfs relayfs netlink ioctl

      Φορητότητα

    μέγεθος λέξης αδιαφανείς τύποι υπογεγραμμένο/ανυπόγραφο στοίχιση δεδομένων χαρακτήρων ενσωματωμένος κωδικός προώθησης επαναχρησιμοποίηση συστήματος endianess σημαδεύετε οδηγίες μεγέθους σελίδας παραγγελία SMP/preemption/υψηλή μνήμη

      Εκτός εάν αναφέρεται διαφορετικά, το περιεχόμενο και η περιγραφή αυτού του μαθήματος αδειοδοτούνται σύμφωνα με το Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

    Requirements

    • Βασική εξοικείωση με τη χρήση ενός συστήματος GNU/Linux ως τελικός χρήστης
    • Βασική εξοικείωση με ένα κέλυφος γραμμής εντολών
    • Βασικές γνώσεις χώρου χρήστη / ανάπτυξη εφαρμογών
    • Γνώσεις προγραμματισμού μεσαίου επιπέδου C
    • Θα έπρεπε να έχει παρακολουθήσει το Embedded GNU/Linux Systems Architecture πριν (συνιστάται ανεπιφύλακτα!) ή/και να έχει καλή κατανόηση των θεμάτων που περιγράφονται εκεί
     35 Hours

    Number of participants



    Price per participant

    Testimonials (4)

    Related Courses

    Buildroot: a Firmware Generator for Embedded Systems

    7 Hours

    Shadowsocks: Set Up a Proxy Server

    7 Hours

    The Yocto Project - An Overview - hands-on

    28 Hours

    Flutter Development Bootcamp with Dart

    35 Hours

    IBM MobileFirst Platform for Hybrid Mobile Application Development

    21 Hours

    Related Categories