Kamis, 18 September 2008

BIOS


Dalam dunia komputer, BIOS atau Basic Input-Output System, adalah suatu kode software yang ditanam di dalam suatu sistem komputer yang memiliki fungsi utama untuk memberi informasi visual pada saat komputer dinyalakan, memberi akses ke keyboard dan juga memberi akses komunikasi secara low-level diantara komponen hardware, seperti untuk meload sistem operasi dari storage ke RAM. BIOS dapat disebut sebagai miniatur dan suatu sistem operasi yang dikhususkan untuk komunikasi low-level pada hardware. BIOS biasanya ditulis dalam bahasa assembly atau mesin yang mana bahasa ini biasanya spesifik kepada suatu prosesor tertentu.

Istilah BIOS ini pertama kali muncul pada sistem operasi CP/M, sebagian dari dari CP/M diload ketika saat booting dan berhubungan dengan hardware. (Mesin CP/M biasanya memiliki boot loader sederhana di dalam ROM). Sebagian besar dari versi DOS memiliki suatu file yang bernama IBMBIO.COm atau IO.SYS yang bisa dikatakan sebagai analogi dari BIOS disk pada CP/M.

Bagaimana BIOS booting?
BIOS menjalankan flash memory onboard ketika komputer dinyalakan dan dia akan menginisialisasi chipset dan juga subsistem dari memori. Selanjutnya, dia akan mendekompres dirinya sendiri dari flash memory tadi untuk kemudian menuju ke memori utama dan mulai dieksekusi dari sana. Kode PC BIOS biasanya juga berisi semacam diagnosa untuk memastikan kondisi dari komponen hardware yang sifatnya penting, seperti misalnya keyboard, disk drive, I/O ports dan lain sebagainya. BIOS memastikan apakah alat-alat tersebut bisa berfungsi dengan baik dan diinisialisasi dengan benar. Hampir semua implementasi BIOS dapat mengeksekusi suatu program setup melalui CMOS memory. Memori ini menyimpan konfigurasi yang dapat diatur oleh user (seperti time, date dan juga informasi detail mengenai hardisk dan lain sebagainya) dan bisa diakses oleh BIOS.

Pada implementasi BIOS yang modern, seseorang dapat memilih apa yang dibooting pertama kali, seperti CD, hardisk, floppy disk, flash keydrive dan lain sebagainya. Ini sangat berguna ketika Anda ingin menginstall suatu sistem operasi atau juga melakukan booting dari CD-ROM. Bahkan Anda juga bisa melakukan booting dari media USB.

Beberapa sistem BIOS membolehkan user untuk memilih sistem operasi yang ingin diload (misalnya load OS lain dari hardisk yang berbeda dalam satu PC), meskipun cara ini sekarang lebih sering dihandle oleh fase berikutnya atau yang sering dikenal dengan tool boot loader.

BIOS sebagai suatu firmware
BIOS terkadang disebut sebagai firmware karena merupakan bagian integral dari suatu sistem hardware.Sebelum 1990, BIOS berada dalam chip ROM dan tidak bisa diubah. Seiring dengan semakin kompleksnya sistem dan juga kebutuhan akan "bisa diupgrade" maka sekarang BIOS firmware disimpan di dalam EEPROM atau flash memory device yang dapat dengan mudah diupgrade isinya oleh user. Sementara itu, kesalahan dalam proses upgrade dari BIOS akan menyebabkan sistem komputer tidak akan bisa diakses. Untuk mencegah BIOS corruption, maka beberapa motherboard yang baru memiliki backup BIOS ("Dual BIOS" boards). Meskipun demikian, banyak BIOS yang memiliki "boot block" dimana bagian ini adalah bagian dari ROM yang berjalan pada saat pertama kali dan tetap tidak bisa diupdate. Kode dalam boot block ini akan memastikan sisa BIOS block lainnya melalui prosedur checksum, hash dan lain sebagainya, sebelum loncat ke block tersebut. Jika boot block mendeteksi adanya kerusakan atau corruption, maka dia akan melakukan booting melalui floppy disk sehingga user dapat melakukan flashing lagi dengan image yang lebih bagus. Beberapa pembuat hardware seringkali mengeluarkan update BIOS untuk mengupdate dan upgrade produk mereka dan juga menghilangkan bug yang ada.

Firmware pada card adapter
Suatu sistem komputer dapat berisi beberapa chip BIOS. Sebagai tambahan dari boot BIOS yang fungsi utamanya untuk mengakses komponen fundamental dari komputer, maka plug-in adapter card seperti SCSI atau USB hardisk adapter atau network card dapat memiliki BIOS sendiri dan merupakan komplemen atau pengganti dari kode BIOS untuk komponen tersebut.

Untuk mencari ekspansi ROM memori yang sudah dimapping selama proses booting, implementasi BIOS dari PC menscan memori real dari alamat 0xC8000 sampai 0xF0000 dalam batas 2 kilobyte mencari suatu signature 0x55 0xaa, yang mana diikuti dengan suatu byte yang mengindikasikan sejumlah 512 byte block dari expansion memory yang menduduki memori real. BIOS kemudian loncat ke offset setelah size byte, dimana pada titik tersebut kode dari expansion ROM mengambil alih dan menggunakan service BIOS untuk memberikan user sebuah configuration interface, meregister interrupt vector yang digunakan oleh aplikasi setelah booting, atau menampilkan informasi diagnosa.

Pada sistem UNIX, ada suatu utility dimana Anda dapat melakukan dump terhadap software BIOS firmware. Anda bisa dapatkan pada alamat http://www.linuks.mine.nu/ree/

Spesifikasi BIOS boot
Jika expansion ROM ingin merubah cara dari suatu sistem melakukan booting (misalnya saja boot dari jaringan atau SCSI adapter dimana BIOS tidak memiliki drivernya), maka dia dapat menggunakan BIOS Boot Specification (BBS) API untuk meregisterkan kemampuan tambahannya. Sesaat setelah expansion ROM sudah teregister menggunakan BBS API, maka pengguna akan dapat memilih berbagai macam pilihan booting dari user interface BIOS. Hal ini yang menyebabkan mengapa kebanyakan implementasi BIOS yang compliant dengan BBS, tidak akan membolehkan pengguna untuk masuk ke dalam BIOS user interface sampai expansion ROM selesai dalam mengeksekusi dan meregister dirinya sendiri dengan API BBS.


0 komentar: