B.3. Jeroan dari suatu Komputer: Lapisan Berbeda yang Terlibat
Komputer sering dianggap sebagai sesuatu yang agak abstrak, dan antarmuka yang terlihat secara eksternal jauh lebih sederhana daripada kompleksitas internalnya. Kerumitan seperti itu sebagian berasal dari banyaknya bagian yang terlibat. Namun, potongan-potongan ini dapat dilihat dalam lapisan-lapisan, dimana suatu lapisan hanya berinteraksi dengan yang berada tepat di atas atau di bawahnya.
Pengguna akhir dapat bertahan tanpa mengetahui detail ini… selama semuanya berfungsi. Ketika menghadapi masalah seperti, “Internet tidak berfungsi!”, hal pertama yang harus dilakukan adalah mengidentifikasi di mana lapisan masalahnya berasal. Apakah kartu jaringan (perangkat keras) berfungsi? Apakah itu dikenali oleh komputer? Apakah kernel Linux melihatnya? Apakah parameter jaringan dikonfigurasi dengan benar? Semua pertanyaan ini mengisolasi lapisan yang tepat dan fokus pada sumber potensial masalah.
B.3.1. Lapisan Terdalam: Perangkat Keras
Mari kita mulai dengan pengingat dasar bahwa suatu komputer, pertama dan terpenting, adalah sekumpulan elemen perangkat keras. Biasanya ada suatu papan utama (dikenal sebagai motherboard), dengan satu (atau lebih) prosesor, RAM, pengendali perangkat, dan slot ekstensi untuk papan opsi (untuk pengendali perangkat lain). Yang paling penting di antara pengendali ini adalah IDE (Parallel ATA), SCSI, dan Serial ATA, untuk menghubungkan ke perangkat penyimpanan seperti hard disk. Pengontrol lainnya termasuk USB, yang dapat menghosting berbagai perangkat (mulai dari webcam hingga termometer, dari papan ketik hingga sistem otomasi rumah) dan IEEE 1394 (Firewire). Kontroler ini sering memungkinkan menghubungkan beberapa perangkat sehingga subsistem lengkap yang ditangani oleh pengontrol oleh karena itu biasanya dikenal sebagai ”bus”. Kartu-kartu opsi termasuk kartu grafis (di mana layar monitor akan dipasang), kartu suara, kartu antarmuka jaringan, dan sebagainya. Beberapa papan utama sudah dibangun sebelumnya dengan fitur-fitur ini, dan tidak perlu kartu opsi.
B.3.2. Awal: BIOS atau UEFI
Perangkat keras, berdiri sendiri, tidak mampu melakukan tugas-tugas yang berguna tanpa perangkat lunak terkait yang menggerakkannya. Mengendalikan dan berinteraksi dengan perangkat keras adalah tujuan dari sistem operasi dan aplikasi. Ini, pada gilirannya, memerlukan perangkat keras yang fungsional untuk berjalan.
This symbiosis between hardware and software does not happen on its own. When the computer is first powered up, some initial setup is required. This role is assumed by the BIOS or UEFI, a piece of software embedded into the main board that runs automatically upon power-up. Its primary task is searching for software it can hand over control to. Usually, as you may have learned in
Bagian 9.1, “Boot Sistem”, in the BIOS case, this involves looking for the first hard disk with a boot sector (also known as the
master boot record or
MBR), loading that boot sector, and running it. From then on, the BIOS is usually not involved (until the next boot). In the case of UEFI, the process involves scanning disks to find a dedicated EFI partition containing further EFI applications to execute.
Sektor boot (atau partisi EFI), pada gilirannya, memuat penggalan perangkat lunak lain, yang dinamai bootloader, yang berguna untuk mencari dan menjalankan suatu sistem operasi. Karena bootloader ini tidak ditanamkan dalam papan utama tapi dimuat dari disk, itu bisa lebih cerdas daripada BIOS, yang menjelaskan mengapa BIOS sendiri tidak memuat sistem operasi. Sebagai contoh, bootloader (biasanya GRUB pada sistem Linux) dapat menampilkan daftar sistem operasi yang tersedia dan menanyakan ke pengguna untuk memilih satu. Biasanya, suatu tenggat waktu dan pilihan baku disediakan. Kadang pengguna juga dapat memilih untuk menambah parameter yang dilewatkan ke kernel, dan seterusnya. Pada akhirnya, suatu kernel ditemukan, dimuat ke memori, dan dieksekusi.
BIOS/UEFI juga bertanggung jawab mendeteksi dan mengisialisasi sejumlah perangkat. Tentu saja, ini termasuk perangkat IDE/SATA (biasanya drive CD/DVD-ROM dan hard disk), tapi juga perangkat-perangkat PCI. Perangkat-perangkat yang terdeteksi seringkali dimunculkan daftarnya dalam proses boot. Bila daftar ini berlalu terlalu cepat, gunakan tombol Pause untuk membekukannya cukup lama untuk dibaca. Perangkat-perangkat PCI terpasang yang tidak muncul adalah pertanda buruk. Terparahnya, perangkat bermasalah. Terbaiknya, itu sekedar tidak kompatibel dengan versi saat ini dari BIOS papan utama. Spesifikasi PCI bertumbuh, dan papan utama lama tidak dijamin menangani perangkat PCI yang lebih baru.
BIOS/UEFI maupun bootloader masing-masing hanya berjalan selama beberapa detik; sekarang kita sampai ke bagian pertama dari perangkat lunak yang berjalan untuk waktu yang lama, kernel sistem operasi. Kernel ini mengambil peran seorang dirigen orkestra, dan menjamin koordinasi antara perangkat keras dan perangkat lunak. Peran ini melibatkan beberapa tugas termasuk: menggerakkan perangkat keras, mengelola proses, pengguna dan izin, sistem berkas, dan seterusnya. Kernel menyediakan dasar yang umum untuk semua program lain pada sistem.
Walaupun segala sesuatu yang terjadi di luar kernel dapat dikelompok bersama di bawah ”ruang pengguna”, kita masih dapat memisahkan menjadi lapisan-lapisan perangkat lunak. Namun, interaksi mereka lebih kompleks daripada sebelumnya, dan klasifikasi mungkin tidak sederhana. Aplikasi umumnya menggunakan pustaka, yang pada gilirannya melibatkan kernel, tetapi komunikasi dapat juga melibatkan program lain, atau bahkan banyak pustaka memanggil satu sama lain.