Course Outline

Perkenalan

  • sejarah singkat GNU/Linux
  • perizinan
  • versi kernel
  • siklus rilis
  • pohon kernel
  • jalur utama
  • kernel vs. ruang pengguna
  • mekanisme vs. kebijakan
  • alternatif driver kernel
  • RTOS vs. Linux

Memori Management

  • Memori virtual vs. memori fisik
  • alokasi memori di kernel
  • halaman
  • Zona
  • API
  • lempeng

Patch Kernel

  • siklus hidup
  • Mengetik
  • sumber kernel
  • membuat patch
  • periksa patch
  • memperbaiki tambalan
  • tambalan kapal
  • kode yang diaudit

Modul Kernel

  • dapatkan sumber kernel
  • konfigurasikan/bangun/instal
  • driver perangkat (tertaut secara statis, dimuat saat runtime)
  • inisiasi/keluar
  • perizinan
  • SIMBOL EKSPOR GPL
  • keluar dari pohon makefile
  • modul-init-alat
  • modul di pohon kernel
  • Konfigurasi K
  • parameter lewat
  • jarang

Pengemudi Char

  • arsitektur
  • antarmuka pengguna/kernel
  • Subsistem I/O
  • Bahasa Inggris VFS
  • sysfs (perangkat, bus, driver, kelas),
  • objek ko/tipe k/kset
  • model penggerak kernel linux
  • file perangkat
  • pengemudi char
    • inisialisasi
    • pendaftaran
    • membuka, melepaskan
    • cdev, cdev tambah, cdev hapus,...
    • angka mayor/minor
    • udev, monitor udev, udevadm

Operasi Driver Karakter Lanjutan

  • bahasa inggris
  • ioctl yang tidak terkunci
  • kompatibel dengan ioctl
  • API ruang pengguna
  • API ruang kernel
  • siklus hidup proses
  • tidur/memblokir
  • tidur/bangun
  • antrian tunggu
  • kawanan yang bergemuruh
  • jajak pendapat/pilih

Debugging Kernel

  • serangga
  • men-debug
  • men-debug kernel
    • pencarian biner dengan git
    • dukungan debug dari kernel
    • printk syslogd, klogd, loglevels, batas laju, level debug, debug subsistem selektif
    • debugging dengan meminta debugfs
    • oops debugging, menegaskan oops
    • Kunci SysRq Ajaib
    • kgdb/kdb
    • JTAG

Pelacakan

  • gcov
  • bahasa inggris
  • profil
  • trace cepat
    • pelacak nop
    • pelacak fungsi
    • pelacak sakelar terjadwal
    • pelacak grafik fungsi
    • pelacak dinamis
  • jejak-cmd/kernelshark
  • sempurna
  • LTTng

Interupsi

  • interupsi vs. polling
  • mengganggu
  • bagian program
  • masuk kembali
  • Peristiwa
  • penangan interupsi
  • penangan interupsi bersama
  • mengganggu aliran
  • kontrol interupsi

Menunda Pekerjaan

  • bagian atas/bawah
  • perangkat lunak
  • tugas kecil
  • antrian kerja
  • interupsi berulir

Konkurensi

  • wilayah/bagian kritis
  • atom
  • kondisi balapan
  • sinkronisasi
  • penguncian
  • solusi penguncian
  • jalan buntu
  • pendapat
  • apa yang harus dikunci?
  • apa yang bisa digunakan?
    • operasi atom
    • kunci putar
    • kunci putar pembaca-penulis
    • tiang sinyal
    • semafor biner
    • muteks
    • semafor pembaca-penulis
    • variabel penyelesaian
    • kunci berurutan
    • nonaktifkan preemption
    • ketertiban dan hambatan

Waktu

  • HZ
  • Jiffie sebentar
  • penundaan besar/kecil
  • pengatur waktu kernel

Perangkat Keras I/O

  • Port masukan/keluaran
  • Memori I/O
  • Bagaimana menangani efek samping saat mengakses register?

Pengguna-Kernel Communication

  • menempatkan(dapatkan)_pengguna()
  • salin ke(dari)_pengguna()
  • Input/Output Kernel
  • pemetaan memori
  • proses
  • sistem operasi
  • debugfs
  • relai
  • tautan jaringan
  • bahasa inggris

Portabilitas

  • ukuran kata
  • jenis buram
  • karakter bertanda tangan/tidak bertanda tangan
  • penyelarasan data
  • promosi integral
  • penggunaan kembali kode
  • kegigihan
  • sistem centang
  • ukuran halaman
  • instruksi pemesanan
  • SMP/preemption/memori tinggi

Kecuali dinyatakan lain, konten dan garis besar kursus ini dilisensikan berdasarkan Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0).

Requirements

  • Kemampuan dasar dalam menggunakan sistem GNU/Linux sebagai pengguna akhir
  • Keakraban dasar dengan shell baris perintah
  • Pengetahuan dasar tentang ruang pengguna / pengembangan aplikasi
  • Pengetahuan pemrograman C tingkat menengah
  • Harus pernah menghadiri Embedded GNU/Linux Systems Architecture sebelumnya (sangat direkomendasikan!) dan/atau memiliki pemahaman yang baik tentang topik yang diuraikan di sana
 35 Hours

Number of participants


Price per participant

Testimonials (5)

Upcoming Courses (Minimal 5 peserta)

Related Categories