Mengapa komputer harus memiliki BIOS?

35

Perangkat lunak BIOS dibangun ke dalam PC, dan merupakan kode pertama yang dijalankan oleh PC saat dinyalakan ('boot firmware'). Ketika PC dinyalakan, pekerjaan pertama untuk BIOS adalah uji daya sendiri, yang menginisialisasi dan mengidentifikasi perangkat sistem seperti CPU, RAM, kartu tampilan video, keyboard dan mouse, drive hard disk, drive disk optik dan perangkat keras lainnya. BIOS kemudian menempatkan perangkat lunak boot loader yang dipegang pada perangkat periferal (ditetapkan sebagai 'perangkat boot'), seperti hard disk atau CD / DVD, dan memuat serta menjalankan perangkat lunak itu, memberikannya kendali atas PC. [2] Proses ini dikenal sebagai booting, atau booting, yang merupakan kependekan dari bootstrap.

Persyaratan apa yang menentukan bahwa sistem komputer harus memiliki BIOS yang diinstal di atasnya?

Mengapa Sistem Operasional tidak bisa melakukan semua pekerjaan BIOS?

Diogo
sumber
40
Mengapa mesin mobil membutuhkan starter? Bukankah mesin harus cukup kuat untuk memulai sendiri?
Der Hochstapler
4
@ OliverSalzburg ini akan dimungkinkan dalam waktu dekat, mesin gas tanpa starter. Dengan injeksi langsung dan komputer itu mudah.
Moab
2
Mereka sudah memiliki mesin yang dapat dinyalakan sendiri, tetapi kebanyakan mereka adalah mesin 12+ silinder atau rotari. Kebanyakan mesin tidak dapat memulai sendiri hanya karena mereka tidak dapat menghasilkan daya yang cukup dalam satu powerstroke untuk mengatasi momen inersia-nya. Injeksi langsung dan pengaturan waktu yang lebih baik mungkin sedikit membantu, tetapi Anda benar-benar memerlukan mesin yang lebih ringan untuk meningkatkan rasio antara energi yang dihasilkan dalam powerstroke dengan momen intertia yang diciptakan oleh roda gila, poros engkol, roda gigi, dll.
Lèse majesté
5
Sebenarnya, BIOS dalam arti PC TIDAK diperlukan. Komputer IBM System / 360 dan / 370 (dan mungkin versi yang lebih baru) memulai dengan instruksi tunggal yang membaca catatan tunggal dari perangkat yang dipilih dengan cepat di konsol. Catatan itu berisi program bootstrap (harus muat dalam 80 byte - satu kartu berlubang) yang memuat program bootstrap yang lebih kompleks, yang memuat OS dari disk. Saya kira 'BIOS' adalah instruksi tunggal yang dirancang untuk dijalankan ketika Anda menekan tombol kanan (disebut IPL atau beban program awal).
Ex Umbris
2
Anda membingungkan "komputer" dan "PC" dalam pertanyaan Anda. Itu sebabnya jawabannya membingungkan dan terkadang bertentangan.
rds

Jawaban:

41

BIOS adalah perangkat keras yang bergantung pada kode yang disimpan pada motherboard itu sendiri. Setiap motherboard yang berbeda memerlukan BIOS khusus yang ditulis untuknya, sehingga tidak mungkin memiliki BIOS generik / OS all-in-one (walaupun BIOS secara teknis hanya kode yang disimpan, sehingga Anda secara teoritis dapat menulis OS untuk satu motherboard tertentu) . Seperti yang Anda sebutkan, tujuan BIOS adalah untuk melakukan hal berikut:

Ketika PC dinyalakan, pekerjaan pertama untuk BIOS adalah uji daya sendiri, yang menginisialisasi dan mengidentifikasi perangkat sistem seperti CPU, RAM, kartu tampilan video, keyboard dan mouse, drive hard disk, drive disk optik dan perangkat keras lainnya.

Perhatikan bahwa Anda masih dapat memulai komputer tanpa penyimpanan eksternal - itulah sebabnya BIOS merupakan persyaratan untuk komputer. Dengan kata lain, BIOS menyediakan antarmuka perangkat lunak umum untuk memungkinkan program komputer yang tersimpan untuk berkomunikasi dengan berbagai perangkat perangkat keras yang terhubung ke motherboard.

Sebagai contoh, jika saya memiliki dua motherboard yang berbeda dengan dua pengontrol SATA yang berbeda, BIOS memungkinkan saya untuk menulis sepotong kode yang dapat bekerja dengan keduanya, tanpa sepengetahuan saya bagaimana motherboard sebenarnya mengirimkan perintah ke perangkat SATA. Saya hanya perlu memberi tahu komputer "baca sektor X dari perangkat SATA ini", dan BIOS bertanggung jawab untuk benar-benar mengirim perintah-perintah itu ke perangkat keras.

Di mana ia mendapatkan informasi "read sector X" adalah program tersimpan yang terdapat dalam BIOS, yang biasanya mengarahkan komputer untuk mulai membaca dari bootloader yang disimpan di lokasi umum. Lokasi-lokasi umum ini disepakati oleh berbagai pengembang perangkat lunak dan perangkat keras, dan biasanya disediakan untuk umum untuk memungkinkan lebih banyak kompatibilitas antar sistem.

Setelah tingkat dasar antarmuka (sekali lagi, antarmuka logis melalui perangkat lunak) ditetapkan, sistem operasi itu sendiri membangun antarmuka umum dengan berbagai perangkat perangkat keras Anda (biasanya dengan menggunakan "driver perangkat"), dan sistem operasi kemudian dapat mengontrol perangkat keras.


Akhirnya, perlu dicatat bahwa BIOS juga digunakan untuk membuat modifikasi pada konfigurasi perangkat keras komputer, dan menyimpannya di EEPROM on-board (jadi komputer Anda mengingat perubahan saat Anda memulai kembali). Namun, seperti yang saya nyatakan sebelumnya, begitu sistem operasi dimuat, ia memiliki kendali penuh atas komputer.

Hal ini memungkinkan produsen motherboard untuk mengembangkan perangkat lunak yang memungkinkan Anda untuk membuat perubahan ini dari dalam sistem operasi Anda, sebagai lawan harus reboot ke BIOS. Sekali lagi, ini sangat tergantung pada perangkat keras dan lunak, tetapi menunjukkan bahwa semua antarmuka komputer adalah relatif. BIOS persis seperti namanya - sistem input / output dasar, untuk memungkinkan antarmuka perangkat lunak umum untuk program yang lebih maju ("sistem operasi") untuk mengendalikan mesin.

Penerobosan
sumber
2
Saat Anda memulai komputer, BIOS berjalan sebagai kode mesin pada prosesor. Anda dapat menganggapnya seperti itu tetapi tidak benar-benar "dimatikan" dalam arti - hanya beralih untuk menjalankan OS. Ketika Anda memulai komputer, BIOS memberi tahu komputer untuk mulai mengeksekusi kode mesin yang disimpan di lokasi X. Masukkan istilah yang lebih umum, BIOS hanya menginisialisasi perangkat keras Anda, dan mengarahkan komputer ke mana Anda dapat melanjutkan menjalankan kode.
Terobosan
13
BIOS / OS all-in-one TIDAK mustahil. Saya tidak tahu mengapa semua orang di sini terus mengatakan ini. Memiliki setiap bagian pada perangkat / penyimpanan terpisah tidak berarti mereka bukan bagian dari entitas logis yang sama. Komputer sebelum PC IBM memiliki all-in-one, yaitu, BIOS dibuat dan dikembangkan oleh yang sama yang mengembangkan kernel OS. Bahkan pembaruan OS terkadang termasuk pembaruan BIOS.
m0skit0
3
@Liver Sebenarnya, dengan ACPI, fungsi BIOS secara rutin digunakan setelah OS boot.
derobert
1
BIOS memungkinkan OS (lapisan perangkat lunak) untuk berinteraksi dengan perangkat keras. BIOS dan OS memiliki tujuan berbeda. Mereka adalah dua bagian dari keseluruhan. Seseorang tidak menggantikan yang lain.
Ben Richards
1
@Breakthrough: tergantung pada siapa yang memproduksi perangkat keras;) Dalam kasus PC IBM, evolusi logis adalah produsen BIOS dan OS independen karena banyaknya jenis perangkat keras. Ini tidak terjadi di masa lalu. Inilah sebabnya mengapa PC adalah revolusi (beruntung, kecuali karena memiliki M $ di dalamnya tanpa alasan ...) yang mengubah seluruh pasar komputasi.
m0skit0
7

