Minggu, 06 November 2016

Mengenal Proses Booting Awal Pada Komputer Intel x86


booting

Ada yang penasaran tentang cara membuat sistem operasi ?
Nggak ya? bagaimana jika yang saya bicarakan disini adalah sistem operasi yang dibuat dari 0 ?
Bukan distro? Ya, bukan!

Setelah banyak mempertimbangkan, akhirnya saya memutuskan untuk menulis beberapa pengalaman saya dalam mengembangkan sistem operasi. Dan pada detik ini, anda akan mulai membaca potongan tulisan saya yang pertama mengenai sistem operasi.

Sebelum melangkah lebih jauh, saya akan ceritakan sedikit tentang proses awal sebelum sistem operasi berjala, The Proses Booting. Eh, The Booting Process.

Jika anda programmer, tentu tak asing dengan pointer. Pointer berisi alamat unik yang dialokasikan dengan cara sedemikian rupa, sehingga menunjuk ke salah satu alamat memori. Perlu diketahui, meski disk juga dapat menyimpan data; nyatanya disk memiliki struktur yang berbeda dari memori. Disk juga diakses menggunakan alamat, sih. Hanya saja cara pengalamatannya beda. Cara mengakses disk menggunakan alamat sektor, yang mana setiap sektor umumnya mampu menyimpan data 512 bytes.

Ketika kita menyalakan komputer, CPU akan mencoba mencari dan mendeteksi keberadaan ROM BIOS. Dalam memori ROM ini terdapat instruksi-instruksi untuk menyiapkan komputer sebelum kode boot sector di masukkan dalam memori.

Apa itu boot sector?
Boot sector code adalah sekumpulan kode instruksi yang disimpan pada alamat sektor pertama disk. Dalam dunia sistem operasi, sector ini juga biasa disebut Master Boot Record (MBR). Kode ini berisi kumpulan instruksi-instruksi yang digunakan untuk memasukkan file ke dalam memori. Karena semua disk mempunyai sektor berukuran 512 byte, maka kode boot sector yang kita buat harus berukuran 512 byte juga. Ini adalah salah satu tantangan besar dalam pengembangan sistem operasi.

Untungnya, di luaran sana banyak program bootloader yang disediakan secara gratis, contohnya saja GRUB. Jadi, kita tidak perlu pusing-pusing lagi memikirkan masalah ini.

Back to the topic, lalu apa yang terjadi setelah ROM ditemukan? Setelah ROM ditemukan, beberapa instruksi selanjutnya dijalankan untuk melakukan POST (Power On Self Test). Tugas POST adalah memeriksa keadaan chip BIOS dan CMOS RAM. Jika tidak ditemukan masalah, berikutnya POST mencoba memeriksa perangkat keras komputer, seperti video card, disk, keyboard dan port untuk memastikan semuanya bekerja dengan baik. Yang jelas, pada saat POST beragam proses checking dilakukan untuk memastikan komputer dapat berjalan bersamaan dengan dependensinya.

Jika POST mengetahui semua hardware dalam keadaan normal dan CPU telah siap, maka POST berhenti dan berlanjut menuju BIOS untuk menentukan sistem operasi yang akan di jalankan. Biasanya BIOS menentukan urutan pencarian sistem operasi dalam disk dengan bantuan CMOS chip.

FYI : Kita juga dapat mengubah urutan pencarian dengan masuk kedalam CMOS Setup atau dengan menekan F2 saat boot.

Mulai dari sini BIOS mencoba memeriksa disk satu per satu. Jika pada sektor pertama terdapat signature, BIOS akan memasukkan sektor tersebut ke alamat 0x7c00 dan segera menginstruksikan prosesor untuk mulai menginstruksikan instruksi dari alamat tersebut.


Wait! kenapa alamat 0x7c00 ?
Ini adalah pertanyaan tak penting, tapi jika masih ngeyel ingin tahu, silahkan baca dan terjemahkan sendiri. Yup, memang ada sejarahnya.
http://www.glamenv-septzen.net/en/view/6

Cuma sampai ini penjelasannya?
Kapan membuat OS nya? hahaha sabar guys, biar saya selesaikan dulu draft nya.
Load disqus comments

0 comments