Rumah >Tutorial sistem >LINUX >Terokai misteri modul kernel Linux
Dalam sistem pengendalian Linux, kernel adalah bahagian teras, yang mengawal interaksi antara perkakasan dan perisian komputer. Modul kernel ialah konsep penting dalam kernel. Ia boleh dimuatkan secara dinamik ke dalam kernel semasa runtime, dengan itu memanjangkan fungsi kernel. Dalam artikel ini, kami akan mendalami cara modul kernel Linux berfungsi dan terdiri daripada, dan menerangkan cara menulis anda sendiri.
Reka bentuk modular kernel Linux
1 Reka bentuk kernel Linux: kernel tunggal, modular (pemuatan dan pemunggahan dinamik)
(1) Linux: reka bentuk kernel tunggal, tetapi menggunakan sepenuhnya kelebihan reka bentuk sistem mikrokernel memperkenalkan mekanisme modular kepada inti
(2) Komponen inti:
Kernel: Inti kernel, biasanya dalam format bzImage, biasanya terletak dalam direktori /boot, bernama vmlinuz-VERSION-release
Fail ini tidak akan digunakan lagi selepas sistem dimulakan, kerana ia telah dimuatkan ke dalam memori dan diletakkan di bawah /boot untuk pengurusan yang mudah
Objek kernel: Modul kernel, biasanya diletakkan dalam /lib/modules/VERSION-release/
Modul kernel dan versi teras kernel mesti sepadan dengan ketat
2. Modul kernel: kompilasi mod pemilihan
[ ]: N, jangan susun bahagian ini
[M]: Modul, disusun secara modular, boleh dimuatkan sementara, mengambil ruang cakera, tidak menempati ruang kernel
[*]: Y, disusun ke dalam inti kernel, boleh dipanggil terus
3.ramdisk: Fail tambahan, tidak perlu, ia bergantung kepada sama ada kernel boleh terus memacu peranti di mana rootfs berada
ramdisk: Versi ringkas sistem fail akar Pemacu yang tersedia adalah seperti berikut:
Pemacu peranti sasaran, seperti pemacu peranti SCSI
Pemacu peranti logik, seperti pemacu peranti LVM;
Sistem fail, seperti sistem fail xfs;
Perintah pemerolehan dan pengurusan maklumat modul kernel
1.ldd: Cetak fail perpustakaan yang bergantung pada aplikasi binari - cetak kebergantungan perpustakaan kongsi
Format: ldd [PILIHAN]… FAIL…
Paparan:
1) Nama fail perpustakaan bergantung => Laluan fail perpustakaan bergantung (sepadan dengan titik pemetaan pautan simbolik pemuatan memori)
2) Masuk ke seluruh perpustakaan panggilan sistem
linux-vdso.so.1 => (0x00007fff293fe000) /lib64/ld-linux-x86-64.so.2 (0x00007f0228073000)
2.uname: Pemerolehan maklumat kernel -cetak maklumat sistem
Format: uname [PILIHAN]…
uname -a: Paparkan semua maklumat kernel
uname -v: Nombor versi terkumpul kernel
uname -r: nombor keluaran kernel
uname -n: nama hos
3.lsmod: Senaraikan modul kernel
Inti yang dipaparkan berasal daripada /proc/modules
Nama modul, saiz, bilangan kali disebut dan perkara yang disebut oleh
Arahan 4.modinfo: Paparkan maklumat terperinci modul yang ditentukan
Format: modinfo [medan-F] [-k kernel] [nama modul|nama fail…] -k kernel: Untuk menanyakan maklumat modul pada kernel lain apabila berbilang kernel wujud bersama
Medan -F: Hanya paparkan maklumat tentang medan yang ditentukan
-n: Paparkan laluan fail;
Paparkan maklumat yang berkaitan dengan membaca data asal fail /lib/modules/######/*
Kandungan paparan: nama fail, protokol, perihalan, pengarang, alias, nombor versi yang berkenaan dengan RHEL, modul bergantung, unit tandatangan, tandatangan, algoritma penyulitan
5.modprobe: menyedari pemuatan dan pemunggahan modul, dan juga memasang modul bergantung
Format: modprobe [-r] module_name
Pemuatan dinamik modul: modprobe module_name
Nyahpasang dinamik: modprobe -r module_name
Nota: Jangan nyahpasang modul yang dimuatkan secara lalai
6.depmod:- Hasilkan modul.dep dan fail peta
Alat untuk menjana fail pergantungan modul kernel dan fail pemetaan maklumat sistem;
7.insmod, rmmod: memuatkan dan memunggah modul, kebergantungan modul tidak boleh diselesaikan secara automatik
insmod [nama fail] [pilihan modul…] nama fail: laluan fail fail modul
rmmod [nama_modul]
pengurusan fail ramdisk
1.mkinitrd(CentOS 5): Buat semula fail ramdisk untuk kernel yang sedang digunakan
# mkinitrd [PILIHAN…] [] –dengan=: Sebagai tambahan kepada modul lalai, modul yang perlu dimuatkan ke dalam initramfs
–pramuat=: Modul yang disediakan oleh initramfs memerlukan modul pramuat
Contoh: ~]# mkinitrd /boot/initramfs-(uname -r)
2.dracut(CentOS 6/7, serasi dengan 5): – alat tahap rendah untuk menjana imej initramfs
# dracut [PILIHAN…] [ []] Contoh: ~]# dracut /boot/initramfs-(uname -r)Sistem fail pseudo output maklumat kernel
1./proc: Antara muka keluaran untuk status kernel dan maklumat statistik juga menyediakan antara muka konfigurasi, /proc/sys
(1) parameter:
Baca sahaja: output maklumat; contohnya /proc/#/, memproses maklumat berkaitan
Boleh ditulis: Pengguna boleh menentukan "nilai baharu" untuk mengkonfigurasi fungsi atau ciri tertentu bagi kernel;
Format: /proc/sys: net/ipv4/ip_forward adalah bersamaan dengan net.ipv4.ip_forward
(2) Cara mengubah suai parameter
1) arahan sysctl
Digunakan khas untuk melihat atau menetapkan nilai parameter dalam direktori /proc/sys [options] [variable[=value]];
Lihat: #sysctl -a; #sysctl variable
Ubah suai nilainya: # sysctl -w variable=value
2) Arahan sistem fail (kucing, gema)
Semak: # kucing /proc/sys/PATH/TO/SOME_KERNEL_FILE
Tetapan: # echo “VALUE” > /proc/sys/PATH/TO/SOME_KERNEL_FILE
3) Fail konfigurasi: /etc/sysctl.conf, /etc/sysctl.d/
.conf
Kaedah berkesan serta-merta: sysctl -p [/PATH/TO/CONFIG_FILE]
(3) Parameter kernel penting
net.ipv4.ip_forward: pemajuan teras;
vm.drop_caches:
kernel.hostname: nama hos;
net.ipv4.icmp_echo_ignore_all: Abaikan semua operasi ping;
Sistem fail sys: Mengeluarkan maklumat atribut yang berkaitan bagi setiap peranti perkakasan yang diiktiraf oleh kernel, dan juga mempunyai parameter boleh tetap kernel untuk ciri perkakasan
Mengubah suai parameter ini boleh menyesuaikan ciri kerja peranti perkakasan
udev: Cipta fail peranti untuk setiap peranti perkakasan atas permintaan dengan membaca maklumat peranti perkakasan dalam direktori /sys;
udev ialah program ruang pengguna;
Apabila udev mencipta fail peranti untuk peranti, ia akan membaca fail peraturan yang dipratakrifkan
Secara umumnya dalam direktori /etc/udev/rules.d/ dan direktori /usr/lib/udev/rules.d/
Untuk meringkaskan, modul kernel ialah bahagian yang sangat penting dalam kernel Linux, yang boleh menyediakan kernel dengan fungsi sambungan yang kaya dan membantu pengguna menyesuaikan diri dengan perkakasan atau senario aplikasi tertentu dengan lebih baik. Apabila menggunakan modul kernel, anda perlu berhati-hati agar tidak merosakkan kestabilan dan keselamatan kernel Adalah disyorkan untuk menggunakan dan menulis modul kernel hanya apabila perlu. Saya percaya bahawa kandungan artikel ini boleh membantu pembaca memahami dan menggunakan modul kernel Linux dengan lebih baik.
Atas ialah kandungan terperinci Terokai misteri modul kernel Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!