Wawasan yang mendalam mengenai sistem Ubuntu Linux - adakah kita melihat ini?

Wawasan yang mendalam mengenai sistem Ubuntu Linux - adakah kita melihat ini?

Linux Seperti yang kita tahu adalah kernel dan bukan sistem operasi, kapal dengan beberapa pengagihan seperti: Debian, Fedora, Ubuntu dan lain-lain. dan banyak lagi. Ubuntu OS dibangunkan oleh Mark Shuttleworth terkenal dan digunakan secara meluas oleh banyak. Juga, menjadi sumber percuma dan terbuka versi barunya dibebaskan setiap tahun yang disumbangkan oleh beribu -ribu pemaju yang menyumbang kepada perkembangannya. Tetapi, bagaimana ia berfungsi? Apa semua proses, senarai peristiwa menjadikannya berfungsi dan apakah kepentingan proses ini?

Wawasan Proses Boot Ubuntu

Artikel ini akan membawa anda sedikit jauh ke dalam dalaman Ubuntu OS yang sangat menarik dan akan membantu seorang pemula mempunyai pemahaman yang lengkap mengenai fungsinya.

Berbaring sistem

Linux mempunyai proses untuk berfungsi, setiap perkhidmatan sistem termasuk pengurusan kuasa, boot, pengendalian kemalangan sistem adalah proses yang mempunyai fail konfigurasi dalam "/etc/init"Itu menerangkan peristiwa yang akan dilaksanakan dan peristiwa yang sepadan di mana ia akan menghentikan pelaksanaannya, bersama-sama dengan itu juga mengekalkan fail konfigurasi yang lain yang menggambarkan tingkah laku jangka masa dalam sistem"/dan lain-lain/"Direktori, dengan itu menjadikan sistem sebagai acara yang didorong oleh satu.

Sekiranya ada peristiwa yang dijana maka seseorang harus berada di sana untuk menangkap mereka dan melaksanakannya?? Jelas sekali, pengawal adalah proses utama kami yang wujud sebagai ibu bapa semua proses dengan ID Proses 1 i.e. di dalamnya. Inilah proses yang bermula dengan sistem permulaan dan tidak pernah berhenti. Proses ini hanya mati apabila sistem dikuasai kerana tidak ada proses siapa ibu bapa init.

Versi terdahulu Ubuntu sebelumnya 6.10 Termasuk gaya lama sysvinit yang digunakan untuk menjalankan skrip dalam "/etc/rcx.d"Direktori pada setiap permulaan dan penutupan sistem. Tetapi, selepas itu upstart sistem menggantikan gaya lama sysvinit sistem, tetapi masih memberikan keserasian mundur kepadanya.

Versi Ubuntu terkini mempunyai sistem pendahuluan ini, tetapi sejak evolusinya dari Ubuntu 6.10 ia telah menjadi beberapa semakan versi semasa 1.13.2 Seperti pada 4 September 2014. Sistem upstart terkini mempunyai 2 init proses, satu untuk proses sistem dan lain x-sesi di dalamnya.

Seluruh sistem telah ditetapkan sebagai hierarki, yang terdiri daripada hubungan nenek moyang kanak-kanak sepanjang kuasa sehingga kuasa ke bawah sistem.

Sebagai contoh: Hubungan hierarki kecil antara kedua -dua proses init adalah: sistem init (1) -> Pengurus Paparan (ruang kernel) -> Pengurus Paparan (Ruang Pengguna) -> Pengguna init (atau X-Sesi init).

Fail konfigurasi untuk proses yang diuruskan oleh sistem init tinggal di "/etc/init"Dan bagi mereka yang diuruskan oleh Sesi Init tinggal di"/usr/share/upstart"(Seperti versi awal semasa di atas 1.12) dan fail konfigurasi ini adalah kunci kepada banyak rahsia yang digali mengenai proses seperti yang diterangkan dalam artikel ini.

Semakin mendalam ke dalam hierarki

Ubuntu mengiktiraf dua jenis proses:

  1. Pekerjaan yang pendek (atau pekerjaan kerja-dan-mati).
  2. Pekerjaan lama (atau pekerjaan yang tinggal dan bekerja).

Hierarki yang dibuat pada sistem adalah disebabkan oleh hubungan ketergantungan antara proses yang dapat kita fahami dengan melihat fail konfigurasi mereka. Mari kita mulakan dari hubungan hierarki yang mudah antara proses yang menjadikan sistem itu boot dan memahami kepentingan masing -masing.

Hierarki boot

