Sistem Linux ialah sistem pengendalian sumber terbuka yang digunakan secara meluas dengan fungsi berkuasa dan konfigurasi yang fleksibel. Namun, pernahkah anda terfikir tentang bagaimana sistem Linux secara beransur-ansur bermula dari kegelapan apabila anda menekan butang kuasa? Proses but permulaan sistem Linux ialah proses yang rumit dan rumit, yang melibatkan pelbagai peringkat dan komponen seperti perkakasan, perisian tegar, pemuat but, kernel dan ruang pengguna. Artikel ini akan menganalisis secara terperinci proses but permulaan sistem Linux, termasuk BIOS, MBR, GRUB, initrd, init, dll.
1) Langkah pertama ialah ujian kendiri perisian tegar, yang terutamanya menjalankan ujian kendiri kuasa CMOS/BIOS POST pada perkakasan untuk memeriksa sama ada perkakasan itu normal pada tahap fizikal. Contohnya, semak sama ada cakera keras dipasang dengan betul, dsb.
2) Langkah kedua ialah membaca BootLoader MBR dalam cakera keras dan program permulaan kendiri yang biasa digunakan di bawah Linux ialah GRUB. Fungsi utama langkah ini adalah untuk memuatkan kernel. Kernel disimpan dalam direktori /boot
3) Langkah ketiga ialah proses memuatkan kernel,
Fungsi utama ialah: 1. Perkakasan Drive mengandungi sejumlah besar pemacu. 2. Mulakan proses init.
4) Proses init terutamanya membaca fail /etc/inittab dan melaksanakan tahap larian lalai untuk meneruskan but. Perlu diingatkan bahawa PID init sentiasa 1, yang merupakan proses induk bagi semua proses, manakala proses latar belakang proses init ialah 0, iaitu penjadual kernel.
5)/etc/inittab mentakrifkan operasi pemula.
Format utama arahan ialah: id: runlevels: action: process
Antaranya seperti yang ditunjukkan dalam kotak merah dalam gambar di atas
1. Terdapat 7 peringkat larian, 0-6 adalah seperti berikut:
0 —— hentikan penutupan
1——Mod pengguna tunggal Mod pengguna tunggal
2 - Berbilang pengguna, tanpa mod berbilang pengguna NFS tetapi tanpa rangkaian (mod teks)
3——Mod berbilang pengguna penuh Mod berbilang pengguna berciri penuh (mod teks)
4——terpelihara yang tidak digunakan
5——Mod berbilang pengguna grafik X11
6——but semula
Anda boleh bertukar mengikut 7 tahap berjalan ini
Perintahnya ialah: lihat tahap larian semasa #runlevel, tukar tahap larian #init[0 |1 |2 |3 |4 |5 |6]
1 initdefault: Menentukan tahap permulaan permulaan sistem, seperti yang ditandakan dalam gambar di atas Ia biasanya digunakan untuk pembaikan Contohnya, jika kita ingin memasuki mod pengguna tunggal, kita boleh menetapkannya kepada 1. Kita tidak boleh tetapkan lalai kepada 0 atau 6, jika tidak, ia tidak akan berfungsi.
2sysinit: Sistem mula melaksanakan arahan yang dinyatakan dalam proses
Ia boleh dilihat daripada kandungan fail inittab bahawa tiada tahap larian ditetapkan, yang bermaksud tidak kira tahap larian mana pun, /etc/rc.d/rc.sysinit akan dilaksanakan
6) initdefault, seperti yang dinyatakan dalam langkah 5, terutamanya membaca maklumat dalam /etc/inittab untuk menentukan tahap larian lalai.
7)/etc/rc.d/rc.sysinit
Jalankan ke baris 21 dalam fail inittab untuk memulakan skrip ini. Lengkapkan permulaan program perkhidmatan sistem, seperti menetapkan pembolehubah persekitaran sistem, menetapkan jam sistem, memuatkan fon, menyemak sistem fail yang dimuatkan, menjana fail log maklumat permulaan sistem, dsb. Kerana ia adalah perkhidmatan asas, tahap lariannya ditetapkan kepada kosong: iaitu, mana-mana peringkat, dan tindakan ditetapkan kepada sysinit. Iaitu, skrip mesti dimulakan pada mana-mana peringkat larian untuk melengkapkan permulaan perkhidmatan asas
8) Selepas perkhidmatan asas dimulakan, skrip /etc/rc.d/rc akan dilaksanakan
Selepas memuatkan perkhidmatan asas, anda perlu memulakan direktori yang sepadan mengikut tahap berjalan yang berbeza Prinsip kerjanya adalah untuk terlebih dahulu menentukan tahap larian sistem, iaitu apa yang terdapat dalam langkah 6, dan kemudian melaksanakan rcN yang sepadan skrip permulaan perkhidmatan dalam direktori d adalah seperti yang ditunjukkan dalam rajah
9) Jalankan skrip permulaan perkhidmatan dalam direktori /etc/rc.d/rcN.d
Lihat kandungan direktori ini:
di mana S mewakili skrip yang akan dimulakan, dan K mewakili skrip yang akan ditutup
Angka tersebut menunjukkan urutan permulaan, dengan nilai yang lebih kecil diberi keutamaan Terutamanya untuk pengurusan beberapa perkhidmatan
Dalam langkah ini, anda perlu menerangkan direktori /etc/rc.d/init.d Skrip yang diletakkan dalam direktori ini adalah skrip sebenar, manakala skrip yang diletakkan dalam rcN.d ialah pautan lembut dalam direktori init.d kata lain, semua fail dalam rcN.d akhirnya perlu mencari skrip sebenar dalam init.d
Lihat butiran khusus:
Selepas melaksanakan langkah ini, antara muka akan meminta anda memasukkan nama pengguna dan kata laluan, yang bermaksud bahawa sistem telah bermula Proses memasukkan nama pengguna dan kata laluan akan dibincangkan kemudian
Perkara terakhir yang perlu diberi perhatian ialah idea proses but LINUX adalah lebih kurang sama, tetapi butirannya berbeza dalam nama atau lokasi fail konfigurasi kerana masalah versi versi, tetapi versi Ubuntu tidak mempunyai fail inittab dan fail grup.conf, jadi jika anda berminat, anda boleh mengikuti idea ini untuk meneroka.Artikel ini menganalisis secara terperinci proses but permulaan sistem Linux, termasuk BIOS, MBR, GRUB, initrd, init, dsb. Dengan memahami dan menguasai pengetahuan ini, kita boleh lebih memahami cara kerja dalaman sistem Linux, dan dengan itu menggunakan dan mengoptimumkan sistem Linux dengan lebih baik. Sudah tentu, terdapat banyak butiran dan perubahan dalam proses but permulaan sistem Linux, yang memerlukan kami untuk terus belajar dan meneroka.
Atas ialah kandungan terperinci Analisis proses but permulaan sistem Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!