Sistem operasi Anda ada di hard disk Anda, jika Anda menyalakan komputer Anda itu tidak akan secara ajaib mulai membaca dari hard disk itu. Ini adalah BIOS yang memuat boot loader dari hard disk , serta melakukan beberapa pengujian dan memungkinkan Anda untuk mengonfigurasi pengaturan BIOS tertentu.

OS Anda tidak dapat melakukan itu karena ada di hard disk dan bukan di ROM Anda.

Karenanya, Anda memerlukan BIOS atau teknologi serupa (tetapi berbeda) seperti EFI ...

Dimungkinkan untuk menempatkan bagian dari OS pada ROM (bertanggung jawab untuk memuat boot loader OS) oleh pabrikan; namun, ini tidak berlaku secara luas dan tetap ada BIOS atau EFI.

Tamara Wijsman
sumber
1
Anda mencampur dua konsep yang berbeda. BIOS tidak tergantung dari OS, artinya, BIOS bisa menjadi bagian dari OS. Misalnya jika itu dibuat oleh pabrikan yang sama dan hanya berfungsi dengan OS itu, seperti bootstrappers konsol game.
m0skit0
5
"BIOS tidak tergantung pada OS, artinya, BIOS bisa menjadi bagian dari OS." Hah? Kontradiksi sangat kontradiktif, lol.
Terobosan
2
Konsol game adalah komputer, begitu juga Atari, Amiga, dan Mac lama, jadi ini sangat relevan. @Breakthrough: itu tidak bertentangan. Ini berarti BIOS tidak ada hubungannya dengan OS, dan dengan demikian, dapat menjadi bagian (atau tidak) dari itu.
m0skit0
@ TomWijsman Anda satu-satunya yang memancing di sini. Konsol game adalah bagian dari komputer. Jika mungkin bagi beberapa konsol untuk melakukannya, maka itu mungkin untuk beberapa komputer. Juga, jangan gunakan huruf tebal saja. Itu tidak pantas.
luiscubal
1
@ TomWijsman ada benarnya, jika konsol game bisa melakukannya, maka begitu pula komputer. Juga, selama itu bukan pertanyaan atau jawaban, saya tidak melihat masalah dengan itu di luar topik. Komentar adalah komentar, setelah semua; tidak lebih, tidak kurang. (Tidak ada komentar tentang masalah yang berani - untuk masing-masing tentang itu, meskipun itu lebih berkaitan dengan terminologi.)
Terobosan
6

Tidak ada alasan logis yang nyata. Ini lebih merupakan masalah warisan dan sejarah.

  1. Tidak ada persyaratan bahwa komputer harus memiliki BIOS yang diinstal. Ini warisan dari PC IBM. Meskipun ini terbukti merupakan ide yang bagus

  2. Memiliki Sistem Operasi melakukan itu tidak akan benar-benar mengubah apa pun karena masih akan melakukan sesuatu seperti BIOS. Tentu saja OS harus dalam ROM, bukan pada perangkat I / O. Masalahnya mungkin muncul untuk masalah monopoli ketika pembangun OS memutuskan untuk membuat BIOS OS-nya tidak kompatibel dengan OS lain. Memiliki produsen BIOS yang terpisah dari OS meningkatkan kebebasan atas apa yang mungkin dijalankan perangkat lunak.

