Terima kasih telah mengirimkan pertanyaan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Terima kasih telah mengirimkan pemesanan Anda! Salah satu anggota tim kami akan segera menghubungi Anda.
Kerangka Materi
Pengantar
- sejarah singkat GNU/Linux
- lisensi
- versi kernel
- siklus rilis
- pohon kernel
- mainline
- kernel vs. ruang pengguna
- mekanisme vs. kebijakan
- alternatif driver kernel
- RTOS vs. Linux
Manajemen Memori
- memori virtual vs. memori fisik
- alokasi memori di kernel
- halaman
- zona
- API
- slab
Patch Kernel
- siklus hidup
- git
- sumber kernel
- buat patch
- periksa patch
- perbaiki patch
- kirim patch
- kode yang diaudit
Modul Kernel
- dapatkan sumber kernel
- konfigurasi/pembuatan/instalasi
- driver perangkat (terikat statis, dimuat saat runtime)
- init/exit
- lisensi
- EXPORT SYMBOL GPL
- makefile di luar pohon
- module-init-tools
- modul di dalam pohon kernel
- Kconfig
- passing parameter
- sparse
Driver Karakter
- arsitektur
- antarmuka pengguna/kernel
- subsistem I/O
- VFS
- sysfs (perangkat, bus, driver, kelas),
- kobject/ktype/kset
- model driver kernel Linux
- file perangkat
-
driver karakter
- inisialisasi
- registrasi
- open, release
- cdev, cdev add, cdev del,...
- nomor major/minor
- udev, udevmonitor, udevadm
Operasi Lanjutan Driver Karakter
- ioctl
- unlocked ioctl
- compat ioctl
- API ruang pengguna
- API ruang kernel
- siklus hidup proses
- tidur/blokir
- tidur/bangun
- antrian tunggu
- thundering herd
- poll/select
Debugging Kernel
- debugging
-
debugging kernel
- pencarian biner dengan git
- dukungan debug dari kernel
- printk syslogd, klogd, loglevels, rate limit, level debug, debug subsistem selectif
- debugging dengan query debugfs
- debugging oops, mengklaim oops
- Kunci Sistem Req Ajaib
- kgdb/kdb
- JTAG
Tracing
- gcov
- lcov
- oprofile
-
ftrace
- tracer nop
- tracer fungsi
- tracer beralih jadwal
- tracer grafik fungsi
- tracer dinamis
- trace-cmd/kernelshark
- perf
- LTTng
Interrupts
- interrupt vs. polling
- interrupt
- bagian program
- reentrancy
- event
- penangan interrupt
- penangan interrupt bersama
- alur interrupt
- kontrol interrupt
Menunda Pekerjaan
- top/bottom halves
- softirqs
- tasklets
- work queues
- interrupsi berbasis thread
Konkurensi
- wilayah/bagian kritis
- atomic
- kondisi balapan
- sinkronisasi
- penguncian
- solusi penguncian
- deadlock
- konten persaingan
- apa yang harus dikunci?
-
apa yang dapat digunakan?
- operasi atomic
- spin locks
- reader-writer spin locks
- semaphore
- binary semaphore
- mutex
- reader-writer semaphore
- variabel completion
- sequential locks
- nonaktifkan preemption
- pengaturan dan penghalang
Waktu
- HZ
- Jiffies
- delay besar/kecil
- timer kernel
I/O Perangkat Keras
- Port I/O
- Memori I/O
- Bagaimana cara menangani efek samping saat mengakses register?
Komunikasi Pengguna-Kernel
- put(get)_user()
- copy to(from)_user()
- I/O Kernel
- pemetaan memori
- procfs
- sysfs
- debugfs
- relayfs
- netlink
- ioctl
Portabilitas
- ukuran kata
- tipe opak
- char bertanda/tidak bertanda
- perataan data
- promosi integral
- penggunaan ulang kode
- endianess
- sistem tick
- ukuran halaman
- urutan instruksi
- SMP/preemption/high memory
Kecuali dicatat lain, konten dan struktur kursus ini dilisensikan di bawah Atribusi-NonKomersial-BerbagiSerupa 4.0 Internasional (CC BY-NC-SA 4.0).
Persyaratan
- Keterampilan dasar dalam menggunakan sistem GNU/Linux sebagai pengguna akhir
- Keterampilan dasar dalam shell baris perintah
- Pengetahuan dasar tentang pengembangan ruang pengguna / aplikasi
- Pengetahuan pemrograman C menengah
- Harus telah mengikuti Sistem Tersemat GNU/Linux Architecture (disarankan kuat!) dan/atau memiliki pemahaman yang baik tentang topik-topik yang dijelaskan di sana
35 Jam
Testimoni (3)
Semuanya baik-baik saja.
Adrian Rybka - SEOyon
Kursus - Flutter Development Bootcamp with Dart
Diterjemahkan Mesin
Informasi tambahan yang sangat berguna
Grzegorz - Comp S.A.
Kursus - BLoC Pattern
Diterjemahkan Mesin
Pengetahuan dan kesabaran beliau.
Chrisna - Agricatural Research Council
Kursus - Ionic 4 and Angular for Developers
Diterjemahkan Mesin