Linux Init Process
B. Linux Init Process
SysV init atau systemd: Linux dan Unix SysV warisan dimulai dengan proses "sysvinit" yang menggunakan / etc / file konfigurasi inittab untuk mendorong pelaksanaan skrip init dan konfigurasi terminal dan GUI interface. SysV init meluncurkan skrip dan "daemon" proses satu per satu, agar run level yang diberikan ditemukan di /etc/rc.#/ (Dimana # adalah nomor run level 0-6). Systemd digunakan di versi Linux (Fedora 15 +, RHEL 7, OpenSUSE 12.1+, ...) yang kompatibel dengan Unix SysV dan Linux Standard Base (LSB) skrip init. Systemd mendukung paralelisasi (boot lebih cepat), manajemen soket, proses pelacakan, pemasangan sistem berkas dan kontrol layanan berbasis ketergantungan. proses daemon dikategorikan menjadi "cgroups" yang telah dikategorikan batas sumber daya. Ubuntu 12.04+, 14,04 menggunakan sistem hybrid yang disebut kaya baru yang mencakup SysV runlevel skrip mulai spesifik di /etc/rc.#/ tetapi script juga systemd untuk layanan-layanan yang sudah dikirimkan dalam / lib / systemd / sistem /. Lihat "man 7 kaya baru-peristiwa" untuk rincian. Peluncuran proses: Proses init adalah langkah terakhir pada prosedur boot dan diidentifikasi sebagai process "1". Init bertanggung jawab untuk memulai proses sistem seperti yang didefinisikan di: Sistem SysV seperti RHEL 1-6, Fedora 1-14: / etc / inittab Systemd Fedora 15 +: /lib/systemd/system/default.target (ini adalah link simbolik) Dan file di / etc / systemd / sistem / dan / lib / systemd / sistem /Init biasanya memulai beberapa contoh dari "getty" yang menunggu layar login yang menandakan proses shell seorang user. Setelah shutdown, init mengontrol urutan dan proses untuk shutdown. Proses init tidak pernah ditutup. Ini adalah proses pengguna dan bukan proses sistem kernel meskipun dijalankan sebagai root.
Proses sistem: proses ID Deskripsi
0 Scheduler
1 Proses init
init systemd: Systemd menjadi default sistem init untuk Linux dan telah membawa perubahan berikut: Boot script di / etc / systemd / sistem / dan / lib / systemd / sistem / Perintah layanan kontrol:
o Fedora 15 +: systemctl o Ubuntu 12.04+, 14,04: initctl
Daftar initctl: Daftar semua layanan sistem dan negara mereka saat ini.
initctl stop service-nama: Menghentikan layanan tertentu. Lihat "daftar" di atas untuk daftar nama. Memerlukan dukungan kernel: (Kernel opsi kompilasi config)
o CONFIG_DEVTMPFS = y o CONFIG_CGROUPS = y o CONFIG_AUTOFS4_FS = [y | m]
Baris perintah kernel di GRUB akan mencakup "init = / bin / systemd" Gnome Desktop D-Bus ketergantungan pada systemd SysV init: Init file konfigurasi (Red Hat EL6): / etc / inittab
id: 3: initdefault:
Init file konfigurasi (Red Hat 7,3-9,0, Fedora 1-14, RHEL5): / etc / inittab id: 3: initdefault:
# Sistem inisialisasi. si :: sysinit: /etc/rc.d/rc.sysinit l0: 0: menunggu: /etc/rc.d/rc 0 l1: 1: menunggu: /etc/rc.d/rc 1 l2: 2: menunggu: /etc/rc.d/rc 2 l3: 3: menunggu: /etc/rc.d/rc 3 l4: 4: menunggu: /etc/rc.d/rc 4 l5: 5: menunggu: /etc/rc.d/rc 5 l6: 6: menunggu: /etc/rc.d/rc 6
# Hal yang berjalan di setiap runlevel. Baris ini hanya di Red Hat 7.X Digunakan untuk flush buffer disk. ud :: sekali: / sbin / update
# Perangkap CTRL-ALT-DELETE
ca :: ctrlaltdel: / sbin / shutdown -T3 r now
# Ketika UPS kita mengatakan kekuasaan telah gagal, jadwal shutdown selama 2 menit dari sekarang. pf :: powerfail: / sbin / shutdown -f -h +2 "Power Kegagalan; Sistem Dimatikan"
# Jika daya dipulihkan sebelum shutdown menendang, membatalkannya. pr: 12345: powerokwait: / sbin / shutdown -c "Power Restored; Shutdown Dibatalkan"
# Jalankan Gettys di runlevel standar
1: 2345: respawn: / sbin / mingetty tty1
2: 2345: respawn: / sbin / mingetty tty2
3: 2345: respawn: / sbin / mingetty tty3
4: 2345: respawn: / sbin / mingetty tty4
5: 2345: respawn: / sbin / mingetty tty5
6: 2345: respawn: / sbin / mingetty tty6
# Run xdm di runlevel 5 x: 5: respawn: / etc / X11 / prefdm -nodaemon
Perhatikan bahwa file konfigurasi ini mengarahkan proses init untuk menjalankan /etc/rc.d/rc.sysinit shell script. Script ini harus digunakan sebagai adalah dan tidak berubah. Memperpanjang rc.local dan TIDAK script ini. Ini akan (tidak dalam urutan yang tepat): Jalankan / sbin / initlog (depricated setelah RHEL5) devfs dijalankan untuk menghasilkan / mengelola perangkat sistem Menjalankan script jaringan: / etc / sysconfig / network Mulai boot grafis (Jika demikian dikonfigurasi): rhgb (RHEL5) rhgb dimulai oleh initscripts yang mendorong proses boot, hanya setelah deteksi perangkat (diperlukan misalnya untuk mendapatkan setidaknya perangkat input yang diperlukan untuk X diakui) tapi sebelum filesystem diperiksa atau dipasang. Rhgb dimulai dari /etc/rc.sysinit secepat deteksi perangkat dilakukan, dan jika biner ditemukan. Pada saat itu hanya filesystem root mount, read-only dan kita akan menjalankan pemeriksaan fsck pada filesystem. Jika / usr tidak hadir dari jika rhgb tidak dapat memulai X awal adalah retryed kemudian setelah filesystem telah dipasang. Untuk memastikan X dimulai pada lingkungan di mana ia sedang dikonfigurasi dengan benar kita periksa bahwa init bawaan dari / etc / inittab adalah 5 atau tingkat init disahkan pada baris perintah. X dan rhgb membutuhkan filesystem ditulis untuk mengekspor saluran komunikasi dengan proses
boot. Untuk melakukan memori kecil filesystem sementara ini dipasang di bawah / etc / rhgb / temp pertama. Juga memungkinkan komunikasi di tingkat X, jaringan loopback perangkat lo0 juga dimulai dan diinisialisasi sebelum menjalankan X. Setelah kedua filesystem dan lo0 siap / usr / bin / X11 / X mulai menggunakan vt8 dan display: 1 (tidak : 0 untuk memungkinkan menghaluskan transisi dari X server sementara untuk satu mulai ketika akan multiuser). Setelah X berhasil dimulai, kode grafis instanciates tampilan sederhana dengan progress bar dan tampilan rinci menggunakan widget vte. Jika file konfigurasi /etc/rhgb/xorg.conf khusus untuk X di bawah rhgb disediakan maka akan diteruskan ke baris perintah X untuk memungkinkan konfigurasi spesifik untuk booting X. Mulai konsol terminal, beban keymap, font sistem dan cetak konsol ucapan:
setsysfonts Berbagai sesi konsol virtual dapat dilihat dengan kunci-stroke: o RHEL6: ctrl-alt-F2 melalui F7. F1 dicadangkan untuk layar GUI dipanggil di run level 5. o Sistem yang lebih tua: ctrl-alt-F1 melalui F6. F7 dicadangkan untuk layar GUI dipanggil di run level 5. Mount / proc dan mulai pengendali perangkat. Dilakukan dengan konfigurasi boot untuk root drive. ( Initrd ) Unmount root drive. Re-mount sistem file root baca / tulis Kernel
mingetty ,
kernel beban dan modul: sysctl , depmod , modprobe Mengatur Jam: / etc / sysconfig / jam Lakukan operasi disk berdasarkan konfigurasi fsck Periksa / mount / cek / mengaktifkan kuota non-root sistem file: fsck , gunung , quotacheck , quotaon Menginisialisasi manajemen volume logis: vgscan , / etc / lvmtab Aktifkan syslog, menulis ke file log: dmesg
langsung
ke
parameter
Aktifkan PAM Aktifkan swapping: swapon Proses boot sistem lokal dapat ditempatkan dalam file: /etc/rc.d/rc.local Sistem kemudian akan boot ke runlevel yang ditetapkan oleh initdefault direktif. Juga lihat: init halaman manual inittab halaman manual