Ia panjang dan mempunyai banyak kandungan teknikal, jadi klik untuk mengikutinya dan anda tidak akan tersesat.
Prakata: Memahami Kernel Linux
Sistem komputer ialah simbiosis perkakasan dan perisian ia saling bergantung dan tidak boleh dipisahkan. Perkakasan komputer langkah pemindahan kernel linux kaya dengan peranti persisian, pemproses, memori, pemacu keras dan peranti elektronik lain yang membentuk silinder komputer. Dan tanpa perisian untuk mengendalikan dan mengawalnya, ia tidak boleh berfungsi dengan sendirinya. Perisian yang melengkapkan kerja kawalan ini dipanggil sistem pengendalian Dalam terminologi Linux, ia dipanggil "kernel" atau "teras". Modul utama (atau komponen) kernel Linux dibahagikan kepada bahagian berikut: pengurusan storan, CPU dan pengurusan proses, sistem fail, pengurusan peranti dan pemacu, komunikasi rangkaian forum Linux, dan permulaan sistem (but), panggilan sistem, dsb. .
Inti Linux melaksanakan banyak sifat seni bina yang penting. Pada tahap yang lebih tinggi atau lebih rendah, kernel ditakrifkan ke dalam subsistem. Linux juga boleh dilihat secara keseluruhan, kerana ia menyepadukan semua perkhidmatan asas tersebut ke dalam kernel. Ini berbeza daripada seni bina mikrokernel yang pertama akan menyediakan beberapa perkhidmatan asas, seperti komunikasi, I/O, pengurusan memori dan proses, dan perkhidmatan yang lebih khusus dimasukkan ke dalam lapisan mikrokernel.
Lama kelamaan, kernel Linux telah menjadi lebih cekap dari segi memori video dan penggunaan CPU, dan sangat stabil. Dan untuk Linux, perkara yang paling menarik ialah walaupun saiz dan kerumitan ini, ia masih mempunyai mudah alih yang baik. Linux disusun untuk dijalankan pada sejumlah besar pemproses dan platform dengan kekangan dan keperluan seni bina yang berbeza. Contoh balas ialah Linux boleh dijalankan pada pemproses yang mempunyai unit pengurusan memori grafik (MMU), atau ia boleh dijalankan pada pemproses yang tidak menyediakan MMU. Port uClinux kernel Linux menyediakan sokongan untuk bukan MMU. Dalam industri IT
Seperti: pembangunan terbenam, pembangunan pemacu, pembangunan Android, pembangunan c++, pembangunan Java jika anda bersentuhan dengan aspek asas
Jadi
Fahami inti: Ini akan membantu kerja pembangunan anda menjana faedah yang sepadan.
Fahami kernel: Ia akan menjadikan anda lebih memahami prinsip asas dan kod sumber pembangunan.
Inti adalah bonus untuk ujian bertulis.
Inti adalah satu-satunya cara untuk menjadi pakar.
Sama ada anda terlibat dalam pembangunan kernel atau tidak, teknologi kernel ialah pilihan terbaik untuk menyimpan kemahiran, meluaskan ufuk anda dan mengembangkan kemahiran teknikal anda.
Ketahui seterusnya:
Analisis kernel Linux "Keselamatan Kerentanan dan Memori Video Maya"
Analisis prinsip dan seni bina soket kernel Linux
Analisis kernel Linux "Model Memori Video Fizikal"
Laluan pembelajaran kernel yang disyorkan Jika anda suka mengkaji kernel dan ingin mengetahui lebih lanjut tentang kernel, anda boleh merujuknya. 1: Prinsip Sistem Pengendalian/Kompilasi Topik 1: Prinsip Sistem Pengendalian
Pengurusan proses: status dan penukaran proses, proses pengecualian dan penyegerakan bersama, penjadualan pemproses, kebuntuan proses
Pengurusan memori video: struktur storan, pengurusan storan partition, pengurusan segmen, pengurusan halaman, storan maya
Pengurusan peranti: cache pemacu c, RAID (tatasusunan pemacu c), penimbal I/O
Pengurusan fail: struktur organisasi fail, prinsip fail timbunan, pengurusan ruang storan, pengurusan direktori fail
2: Pengetahuan mendalam tentang bahasa himpunan
x86/x86_64 seni bina: seni bina x86/x86_64, asas bahasa himpunan, pemindahan data, operasi aritmetik, pengalamatan, pemprosesan prosedur dan keadaan, pemprosesan titik terapung dan pengekodan arahan
Seni bina ARM: Mikropemproses teras ARM, sistem arahan biasa ARM, program pemasangan dan penyahpepijatan ARM, gangguan pengecualian/pengendali semula/gangguan pengecualian SWI, pemasangan dan konfigurasi RealViewMDK, pemasangan ARM dan pelaksanaan hibrid C, pemuatan data dan arahan penyimpanan Realisasikan
Dua: Pengurusan Proses Topik 1: Asas Proses
Struktur organisasi kod sumber kernel Linux
Prinsip proses dan status proses
Kitaran hayat dan panggilan sistem: prinsip salin atas-tulis, susun atur memori proses, pengurusan tindanan proses, pelaksanaan panggilan sistem
Analisis struktur data struktur_tugas
2: Penjadualan Proses
Strategi penjadualan: SCHED_DEADLINE, SCHED_FIFO, SCHED_RR, SCHED_NORMAL
Keutamaan proses: keutamaan penjadualan, keutamaan statik, keutamaan biasa, keutamaan masa nyata
Menjadualkan analisis kelas: stop_sched_class, dl_sched_class, rt_sched_class, cfs_sched_class, idle_shced_class
Penjadualan SMP: pemindahan benang/pemproses mengasingkan, pengimbangan beban pemproses untuk penjadualan tarikh akhir, pengimbangan beban pemproses untuk penjadualan masa nyata dan pengimbangan beban pemproses untuk penjadualan yang adil
Tiga: Pengurusan Memori Video Topik 1: Prinsip Memori Video
Organisasi model SMP/NUMA
Struktur dan model organisasi ingatan kimia
Cache jadual halaman/jadual halaman: struktur direktori rangka kerja jadual halaman, format dan pengurusan kemasukan TLB, pengecam ruang alamat (ASID), pengecam mesin maya (VMID)
Cache pemproses: struktur dan strategi cache, konsistensi cache SMP, cache dan kawalan TLB
Pemetaan memori video: analisis struktur data, penciptaan pemetaan memori video, pemadaman pemetaan memori video, pelaksanaan panggilan sistem
2: Memori video maya
Alokasi blok: prinsip pengalokasi memori video, peruntukan halaman dan keluaran halaman, pengalokasi blok SLAB, pengalokasi blok SLOB, pengalokasi blok SLUB, soket penjadualan sistem
Koleksi komprehensif modul halaman: halaman gergasi standard, halaman gergasi telus, algoritma LRU dan pemetaan terbalik, prinsip kitar semula halaman langsung dan tak segerak, pelan pelaksanaan untuk mengitar semula halaman tidak aktif, prinsip pertukaran halaman, prinsip cache papak kitar semula, pengendalian pengecualian kesalahan halaman, memori pemecahan Menyusun, memulakan kitar semula memori video, struktur data kawasan swap/penciptaan/pengaktifan, prinsip teknikal kehabisan memori, kaedah penentukuran pengecualian tiada halaman, alat pemeriksaan KASAN, mengendalikan pengecualian halaman swap yang tiada
Penghalang memori video dan teknologi pengecualian bersama kernel
Ketahui seterusnya:
Kernel mesti belajar|"Memori video fizikal dan ingatan video maya"|Pengurusan VMA/malloc/mmap
Mata teknikal kernel Linux |. laluan peruntukan halaman |
3: Panggilan sistem memori videokmalloc/vmalloc
Prinsip kumpulan memori video dan operasi pelaksanaan
Parameter dan pelaksanaan pengoptimuman memori video
Pelaksanaan caching halaman
Pelaksanaan blok cache
4: alat analisis prestasi perf
mekanisme prinsip perf dan konfigurasi pemasangan
Perf arahan pengumpulan data 29 aplikasi alat
perf mengumpul data untuk analisis graf menyala
Empat: Timbunan Kontrak Rangkaian Topik 1: Infrastruktur Rangkaian
Kontrak ICMP
Kontrak Datagram Pengguna (UDP)
Kontrak Kawalan Penghantaran (TCP)
Kontrak Penghantaran Kawalan Aliran (SCTP)
Kontrak Kawalan Crosstalk Datagram (DCCP)
Penghalaan dasar IPv4
Modul subsistem wayarles: Analisis struktur bingkai MAC 802.11, pengimbasan/pengesahan/persatuan, penerimaan dan pelaksanaan penghantaran mac80211, daya pemprosesan tinggi (802.11n), rangkaian mesh (802.11s)
Mesej ubah hala IPv4/jadual FIB
2: Timbunan kontrak rangkaian
ARP (Kontrak Penyelesaian Alamat)
Kontrak Datagram Pengguna (UDP)
Kontrak Kawalan Penghantaran (TCP)
Penghalaan perantaraan: penghalaan berbilang siaran, penghalaan dasar, penghalaan berbilang laluan
Terima/Hantar paket IPv4
Terima/Hantar paket IPv6
Seni bina tindanan InfiniBand: struktur RDMA (Remote Direct Memory Access), komponen dan pengalamatan InfiniBand, fungsi dan pakej data InfiniBand, pendaftaran tindanan protokol/pakej penerimaan/skim proses pakej penghantaran
Ketahui seterusnya: Kuasai seni bina tindanan kontrak kernel Linux dalam masa 90 minit
3: Panggilan API Sistem
Panggilan API Rangkaian POSIX
prinsip dan pelaksanaan kernel epoll
Konfigurasi parameter sistem rangkaian
V: Topik pemacu peranti 1: Subsistem pemacu peranti
Prinsip mekanisme I/O
Peruntukan dan pengurusan sumber
Subsistem peranti aksara
Sekat Subsistem Peranti
Pemandu kad antara muka rangkaian
2: Model peranti Linux
Analisis mendalam tentang LDM: struktur data LDM, pemacu peranti, struktur kobject, kobj_type, koleksi objek kernel
Model peranti dan sysfs: fail dan sifat sysfs, membenarkan pengalamatan fail sifat sysfs,
3: Operasi peranti watak
Peranti utama dan peranti kedua
Buka fail peranti
Tetapkan dan daftar peranti aksara
Pelaksanaan operasi penulisan fail: mod buka/lepaskan, mod baca/tulis, kaedah llseek/pungutan suara, struktur operasi_fail mengisi
Masukkan dan padam modul
4: Sekat operasi peranti
Sekat perwakilan peranti dan struktur data
struktur data BIO
panggilan sistem ioctl
Modul bas: bas ISA, bas PCI/PCI-E, bas USB, bas VESA, bas I2C
5: Pemacu peranti kad rangkaian
Struktur data: struktur penimbal soket, struktur soket rangkaian
Pengurusan penimbal dan kawalan konkurensi
Pemacu Rangkaian ISA
Mod pemindahan tak segerak untuk ATM
Hasil rangkaian
Ketahui seterusnya: Analisis analisis kod sumber proses komunikasi soket kernel Linux
Enam: Komponen Inti Topik 1: Pengurusan Masa
Subsistem masa sejagat
Pemasa kadar bingkai tinggi
Struktur data jam dinamik
Panggilan sistem pemasa
2: Caching halaman dan sekat
Pengoperasian dan pelaksanaan struktur cache halaman
Sekat struktur dan pelaksanaan cache
struktur data ruang alamat dan pepohon halaman
3: Penyegerakan data
Mekanisme penyegerakan sistem nombor
penyegerakan inod dan crosstalk
Paksa tulis balik dan penyegerakan penuh
4: Aktiviti Kernel
Jenis sampukan/IRQ Perkakasan
irq_desc struktur data
Kendalikan IRQ dan gangguan lembut
Buat/daftar/laksanakan tasklet
Antrian menunggu dan jumlah siap
Tujuh: Topik sistem fail
1: Sistem Fail Maya VFS
Penyelidikan tentang jenis sistem fail dan model fail
Struktur data: blok super (super_block), deskriptor pelekap (struktur lekap), nod indeks (struktur inod), kemasukan direktori (struktur gigi)
Panggilan sistem fail: buka/tutup fail, buat/padam fail, baca/tulis fail, prinsip teknikal tulis balik fail/pelaksanaan soket
Sistem fail lekap: proses pemprosesan lekapkan panggilan sistem, ruang nama lekapkan/lekapkan, lekapkan/daftarkan sistem fail rootfs
Tiada sistem fail berterusan: sistem fail proc (struktur data proc, memuatkan item data proc/menguruskan, membaca data dan pelaksanaan penulisan), sistem fail ringkas (fail berurutan, sistem fail penjadualan, sistem fail pseudo)
2: sistem fail pemacu c
Sistem fail Ext2: struktur kimia dan struktur data, mencipta sistem fail, mengendalikan sistem fail
Sistem fail Ext3
Sistem fail Ext4
Log JBD2
3: Sistem fail ruang pengguna
Reka bentuk dan prinsip seni bina fius
Lima barisan teras
Fius proses ruang pengguna dan pelan pelaksanaan
Lapan: Topik Praktikal Projek Kernel
1-Penyusunan kernel Linux dan kaedah pelaksanaan penggantian sistem
2-Pelan pelaksanaan komunikasi/pengurusan antara proses (kebenaran/keutamaan)
Pelaksanaan pemacu kad rangkaian 3-NIC
4-mmap sistem panggilan/pemetaan pelaksanaan memori video pengguna
5-Pelaksanaan sistem parameter memori video Linux
6-Penyahpepijatan dan pengoptimuman prestasi (debugfs/printk/ftrace)
7-mekanisme pelaksanaan peruntukan memori video pengalokasi blok papak
8-tasklet/benang barisan hadapan dan pelaksanaan pemasa
9-Pelaksanaan sistem fail proc kernel Linux
Perlaksanaan iptables firewall kernel 10-Linux
Atas ialah kandungan terperinci Adakah sokongan bukan MMU disediakan oleh port uClinux kernel Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!