Di dalamnya adalah proses pertama untuk memulakan kuasa pada sistem dan diklasifikasikan di bawah Kerja-dan-Stay pekerjaan kerana ia tidak pernah dibunuh dan hanya masa yang dibunuh sedang dibunuh.e. init hanya mati dan juga sekali setiap sesi dan yang sedang berkuasa. Semasa berkuasa, init menjana acara pertama di sistem i.e. Acara Permulaan. Setiap fail konfigurasi dalam "/etc/init"Mempunyai dua baris yang menentukan peristiwa yang menyebabkan proses bermula dan berhenti. Garis -garis tersebut diserlahkan dalam angka di bawah:

Hierarki Boot Linux

Ini adalah fail konfigurasi proses Failsafe-X dan ini bermula dan berhenti pada keadaan menggambarkan peristiwa di mana proses akan bermula. Pada penjanaan acara permulaan oleh proses init proses -proses yang mempunyai permulaan sebagai permulaan mereka pada keadaan dilaksanakan secara selari dan ini hanya mentakrifkan hierarki, dan semua proses yang dilaksanakan pada permulaan adalah anak -anak init.

Proses yang bermula pada permulaan disenaraikan sebagai di bawah dan ini adalah pekerjaan kerja-dan-mati:

1. Nama Host - Ini adalah proses yang hanya memberitahu sistem nama hostnya yang ditakrifkan dalam /etc /hostname file.

2. kmod - Memuatkan modul kernel i.e. Semua pemandu dari /etc /modul fail.

3. Mountall - Proses ini menjana banyak peristiwa dan bertanggungjawab terutamanya untuk memouning semua sistem fail pada boot termasuk sistem fail tempatan dan sistem fail jauh.

The /Proc Fail juga dipasang oleh proses ini dan selepas semua kerja pemasangan acara terakhir yang dihasilkan olehnya adalah acara Filesystems yang seterusnya menjadikan hierarki terus berjalan.

4. Plymouth - Proses ini dijalankan pada permulaan Mountall dan bertanggungjawab untuk menunjukkan bahawa skrin hitam yang dilihat pada permulaan sistem yang menunjukkan sesuatu seperti di bawah:

Proses permulaan Linux

5. Plymouth-Ready - Menunjukkan bahawa Plymouth naik.

Berikut adalah proses utama, yang lain yang juga dilaksanakan pada permulaan termasuk, seperti Udev-Fallback-Graphics, dan lain-lain. Kembali ke hierarki boot, secara ringkas peristiwa dan proses yang mengikuti adalah seperti dalam urutan:

1. di dalamnya Bersama dengan penjanaan acara permulaan.

2. Mountall Pemasangan Sistem Fail, Plymouth (bersama-sama dengan permulaan Mountall) memaparkan skrin percikan, dan modul kernel memuat KMOD.

3. sistem-sistem tempatan Acara yang dihasilkan oleh Mountall menyebabkan Dbus dijalankan. (DBUS adalah bas mesej luas sistem yang membuat soket membiarkan proses lain berkomunikasi antara satu sama lain melalui menghantar mesej ke soket ini dan penerima mendengar mesej di soket ini dan menapis yang dimaksudkan untuknya).

4. sistem-sistem tempatan Bersama-sama dengan permulaan DBUS dan acara statik-rangkaian yang disebabkan oleh rangkaian proses yang juga berjalan pada acara Filesystem tempatan menyebabkan pengurus rangkaian dijalankan.

5. Sistem-Filesystem Acara yang dihasilkan oleh Mountall menyebabkan Udev dijalankan. (UDEV adalah pengurus peranti untuk Linux yang menguruskan penambahan peranti panas dan bertanggungjawab untuk membuat fail dalam direktori /dev dan menguruskannya juga.) udev mencipta fail untuk ram, rom dll dalam /dev direktori yang mountall telah selesai pemasangan sistem maya-filesystems dan telah menghasilkan acara maya-filesystem yang menandakan pemasangan /dev direktori.

6. udev Punca Upstart-udev-Bridge berjalan yang menandakan bahawa rangkaian tempatan sudah selesai. Kemudian setelah Mountall selesai memasang sistem fail terakhir dan telah menghasilkan acara sistem fail.

7. sistem fail Acara bersama-sama dengan acara statik-rangkaian menyebabkan kerja RC-Sysinit dijalankan. Di sini, datang keserasian mundur antara Sysvinit yang lebih tua dan upstart ..

9. RC-SYSINIT menjalankan perintah telinit yang memberitahu sistem runlevel.

10. Setelah mendapat runlevel, init melaksanakan skrip yang bermula dengan 'S'Atau'K'(Memulakan pekerjaan yang ada'S'Pada permulaan nama mereka dan membunuh mereka yang mempunyai'K'Pada permulaan nama mereka) di direktori /etc /rcx.D (di mana 'X'adalah runlevel semasa).

Set peristiwa kecil ini menyebabkan sistem bermula setiap kali anda menghidupkannya. Dan, acara ini mencetuskan proses adalah satu -satunya perkara yang bertanggungjawab untuk mewujudkan hierarki.

