Mengapa kita perlu boot loader?


29

Setelah BIOS, atau sesuatu yang serupa yang berfungsi sebagai firmware, dimulai, kontrol dilewatkan ke bootloader, sejauh yang saya tahu.

Mengapa BIOS tidak dapat memuat kernel OS secara langsung?

Juga, manual GRUB mengatakan: secara singkat, boot loader adalah program perangkat lunak pertama yang berjalan ketika komputer dijalankan . Bukankah BIOS program pertama yang berjalan?


Jawaban:


28

BIOS perlu tahu cara memuat kernel, dan ini akan membuat BIOS terlalu rumit: bayangkan BIOS yang perlu tahu cara memuat berbagai sistem operasi yang tersedia, cara menyampaikan parameter kernel kepada mereka dll ...

Dengan demikian, ini hanya menginisialisasi perangkat keras dan melompat ke tempat yang dikenal di mana bootloader disimpan; kemudian, kontrol diteruskan ke sana.

Dari The Unix dan Fundamentals Internet HOWTO :

Anda mungkin bertanya-tanya mengapa BIOS tidak memuat kernel secara langsung - mengapa proses dua langkah dengan boot loader? Yah, BIOS tidak terlalu pintar. Sebenarnya itu sangat bodoh, dan Linux tidak menggunakannya sama sekali setelah waktu boot. Awalnya ditulis untuk PC 8-bit primitif dengan disk kecil, dan secara harfiah tidak dapat mengakses cukup disk untuk memuat kernel secara langsung. Langkah boot loader juga memungkinkan Anda memulai salah satu dari beberapa sistem operasi dari berbagai tempat pada disk Anda, seandainya Unix tidak cukup baik untuk Anda.

Adapun BIOS menjadi program pertama yang berjalan: (dari Wikipedia )

Perangkat lunak BIOS dibangun ke dalam PC, dan merupakan kode pertama yang dijalankan oleh PC saat dinyalakan ('boot firmware').

Tetapi firmware adalah perangkat lunak. Jadi saya akan menganggap manual GRUB setidaknya membingungkan pada bagian itu; bootloader dapat dilihat sebagai perangkat lunak yang ditentukan pengguna pertama yang berjalan pada komputer.


10

Alasannya adalah fleksibilitas. Anda mungkin memiliki beberapa OS berbeda pada satu hard disk (Windows, Linux, dll.), Atau Anda mungkin memiliki beberapa versi berbeda dari OS yang sama. Oleh karena itu, lebih baik untuk memiliki sepotong kode independen-OS yang tahu di mana setiap OS yang diinstal pada hard disk berada, bagaimana memuat masing-masing, yang mana untuk memuat, apakah akan menyajikan menu atau tidak, dll. Ini adalah sebuah bootloader.

BIOS memuat dan mengeksekusi kode yang terletak di lokasi yang telah ditentukan pada hard disk (sektor pertama). Kami menyebut kode ini sebagai bootloader, tetapi secara teknis jika Anda menginstal Windows pada hard disk kosong, kode ini juga diinstal oleh Windows, sehingga Anda dapat menyebutnya sebagai bagian dari Windows, terutama karena bootloader Windows tidak dapat memuat OS lain selain Windows.

Mengenai program perangkat lunak pertama yang berjalan ketika komputer mulai: perbedaan firmware / perangkat lunak cukup tipis, dan proses startup komputer modern sangat rumit. BIOS itu sendiri juga bukan program monolitik, tetapi beberapa tahapan berbeda dirantai bersama. Namun, bootloader adalah kode yang dapat diubah pengguna yang berjalan. Ini adalah bagian pertama dari kode yang dapat merusak, menghapus, menginfeksi virus oleh pengguna, dll. Jadi saya kira sementara secara teknis BIOS adalah perangkat lunak pertama yang berjalan, bootloader adalah yang pertama dalam arti bahwa jika komputer tidak mem-boot kebutuhan pengguna untuk memeriksa apakah tidak apa-apa.


1
Dari pengalaman, pengguna tentu saja bisa merusak BIOS.
Stop Harming Monica

2

Mengapa BIOS tidak dapat memuat kernel OS secara langsung?

Tiga alasan:

  • BIOS pada platform PC asli ketika diperkenalkan pada tahun 1981 dimaksudkan untuk berfungsi dalam peran yang sama seperti pada sistem operasi CP / M - yaitu, lapisan abstraksi tipis untuk beberapa perangkat dan bootloader disk sederhana. CP / M memiliki lapisan lain yang disebut "BDOS" yang menangani sistem file. DOS mirip dengan CP / M dalam banyak hal karena itu adalah sistem operasi dalam mode pada saat itu, dan terstruktur sama. BIOS dimaksudkan untuk menangani aspek spesifik perangkat keras dari platform, peran yang dipenuhi oleh driver di OS sekarang.

  • Gagasan sistem file sebagai terpisah dari OS belum benar-benar bertahan.

  • Pada saat ini, RAM dan ROM adalah sumber daya yang mahal dan langka. IBM 5150 PC asli dapat diperoleh dengan hanya 16K RAM ( referensi ). Ukuran ROM sistem ini adalah 48K dan itu termasuk penerjemah BASIC. Tidak ada yang namanya sistem file standar pada waktu itu.

Sejak DOS tumbuh menjadi OS paling populer untuk platform ini, dan Windows setelahnya, yang bekerja dengan pengaturan ini, tidak ada yang berpikir untuk memperluas BIOS dengan cara ini untuk memasukkan kemampuan bootloading yang nyata.

Saya tidak yakin dengan kemampuan UEFI - mungkin memiliki kemampuan bootloading nyata yang tidak digunakan oleh Windows karena satu dan lain hal (Windows bersikeras untuk menggunakan boot manager sendiri ketika Anda menginstalnya). Firmware non-BIOS lainnya seperti U-Boot dan yang ada di banyak ponsel dan router memuat dan menjalankan kernel secara langsung. Belum ada alasan teknis untuk itu sejak ketika BIOS mulai memiliki ruang dalam ROM untuk melakukan lebih banyak hal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.