Bootloader

**Bootloader** atau pemuat but merupakan perangkat lunak yang didesain secara khusus untuk sistem operasi dengan ukuran kecil untuk dimuat pada memori komputer ketika perangkat komputer dinyalakan agar sistem operasi dapat dimulai. Bootloader dijalankan melalui media but yang dapat berupa penyimpanan perangkat, stik USB ataupun cakram padat. Saat bootloader dijalankan oleh media but, perangkat tegar atau *[[firmware]]* seperti BIOS atau UEFI akan mengidentifikasi lokasi bootloader dan menjalankannya. Proses ketika bootloader dijlankan atau dieksekusi oleh *firmware* disebut sebagai proses but atau *booting*. Bootloader memungkinkan perangkat komputer untuk memuat sistem operasi yang terpasang pada perangkat komputer. Instalasi sistem operasi seperti Microsoft Windows dan MacOS mengintegrasikan bootloader saat proses instalasinya.

## Cara kerja
Bootloader mulai dijalankan melalui media but yang dikonfigurasi oleh pengguna baik berupa penyimpanan perangkat ataupun penyimpanan eksternal seperti cakram padat ataupun stik USB ketika perangkat komputer dinyalakan. Pada eksekusinya, bootloader akan mengambil informasi mengenai perangkat keras yang teridentifikasi oleh *firmware*. *Firmware* yang terpasang pada papan induk perangkat komputer mampu mengidentifikasi informasi perangkat keras yang digunakan oleh perangkat komputer tersebut yang kemudian informasi tersebut dikumpulkan lalu dikirimkan kepada bootloader. Dalam memberikan informasi mengenai perangkat keras kepada bootloader, *firmware* akan mengidentifikasi lokasi bootloader pada media but yang digunakan atau dipilih. Kemudian, informasi perangkat keras akan dikirimkan kepada bootloader. Ketika bootloader telah teridentifikasi dan informasi perangkat keras telah dikirim, maka akan dimulai proses verifikasi yang mana jika berhasil, maka sistem akan dimulai. Sedangkan, jika informasi perangkat keras gagal diverifikasi, maka perangkat komputer akan menampilkan pesan galat (*error*).

## Fungsi
Sebagai pemuat sistem operasi, bootloader memiliki fungsi yang esensial untuk perangkat komputer seperti fungsi untuk menghubungkan perangkat keras dengan sistem operasi. Selain itu, bootloader juga memiliki fungsi lain yang cukup esensial seperti memuat memori utama untuk kinerja CPU, melakukan integrasi penyimpanan data, melakukan perbaikan fungsi *firmware*, memuat *firmware* alternatif, dan memuat kernel yang memiliki fungsi untuk mengatur sumber daya serta kinerja perangkat keras dan perangkat lunak yang berjalan pada perangkat komputer seperti *driver* perangkat keras dan sistem penyimpanan perangkat komputer.

## Bootloader pada Linux
Terdapat lebih dari satu opsi bootloader terutama pada sistem operasai yang berbasis pada kernel linux. Salah satu opsi bootloader populer dan pada umumnya digunakan pada Linux adalah GRUB. GRUB adalah bootloader yang pada awalnya diciptakan oleh Erich Boley pada tahun 1995 untuk sistem operasi GNU/Hurd dan memiliki kompatibilitas dukungan *firmware* yang luas baik pada BIOS maupun UEFI. Selain luasnya dukungan kompatibilitas *firmware*, GRUB juga memiliki kompatibilitas yang baik pada segi sistem berkas seperti ext4, Btrfs, VFAT, XFS, dsb.

Disamping GRUB, terdapat pula opsi bootloader populer lainnya yang dapat digunakan pada sistem linux seperti LILO dan SYSLINUX. LILO sebagai bootloader memiliki kekurangan pada segi kompatibilitas terhadap sistem berkas modern dan *firmware* UEFI sehingga pengembangan bootloader LILO dihentikan pada Desember tahun 2015. Selain itu, terdapat pula SYSLINUX yang lebih umum digunakan sebagai bootloader untuk distribusi sistem operasi Linux yang dijalankan secara langsung melalui stik USB. SYSLINUX memiliki dukungan sistem berkas seperti FAT dan ext4. Akan tetapi, SYSLINUX memiliki keterbatasan kompatibilitas dalam menjalankan sistem berkas yang lebih modern seperti Btrfs.

Selain opsi bootloader yang populer pada sistem operasi berbasis kernel Linux diatas, terdapat pula opsi bootloader lain yang dapat digunakan dan memiliki kompatibilitas sistem operasi yang lebih umum. Bootloader tersebut diantaranya adalah rEFInd dan BURG. Bootloader rEFInd dapat dijalankan pada sistem operasi dengan kernel linux dan memiliki karakteristik tampilan serta navigasi yang ramah bagi pengguna umum. rEFInd memiliki kompatibilitas yang fleksibel untuk dijalankan pada berbagai arsitektur mesin seperti x86, AMD64, dan ARM. Selain rEFInd, bootloader lain yang memiliki kompatibilitas yang lebih umum adalah BURG. BURG merupakan bootloader yang sederhana, ringan, dan efisien. BURG juga memiliki fitur yang sama seperti GRUB dengan tambahan fitur lain yang berguna untuk programmer sistem. Sebagai bootloader, BURG kompatibel untuk digunakan pada berbagai sistem operasi seperti Linux, FreeBSD, MacOS, dan Microsoft Windows.
## Referensi