Proses Linux Booting

Posting Komentar

Ikhtisar

Ketika sistem pertama kali boot, atau reset, prosesor menjalankan source di lokasi yang dikenali. dalam sebuah pc, lokasi ini berada di BIOS (Basic Input/Output System), yang disimpan dalam memori flash pada motherboard. CPU dalam sebuah sistem embedded memanggil vektor reset untuk memulai sebuah program di sebuah alamat yang dikenal di flash/ROM.

Ketika boot device ditemukan, first-stage bootloader (MBR) akan dimuat ke dalam RAM dan akan dieksekusi. panjang bootloader ini kurang dari 512 byte (single sector). dan pekerjaan ini akan memuat second bootloader.

Ketika second-stage bootloader dalam RAM dan dieksekusi, sebuah splash screen akan ditampilkan, Linux dan initial RAM disk optional (temporary root filesystem) akan dimuat ke dalam memory. ketika images dimuat, second-stage bootloader akan melewati kontrol kernel image dan kemudian kernel akan didikompresi dan diinisialisasi. pada tahap ini, second-stage bootloader akan memeriksa sistem hardware, merinci hardware yang terpasang, memasang root device, dan kemudian memuat modul-modul kernel yang diperlukan. ketika selesai, program pertama yang akan dijalankan adalah first-user space (init), dan high level system akan dilakukan inisialisasi.

Stage 1 bootloader (First-Stage BootLoader)

primary bootloader ini berada di MBR, keduanya adalah sebuah image yang mempunyai ukuran 512 byte yang memuat kode program dalam sebuah tabel partisi kecil (MBR). MBR ini terdiri dari 3 bagian, yaitu yang pertama primary bootloader yang mempunyai ukuran 446 byte, yang berisi kode eksekusi dan error message text. bagian yang kedua mempunyai ukuran 64 byte yang berisi tentang daftar dan catatan 4 tabel partisi, yang masing-masing tabel mempunyai ukuran 16 byte. bagian terakhir dari MBR ini berukuran 2 byte yang di definisikan sebagai magic number (0xAA55), bagian ini berfungsi untuk memeriksa validasi dari MBR.

Tugas dari bootloader ini adalah untuk menemukan dan memuat second-bootloader, hal ini dapat dilihat dari tabel partisi untuk partisi aktif, ketika menemukan sebuah partisi yang aktif, bootloader ini akan men-scan semua partisi yang lain dan memastikan bahwa semua partisi tersebut tidak aktif. ketika di verifikasi, boot record akan membaca dari boot device ke dalam RAM dan mengeksekusinya.

Stage 2 bootloader (Second-Stage Bootloader)

pada tahap ini, bootloader bisa lebih tepat disebut loader kernel. Tugas pada tahap ini adalah untuk memuat kernel linux dan inisial RAM disk. tahap pertama dan kedua yang digabungkan disebut juga dengan Linux Loader (LiLo) atau GRand Unified Bootloader (GRUB) di lingkungan PC x86. karena LiLo memiliki beberapa kekurangan yang diperbaiki oleh GRUB.

Kernel

dengan kernel image dalam memori dan kontrol yang diberikan dari stage 2 bootloader, tahap kernel dimulai. tidak begitu banyak image kernel yang dieksekusi, tapi kernel image ini biasanya terkompresi. biasanya kompresi ini adalah berbentuk zImage (image terkompresi, yang kurang dari 512KB) atau bzImage (kompresi image kernel besar, lebih besar dari 512KB), yang sebelumnya telah dikompresi oleh zlib. diatas image kernel ini adalah sebuah routine yang jumlah minimalnya tidak seberapa besar dari pengaturan perangkat keras, yang kemudian dilakukan dekompresi kernel yang terkandung dalam image kernel ke dalam alamat-alamat pada high memori. jika image initial RAM disk menunjukkan routine ini ke dalam memori dan catatan untuk digunakan kemudian, routine kemudian memanggil kernel, dan boot kernel dimulai.

Init

Setelah kernel di boot dan diinisialisasi, kernel memulai aplikasi first-user space. ini adalah program pertama yang dipanggil dan dikompilasi dengan pustaka C standar. sebelum titik ini dalam proses ada aplikasi standar C yang telah dikerjakan. dalam sistem linux desktop, apliasi yang dimulai pertama kali biasanyua /sbin/init.

Kesimpulan:

proses boot linux sangat flexibel, mendukung sebagian besar prosesor dan platform perangkat keras. pada awalnya, loadlin bootloader menyediakan cara sederhana untuk mem-boot linux tanpa tahap tambahan. bootloader LiLo memperluas kemampuan boot, tetapi bootloader ini memiliki banyak kekurangan terhadap kapabilitas filesistem. generasi terbaru dari bootloader, seperti GRUB memberikan peluang kepada Linux untuk melakukan boot dari berbagai filesistem (dari minix ke Raiser).