m0skit0
sumber
1
Mengapa tidak bisa berfungsi sebagai BIOS? Berikan penjelasan tentang alasannya. Anda hanya perlu meletakkan bootstrapper di ROM dan selesai. Saya tidak bermaksud memilikinya sepenuhnya dalam ROM, dan meskipun demikian itu akan bekerja jika ROM itu cukup besar (tentu saja untuk menjalankannya Anda perlu memuat bagian-bagian dalam RAM, tetapi ini dilakukan oleh BIOS saat ini juga).
m0skit0
3
Dia mengatakan "komputer", bukan PC. Dan ya itu berlaku. Sebenarnya begini sebelum IBM PC (Atari, Amiga ... BIOS adalah bagian dari OS).
m0skit0
2
Konyol saya, saya dulu menulis perangkat lunak untuk komputer tertanam yang tidak memiliki BIOS atau OS, hanya kode aplikasi. Atau kita tidak berbicara tentang semua komputer, hanya yang kebanyakan orang pikirkan?
jwernerny
2
Tidak berlaku dalam skala besar? Lihat berapa banyak Ataris, Amigas, dan Mac yang ada sebelum PC.
m0skit0
2
IPhone adalah komputer dan saya tidak percaya ia memiliki BIOS. Bahkan sebelum era digital ... komputer adalah mesin yang dapat diprogram yang melakukan operasi dan mengeluarkan hasil yang sama untuk input yang diberikan, bukan? Alat tenun Jacquard adalah komputer, dan tentu saja tidak memiliki BIOS (bahkan tidak memiliki OS).
rds
5

Diperlukan sesuatu untuk memulai Sistem Operasi. Jika OS dapat masuk ke dalam memori non-volatil maka dapat dimulai secara langsung, tetapi dengan OS berfitur lengkap seperti Windows, OSX atau Linux ini tidak mungkin.

Yang diperlukan adalah "OS" ringan kecil yang dapat dimuat pada powerup yang melakukan hal-hal dasar seperti memori dan akses disk dan kemudian memuat Sistem Operasi. Meskipun ini bisa menjadi bagian dari OS itu sendiri dan bukan entitas yang terpisah, ada alasan lain mengapa Anda ingin proses lain dimulai terlebih dahulu:

  1. Pembaruan - jika OS diperbaiki seperti ini maka akan menjadi sulit untuk memperbaruinya jika ada patch keamanan yang diperlukan. Hal ini dapat dilakukan - pembaruan firmware terjadi setiap saat ke perangkat seperti router dll. Tetapi ini memiliki sistem operasi yang relatif sederhana diinstal.
  2. Fleksibilitas - komputer adalah mesin serba guna dan perangkat keras yang sama dapat menjalankan beberapa sistem operasi yang berbeda. Memiliki BIOS yang kemudian memuat OS dari disk berarti Anda dapat memilih mana yang akan dijalankan - Anda bahkan dapat memiliki beberapa diinstal secara berdampingan.

Proses ini dikenal sebagai bootstrap .

ChrisF
sumber
1
Jadi jawabannya adalah karena kita memiliki banyak OS yang berbeda? Maksud saya, jika kita hanya memiliki satu model OS untuk perangkat keras tertentu maka kita akan menghilangkan kebutuhan BIOS?
Diogo
1
Saya tidak mengerti mengapa Microsoft tidak mungkin membuat BIOS ...
m0skit0
1
Anda tidak perlu seluruh OS untuk masuk ke memori non-volatile (yang dapat dilakukan dengan baik, Anda hanya perlu cukup ROM: P). Anda hanya perlu bootstrapper untuk berada di sana.
m0skit0
1
@ m0skit0 Microsoft tidak dapat membuat BIOS karena harus membuat BIOS yang berbeda untuk setiap motherboard yang ia inginkan agar perangkat lunaknya dapat berjalan. :)
Terobosan
1
@ChrisF juga, menempatkan OS pada ROM merusak seluruh titik sistem operasi di tempat pertama. Mungkin masuk akal untuk menggunakan ROM untuk menjalankan beberapa program yang tersimpan pada prosesor secara langsung (yang akan menghasilkan kinerja yang jauh lebih baik), tetapi inti dari sistem operasi adalah untuk secara eksplisit melarang jenis operasi ini, dan menyediakan antarmuka perangkat lunak umum untuk lakukan itu.
Terobosan
4

Konsep PC BIOS berasal dari CP / M, sistem operasi yang populer di komputer berbasis 8-bit Z-80 "S-100" sebelum IBM PC mengambil alih.

