Apakah BIOS memiliki semacam 'driver' generik

22

Bagaimana cara BIOS mengontrol perangkat I / O tanpa bentuk driver?

Misalnya bagaimana sebuah gambar ditampilkan saat komputer boot jika BIOS tidak memiliki driver untuk kartu grafis.

Apakah ada semacam driver generik yang standar di semua BIOS dan perangkat keras yang memungkinkan BIOS untuk melakukan fungsi dasar tidak peduli perangkat keras apa yang diinstal.

Bantuan apa pun akan dihargai.

Terima kasih.

RJSmith92
sumber
Apakah Anda memiliki masalah spesifik yang ingin Anda selesaikan? Jika Anda bertanya apakah ada BIOS menggunakan drive generik universal, itu tidak
Ramhound
Saya pikir ada format output standar minimal (vesa) dan kartu video memiliki bios sendiri. Selain itu, ini tidak seperti firmware BIOS / uefi Anda dirender, realtime dalam 3d.
Journeyman Geek
5
@Ramhound Ini bukan masalah yang saya coba selesaikan, itu hanya pertanyaan umum. Apa pun kartu grafis yang Anda masukkan ke dalam sistem Anda, Anda masih dapat melihat dispaly saat boot, jadi apakah ada beberapa antarmuka standar yang diprogram ke dalam BIOS?
RJSmith92
4
Do you have a specific problem your trying to solve? Ya, mereka berusaha memecahkan masalah menemukan jawaban untuk pertanyaan yang mereka tanyakan. ¬_¬
Synetech
Terkait: superuser.com/questions/357328/…
Russell Borogove

Jawaban:

13

Apakah BIOS memiliki semacam 'driver' generik

Bagaimana cara BIOS mengontrol perangkat I / O tanpa bentuk driver?

Standar. Semua komponen menerapkan antarmuka dasar, dan BIOS diprogram untuk menggunakannya. Tentu saja karena itu adalah antarmuka dasar (itulah yang 'B' di kependekan dari BIOS), ia tidak dapat memanfaatkan kapabilitas penuh perangkat keras; yang tersisa untuk perangkat lunak untuk diimplementasikan melalui driver yang dapat mengakses perangkat keras secara langsung.

Awalnya, produsen BIOS membuat satu set API yang diharapkan digunakan perangkat jika ingin kompatibel. Mereka melakukan ini melalui " interupsi " yang merupakan cara bagi perangkat untuk, baik, mengganggu program untuk membiarkannya tahu bahwa sesuatu terjadi dan sebaliknya.

Misalnya bagaimana sebuah gambar ditampilkan saat komputer boot jika BIOS tidak memiliki driver untuk kartu grafis.

Dalam hal tampilan pra-boot, firmware adaptor video mengimplementasikan VESA (Asosiasi Standar Elektronik Video) yang merupakan standar yang dibuat untuk menyederhanakan akses ke perangkat keras tampilan. BIOS tahu cara mengakses perangkat keras video menggunakan fungsi standar yang disediakan. Ini agak mirip dengan bagaimana DirectX diimplementasikan sebagai API tingkat tinggi ke perangkat keras sehingga programmer tidak harus memperhitungkan setiap konfigurasi perangkat keras tunggal.

Apakah ada semacam driver generik yang berdiri di semua BIOS dan perangkat keras yang memungkinkan BIOS untuk melakukan fungsi dasar tidak peduli perangkat keras apa yang diinstal.

Semacam. Ini bukan driver, tetapi API standar ; satu set fungsi pemrograman yang dapat digunakan untuk melakukan hal-hal dasar seperti menginisialisasi perangkat atau data input dan output.

Jika produsen ingin menjual produk mereka, mereka harus memastikan bahwa mereka setidaknya menerapkan API standar sehingga mereka akan kompatibel. Dengan begitu, sistem dapat mendeteksi perangkat keras dan dalam hal perangkat yang sangat penting untuk boot, mereka dapat mengaksesnya di tingkat dasar hingga driver perangkat lunak yang tahu cara mengaksesnya sepenuhnya dapat dimuat.