Ketika boot device ditemukan, first-stage bootloader (MBR) akan dimuat ke dalam RAM dan akan dieksekusi. panjang bootloader ini kurang dari 512 byte (single sector). dan pekerjaan ini akan memuat second bootloader.

Ketika second-stage bootloader dalam RAM dan dieksekusi, sebuah splash screen akan ditampilkan, Linux dan initial RAM disk optional (temporary root filesystem) akan dimuat ke dalam memory. ketika images dimuat, second-stage bootloader akan melewati kontrol kernel image dan kemudian kernel akan didikompresi dan diinisialisasi. pada tahap ini, second-stage bootloader akan memeriksa sistem hardware, merinci hardware yang terpasang, memasang root device, dan kemudian memuat modul-modul kernel yang diperlukan. ketika selesai, program pertama yang akan dijalankan adalah first-user space (init), dan high level system akan dilakukan inisialisasi.

Mari kita gali lebih dalam beberapa detail proses linux booting.

Stage 1 bootloader (First-Stage BootLoader)

Primary bootloader ini berada di MBR, keduanya adalah sebuah image yang mempunyai ukuran 512 byte yang memuat kode program dalam sebuah tabel partisi kecil (MBR). MBR ini terdiri dari 3 bagian, yaitu yang pertama primary bootloader yang mempunyai ukuran 446 byte, yang berisi kode eksekusi dan error message text. bagian yang kedua mempunyai ukuran 64 byte yang berisi tentang daftar dan catatan 4 tabel partisi, yang masing-masing tabel mempunyai ukuran 16 byte. bagian terakhir dari MBR ini berukuran 2 byte yang di definisikan sebagai magic number (0xAA55), bagian ini berfungsi untuk memeriksa validasi dari MBR.

Tugas dari bootloader ini adalah untuk menemukan dan memuat second-bootloader, hal ini dapat dilihat dari tabel partisi untuk partisi aktif, ketika menemukan sebuah partisi yang aktif, bootloader ini akan men-scan semua partisi yang lain dan memastikan bahwa semua partisi tersebut tidak aktif. ketika di verifikasi, boot record akan membaca dari boot device ke dalam RAM dan mengeksekusinya.

Stage 2 bootloader (Second-Stage Bootloader)

Pada tahap ini, bootloader bisa lebih tepat disebut loader kernel. Tugas pada tahap ini adalah untuk memuat kernel linux dan inisial RAM disk. tahap pertama dan kedua yang digabungkan disebut juga dengan Linux Loader (LiLo) atau GRand Unified Bootloader (GRUB) di lingkungan PC x86. karena LiLo memiliki beberapa kekurangan yang diperbaiki oleh GRUB.

Kernel

Dengan kernel image dalam memori dan kontrol yang diberikan dari stage 2 bootloader, tahap kernel dimulai. tidak begitu banyak image kernel yang dieksekusi, tapi kernel image ini biasanya terkompresi. biasanya kompresi ini adalah berbentuk zImage (image terkompresi, yang kurang dari 512KB) atau bzImage (kompresi image kernel besar, lebih besar dari 512KB), yang sebelumnya telah dikompresi oleh zlib. diatas image kernel ini adalah sebuah routine yang jumlah minimalnya tidak seberapa besar dari pengaturan perangkat keras, yang kemudian dilakukan dekompresi kernel yang terkandung dalam image kernel ke dalam alamat-alamat pada high memori. jika image initial RAM disk menunjukkan routine ini ke dalam memori dan catatan untuk digunakan kemudian, routine kemudian memanggil kernel, dan boot kernel dimulai.

Init

Setelah kernel di boot dan diinisialisasi, kernel memulai aplikasi first-user space. ini adalah program pertama yang dipanggil dan dikompilasi dengan pustaka C standar. sebelum titik ini dalam proses ada aplikasi standar C yang telah dikerjakan. dalam sistem linux desktop, apliasi yang dimulai pertama kali biasanya /sbin/init.

Kesimpulan:

proses boot linux sangat flexibel, mendukung sebagian besar prosesor dan platform perangkat keras. pada awalnya, loadlin bootloader menyediakan cara sederhana untuk mem-boot linux tanpa tahap tambahan. bootloader LiLo memperluas kemampuan boot, tetapi bootloader ini memiliki banyak kekurangan terhadap kapabilitas filesistem. generasi terbaru dari bootloader, seperti GRUB memberikan peluang kepada Linux untuk melakukan boot dari berbagai filesistem (dari minix ke Raiser).

Semoga bermanfaat… :)

Sumber: http://ibm.co/hh8URQ


Related Posts

Posting Komentar