CP / M diharapkan fungsi-fungsi yang bergantung pada perangkat keras berada dalam ROM (BIOS). Bagian lain, diambil dari disk oleh bootloader, adalah perangkat lunak yang mendukung sistem file CP / M (BDOS) dan kemudian terakhir prosesor perintah atau "shell" (CCP). Perangkat keras yang diharapkan untuk didukung oleh CP / M tidak terlalu banyak: drive disk, layar, satu atau dua port serial (port COM atau AUX) yang dapat dilengkapi printer atau modem.

PC BIOS melakukan fungsi bootstrap dasar mirip dengan yang dilakukan CP / M, dan DOS menggunakan fungsi BIOS untuk melakukan input dan output dasar, sebagaimana dimaksud. Pemrogram akhirnya melewati fungsi-fungsi ini karena mereka lambat. Hal ini menyebabkan pembuat klon PC pada pertengahan 80-an menciptakan kembali platform secara keseluruhan (semudah IBM mendokumentasikan PC asli dengan sangat baik di dalam dan luar), bukan hanya menyediakan BIOS dengan antarmuka yang kompatibel, meskipun mereka harus melakukannya juga.

Pada titik ini kita dapat mengatakan, untuk OS modern, BIOS tidak benar-benar diperlukan selain mem-boot sistem. Namun ...

Mulai awal 90-an, gagasan manajemen daya mulai berlaku dan BIOS ditugaskan untuk hal ini. APM bekerja dengan baik dengan OS satu-tugas seperti DOS, tetapi tidak dengan OS multitasking sejati seperti Windows atau Linux. Sekitar waktu ini 386 dalam kekuatan penuh, CPU Intel yang mendukung multitasking nyata. DOS dan BIOS tidak diperbarui sebagai tanggapan atas kemampuan baru CPU ini, terutama karena semua CPU Intel masih akan berjalan dalam mode kompatibilitas 16-bit lama yang dirancang untuk PC-BIOS asli. Jadi OS modern cukup mengabaikan / mem-bypass semua fungsi input / output CP / M-like dari BIOS kecuali mungkin selama tahap boot awal.

Akhirnya ACPI dikembangkan, sebagian besar bagian dari BIOS, yang mendukung manajemen daya dan konfigurasi hal-hal (biasanya laptop) platform-spesifik. ACPI juga menangani kondisi peralihan daya akhir dari hibernasi, tidur, atau mati.

Jadi hari ini adalah ACPI dan penggantinya, EFI, yang membuat sesuatu seperti BIOS menjadi kebutuhan PC. Konsep menyeluruhnya adalah untuk ACPI menjadi antarmuka antara hal-hal platform atau motherboard spesifik dan OS, sehingga build terpisah dari OS tidak harus dibuat untuk setiap jenis motherboard.

Papan pengembangan yang menampung CPU ARM yang menjalankan Linux (serta perangkat keras ponsel) mengalami masalah ini. Biasanya mereka akan datang dengan firmware hanya bootloader seperti U-boot, tetapi OS harus mendukung setiap papan sebagai platform terpisah.

LawrenceC
sumber
3

Dalam arti tertentu, Anda benar. BIOS dan OS sebagian melakukan hal yang sama. Pemisahan dalam BIOS dan OS semata-mata untuk fleksibilitas.

BIOS biasanya dibuat oleh produsen perangkat keras. Perangkat keras harus memastikan, bahwa fungsionalitas dasar ada, misalnya bahwa disk drive dapat dibaca dan bahwa tampilan dasar untuk diagnostik dan kesalahan ditampilkan. Demikian nama "Basic Input Output System".

Ini dapat dilakukan, sampai batas tertentu, tanpa pengetahuan lebih lanjut tentang komponen yang sebenarnya benar-benar hadir pada sistem tertentu, karena mereka semua harus mendukung standar BIOS kecil tertentu. Ini memungkinkan vendor untuk membuat sendiri sistem yang lengkap. BIOS hanya perlu melakukan cukup untuk memulai OS. Ada beberapa konvensi di mana titik awal ini berada, jadi itu hanya mencoba satu demi satu. Ini juga memungkinkan penggunaan berbagai sistem operasi pada perangkat keras yang sama. (ada fleksibilitas, lagi)