Synetech
sumber
Terima kasih, jawaban yang bagus. Jadi panggilan interupsi BIOS (Sistem DOS mana yang digunakan untuk menggunakan) masih digunakan sampai OS dimuat?
RJSmith92
1
Ya, BIOS menyediakan banyak interupsi berbeda yang dapat digunakan (meskipun tidak semua BIOS menyediakan semua fungsi). Sistem DOS memang menggunakan itu, tetapi DOS juga menciptakan INT 21 dan 2F untuk menyediakan interupsi perangkat lunak tingkat tinggi untuk melakukan hal-hal (saya sangat merindukan pemrograman assembler DOS / perangkat keras). Faktanya adalah, akan selalu perlu ada beberapa fungsionalitas dasar, tingkat rendah yang diperlukan untuk menyediakan kompatibilitas, bahkan dengan EFI dan apa pun yang datang di masa depan. Mungkin mengambil bentuk yang berbeda, tetapi tanpa semacam bahasa umum, tidak akan ada cara bagi sistem untuk menggunakan perangkat perangkat keras.
Synetech
Saya memahami bahwa panggilan interupsi masih digunakan oleh kernel dan layanan tingkat kernel. Apakah itu tidak benar?
BlueRaja - Danny Pflughoeft
@BlueRaja, mungkin saat boot (mereka membutuhkan beberapa cara untuk mengakses perangkat keras), tapi setelah mereka menjalankan rutinitas deteksi, mereka menggunakan driver yang sesuai (yang hanya program tingkat rendah) untuk langsung mengakses hardware. Bahkan kernel akan memerlukan akses langsung untuk mendapatkan sebagian besar dari perangkat keras, misalnya mengambil keuntungan dari fungsi CPU yang canggih atau mengoptimalkan penggunaan pengontrol memori dan chipset.
Synetech
22

BIOS dalam PC dimaksudkan untuk memenuhi fungsi yang sama dengan BIOS dalam sistem CP / M 8-bit, yang populer sebelum PC mengambil alih pada pertengahan tahun 80-an. BIOS dimaksudkan untuk memuat bootloader minimal dan rutinitas tingkat rendah yang bergantung pada perangkat keras untuk melakukan input dan output ke beberapa perangkat (layar, disk, pita, port COM). Pengetahuan untuk melakukan ini dibangun ke dalam ROM - tidak diperlukan driver, dan tentu saja, tidak ada perangkat keras tambahan yang didukung oleh ROM ini. (Hal-hal seperti manajemen daya dan ACPI muncul jauh di kemudian hari, pada tahun 90-an, setelah PC menempatkan dirinya sebagai platform di mana-mana.)

(The "filesystem" CP / M berada di komponen yang dimuat dari disk yang disebut BDOS - juga, pengetahuan tentang filesystem FAT dan antarmuka itu dalam (setidaknya satu dari) dua file tersembunyi MSDOS.SYS atau IO.SYS - bukan bagian ROM BIOS.)

Namun ... BIOS PC, tidak seperti CP / M, mendukung gagasan "ROM Opsi" yang dapat dimasukkan pada kartu ekspansi. Jadi setidaknya ada mekanisme minimal untuk memperpanjang BIOS. Kartu video yang dimulai dengan CGA (MDA, pendahulu CGA, mungkin telah melakukannya juga) akan memiliki ROM opsi yang memperluas atau menambahkan fungsi I / O ke antarmuka BIOS. (Inilah sebabnya mengapa Anda melihat pesan NVidia sebelum BIOS Anda boot.) Begitu pula dengan hard drive dan kartu SCSI. Semua ini masih dilakukan. Banyak kartu jaringan yang lebih tua memiliki soket untuk boot ROM.

Perlu diingat juga bahwa produsen klon PC yang muncul pada tahun 80-an sangat cepat memutuskan untuk tidak hanya menyediakan antarmuka BIOS yang kompatibel, tetapi akhirnya harus menyalin platform PC secara keseluruhan, termasuk semua perangkat keras tingkat rendah seperti chip timer , interrupt controller, dll. (Ini relatif mudah karena hanya sedikit yang dimiliki IBM.) Ini karena BIOS lambat untuk melakukan sesuatu dan programmer mengakses perangkat keras secara langsung, terutama untuk game.

Jadi, antara ROM opsi dan konsensus perangkat keras standar yang membentuk platform PC, dan juga fakta bahwa itu telah dibelakang kompatibel sepanjang evolusi PC, sesuatu yang ingin menggunakan layar tanpa driver dapat:

  • gunakan antarmuka BIOS standar, yang mungkin "ketagihan" oleh ROM opsi di perangkat keras video
  • atau membuat asumsi tentang perangkat keras apa yang ada di sistem dan mengakses perangkat keras dasar secara langsung

Semua perangkat keras layar PC masih berfungsi dalam mode "VGA-kompatibel" saat boot. Adaptor IBM VGA asli memiliki mode yang kompatibel dengan kartu EGA, CGA, dan MDA sebelumnya. Semua ini berarti bahwa sesuatu yang berjalan dari BIOS atau di luar OS dapat mengasumsikan itu masih dapat membaca dan menulis memori yang sama yang terhubung ke layar sekarang seperti pada tahun 1985, melalui konvensi.

LawrenceC
sumber
Terima kasih atas jawabannya. Jadi BIOS pada kartu ekspansi harus mengikuti semacam standar agar BIOS motherboard dapat menggunakannya?
RJSmith92
1
Tidak yakin apakah itu sebanyak standar daripada konvensi lama, tapi sesuatu seperti itu. Saya kira Spesifikasi Boot BIOS (BBS) adalah sesuatu yang standar formal di sini. en.wikipedia.org/wiki/Option_ROM
LawrenceC
Ya, itulah yang saya cari. Terima kasih lagi
RJSmith92