Sekarang, satu lagi tambahan ke atas adalah penyebab peristiwa. Proses yang menyebabkan peristiwa mana yang juga dinyatakan dalam fail konfigurasi yang sama seperti yang ditunjukkan di bawah dalam baris ini:

Acara proses Linux

Di atas adalah seksyen fail konfigurasi proses mountall. Ini menunjukkan peristiwa yang dipancarkannya. Nama acara adalah satu yang menggantikan perkataan 'peristiwa'. Acara boleh sama ada yang ditakrifkan dalam fail konfigurasi seperti di atas atau boleh menjadi nama proses bersama dengan awalan 'bermula', 'bermula', 'berhenti' atau 'berhenti'.

Jadi, di sini kita menentukan dua istilah:

  1. Penjana acara: Satu yang mempunyai garis 'memancarkan xxx' dalam fail konfigurasinya di mana xxx adalah nama peristiwa yang dimilikinya atau menjana.
  2. Penangkap Acara: Satu yang memulakan atau menghentikan keadaan sebagai xxx atau yang bermula atau berhenti pada acara yang dihasilkan salah satu penjana acara.

Oleh itu, hierarki berikut dan begitu pergantungan antara proses:

Penjana Acara (Ibu bapa) -> Penangkap Acara (Anak) 

Menambah kerumitan ke hierarki

Sehingga sekarang, anda mesti memahami bagaimana hierarki ibu bapa dan anak kebergantungan antara proses ditetapkan oleh peristiwa yang mencetuskan mekanisme melalui mekanisme boot yang sederhana.

Sekarang, hierarki ini tidak pernah menjadi satu-satu hubungan yang hanya mempunyai satu ibu bapa untuk satu anak. Dalam hierarki ini kita mungkin mempunyai satu atau lebih ibu bapa untuk satu anak atau satu proses menjadi ibu bapa lebih dari satu anak. Bagaimana ini dicapai?? Jawapannya terletak pada fail konfigurasi itu sendiri.

Proses Linux

Garis -garis ini diambil dari proses - rangkaian dan di sini permulaan keadaan nampaknya terlalu kompleks terdiri daripada banyak peristiwa iaitu - Sistem-Filesystems, udevtrigger, bekas, Runlevel, rangkaian.

Sistem-Filesystems dipancarkan oleh Mountall, Udevtrigger adalah nama pekerjaan, peristiwa kontena dipancarkan oleh pengesan kontena, runlevel yang dipancarkan oleh rc-sysinit, dan rangkaian sekali lagi adalah pekerjaan.

Oleh itu, dalam hierarki, rangkaian proses adalah anak Mountall, Udevtrigger dan kontena yang mengesan kerana ia tidak dapat meneruskan fungsinya (berfungsi prosesnya adalah semua baris yang ditakrifkan di bawah skrip atau seksyen EXEC dalam fail konfigurasi) Sehingga proses di atas menjana acara mereka.
Begitu juga, kita boleh mempunyai satu proses menjadi ibu bapa yang banyak jika peristiwa yang dihasilkan oleh satu proses di -cache oleh banyak.

Membezakan jenis pekerjaan

Seperti yang ditakrifkan sebelum ini, kita boleh hidup pendek (atau kerja-dan-mati pekerjaan) atau lama hidup (atau tinggal dan bekerja) pekerjaan tetapi bagaimana membezakan antara mereka??

Pekerjaan yang mempunyai kedua -duanya 'mulakan'Dan'Berhenti'syarat yang dinyatakan dalam fail konfigurasi mereka dan mempunyai kata'tugas'Dalam fail konfigurasi mereka adalah kerja-dan-mati Pekerjaan yang bermula pada acara yang dihasilkan, melaksanakan bahagian skrip atau eksekutif mereka (semasa melaksanakan, mereka menyekat peristiwa yang menyebabkan mereka) dan mati kemudian melepaskan peristiwa -peristiwa yang mereka disekat.

Pekerjaan yang tidak mempunyai 'Berhenti'Keadaan dalam fail konfigurasi mereka lama hidup atau tinggal dan bekerja pekerjaan dan mereka tidak pernah mati. Sekarang pekerjaan yang tinggal dan bekerja dapat diklasifikasikan lagi sebagai:

  1. Mereka yang tidak mempunyai keadaan respawn dan boleh dibunuh oleh pengguna akar.
  2. Mereka yang mempunyai keadaan respawn dalam fail konfigurasi mereka dan sehingga mereka dimulakan semula setelah dibunuh kecuali kerja mereka selesai.

Kesimpulan

Oleh itu, setiap proses di Linux bergantung kepada beberapa dan mempunyai beberapa proses yang bergantung kepadanya dan hubungan ini banyak pada banyak dan ditentukan dengan sistem upstart bersama -sama dengan butiran lain mengenai proses tersebut.