Setelah sistem operasi (atau setidaknya itu bootloader) ditemukan dan dimulai oleh BIOS, BIOS itu sendiri menjadi usang. OS modern hanya menggunakan sedikit fungsi BIOS setelah memuat.

Jika Anda ingin membuat OS melakukan semua pekerjaan Anda harus meletakkan OS di tempat di mana ia dapat diakses oleh perangkat keras tanpa bantuan awal dari perangkat lunak (ROM). Ini mungkin untuk beberapa sistem tertutup, di mana fleksibilitas tidak menjadi perhatian. Jika Anda berpikir tentang membangun dukungan perangkat keras ke beberapa perangkat keras lain, pada dasarnya Anda membangun semacam BIOS lagi ...

Kekhawatiran lain adalah ukuran dan biaya memori. OS berfitur lengkap berukuran besar dan mencoba untuk mendapatkan OS multi-gigabyte ke dalam ROM adalah mahal, di samping masalah tindak lanjut menambal dan memperbaruinya.

Jadi tidak, tidak ada alasan teknis, tetapi banyak yang praktis, terutama untuk platform PC yang fleksibel.

Oliver
sumber
3

Untuk menjalankan program pada PC modern, Anda harus sudah memiliki program yang berjalan untuk memulai dengan yang tahu bagaimana mengoperasikan perangkat keras dan memuat program ke dalam memori. Masalah ayam-dan-telur ini diselesaikan dengan menanamkan program dasar ke dalam perangkat keras itu sendiri.

Sistem input / output dasar (BIOS) ini sangat kecil dan cakupannya sangat terbatas, tetapi memberikan fondasi yang cukup untuk boot loader tahap kedua, seperti GRUB atau NTLDR , dapat dimuat dan dijalankan. Loader tahap kedua ini lebih canggih daripada program BIOS yang memungkinkan mereka untuk memberikan fondasi yang lebih kuat untuk sistem operasi yang tepat untuk memuat dan mengambil kendali.

Andrew Lambert
sumber
Penjelasan non-teknis yang bagus.
Siput mekanik
1

Jika CPU memiliki kemampuan untuk mengarahkan hard drive secara langsung, tanpa bergantung pada BIOS, atau EFI atau kode lain dalam ROM (atau NVRAM atau apa pun yang Anda miliki), maka secara teori CPU seperti itu dapat memuat OS dari disk ke dalam RAM dan mulai mengeksekusinya.

Sebenarnya, secara teori, CPU semacam itu bahkan bisa menjalankan instruksi tanpa memuatnya ke RAM. Tidak ada alasan teoritis bahwa komputer tidak dapat menggunakan hard drive sebagai penyimpanan utama. Tapi ini akan sangat, sangat lambat.

Ini berarti memiliki kode tambahan dalam CPU untuk mengakses disk, dan menghubungkan beberapa konsep tentang disk, seperti tabel partisi dan sistem file ke dalam CPU. CPU hari ini cukup besar untuk melakukan ini, tetapi itu tidak akan menjadi pendekatan yang sangat fleksibel atau efisien untuk merancang CPU.

david25272
sumber
Dulu komputer dijalankan langsung dari disk / drum, tanpa jumlah RAM yang signifikan.
Daniel R Hicks
-1

Itu tidak membutuhkannya!

Yang sering disebut BIOS adalah sekumpulan 3 hal.

  • Boot loader
  • Alat konfigurasi: sekarang sebagian besar sudah usang, kecuali urutan boot, dan jam. Sebagian besar sisanya harus otomatis atau diatur oleh pabrikan.
  • BIOS: perpustakaan rutin input output untuk membantu sistem operasi berkomunikasi dengan perangkat keras. Sayangnya bios 16 bit, ketinggalan zaman dan tidak dapat digunakan oleh sistem operasi modern, sehingga sebagian besar diabaikan.
ctrl-alt-delor
sumber
Boot loader adalah bagian dari BIOS.
Daniel R Hicks
@ Danielel saya telah menulis ulang untuk membuatnya lebih jelas, terima kasih.
ctrl-alt-delor