Bootloader: Những điều bạn cần biết về trình quản lý khởi động hệ thống

Để một bộ xử lý máy tính (computer processor) có thể khởi chạy các ứng dụng, nó dựa vào các dịch vụ của bộ nhớ truy cập ngẫu nhiên (Random Access Memory – RAM), còn được gọi là bộ nhớ chính (main memory). Dữ liệu cần thiết được tải vào bộ nhớ chính cho mục đích này, đó là lý do tại sao dung lượng, tốc độ truyền và tốc độ truy cập của nó đóng vai trò quyết định đến khả năng hoạt động tối đa của toàn bộ máy tính.

Một trong những chương trình quan trọng nhất với dữ liệu trong bộ nhớ chính là hệ điều hành (operating system). Được trang bị chức năng quản lý quy trình (process management function) phù hợp, Windows, macOS và những hệ điều hành khác thực sự điều khiển quyền truy cập của bộ xử lý vào bộ lưu trữ chính (main storage), trong số những thứ khác. Do đó, dữ liệu liên quan trong phần mềm hệ thống phải được tải vào bộ nhớ chính ngay sau khi thiết bị được khởi động và ở đó trong suốt thời gian máy tính chạy. Điều này có thể thực hiện được nhờ cái gọi là bootloader, được tích hợp vĩnh viễn như một tiêu chuẩn trong hầu hết các hệ điều hành hiện đại.

Bootloader là gì?

Bootloader (bộ nạp khởi động), còn được gọi là boot program hoặc bootstrap loader, là một phần mềm hệ điều hành đặc biệt tải vào bộ nhớ làm việc của máy tính sau khi khởi động. Với mục đích này, ngay sau khi thiết bị khởi động, bootloader thường được khởi chạy bởi bootable medium (phương tiện khởi động) như ổ cứng, CD/DVD hoặc USB. Boot medium nhận thông tin từ firmware của máy tính (ví dụ: BIOS) về vị trí của bootloader. Toàn bộ quá trình cũng được mô tả là “booting”.

Ghi chú: Thuật ngữ “bootloader” là dạng rút gọn của từ “bootstrap loader”. Thuật ngữ này bắt nguồn từ thực tế rằng trình quản lý boot là thành phần quan trọng trong việc khởi động máy tính, vì vậy nó có thể được ví như sự hỗ trợ của bootstrap khi boot lên.

Bootloader hoạt động như thế nào?

Khi bạn nhấn nút khởi động trên máy tính, điều đầu tiên bạn nhìn thấy trên màn hình là thông tin về phần cứng được cài đặt. Phần mềm chịu trách nhiệm cho thông báo này là firmware của thiết bị được đề cập ở trên, thường được các nhà sản xuất cài đặt sẵn trong bộ nhớ flash trên motherboard (bo mạch chủ) của máy tính. Với hầu hết các máy tính để bàn và máy tính xách tay, nó sẽ là BIOS (Basic Input/Output System) hoặc hiện đại hơn như UEFI (Unified Extensible Firmware Interface). Cả hai ứng dụng đều thu thập những dữ liệu phần cứng đa dạng nhất và tạo danh sách đầy đủ tất cả các ổ đĩa có sẵn của thiết bị.

Khi quá trình này hoàn tất, firmware sẽ qua các vùng lưu trữ dữ liệu được tìm thấy theo trình tự và kiểm tra bootloader bằng một chữ ký đặc biệt – cái gọi là boot signature (chữ ký khởi động) hoặc boot record (bản ghi khởi động). Việc tìm kiếm luôn bắt đầu trên removable media (CD/DVD, USB, ổ cứng ngoài, v.v.), sau đó là các hard-coded driver (ổ đĩa cứng được mã hóa). Với cái sau, bootloader và chữ ký của nó thường nằm trong MBR – master boot record (bản ghi khởi động chính) chứa các partition table (bảng phân vùng) của vùng lưu trữ dữ liệu. Khi một bootloader được tìm thấy, nó sẽ được tải và quá trình khởi động hệ thống được bắt đầu. Nếu tìm kiếm không thành công, firmware sẽ trả về thông báo lỗi.

Tip:
Ngay sau khi bạn cài đặt hệ điều hành đúng cách, nó sẽ khởi chạy thông qua một bootloader, thường nằm trên main partition (phân vùng chính). Tuy nhiên, nếu hệ thống bị hỏng và cần cài đặt lại, bạn phải phụ thuộc vào bootable removable media (phương tiện di động có khả năng khởi động). Điều này cũng xảy ra nếu không có hệ điều hành nào được cài đặt.

Bootloader nằm ở đâu?

Bootloader có thể được lưu ở hai nơi khác nhau:

  1. Bootloader được lưu trong block đầu tiên của bootloader medium.
  2. Bootloader được lưu trên một partition cụ thể của bootloader medium.

Trường hợp thứ nhất được kết nối chặt chẽ với nguyên tắc của master boot record, không chỉ chứa liên kết đến bootloader theo yêu cầu của firmware mà còn chính là phần mềm boot. Block hoặc sector bộ nhớ khả dụng đầu tiên trong medium luôn được dành riêng cho bản ghi (record). Vì chức năng quan trọng này, nó còn được gọi là boot block hoặc boot sectore.

Trong trường hợp thứ hai, hệ điều hành sử dụng một partition được chọn làm vị trí chứa bootloader, mặc dù hệ thống file cơ bản và các partition table được sử dụng có thể khác nhau rất nhiều. Yếu tố quyết định ở đây luôn là firmware, nó quy định một file format cụ thể cho boot manager trong mô hình lưu trữ bootloader này. Ví dụ: đối với các thiết bị có UEFI, định dạng là PE/COFF (Portable Executable / Common Object File Format).

Ghi chú: Các bootloader cũng có thể được trải rộng trên một số layer được xây dựng dựa trên nhau. Các multi-stage bootloader này bao gồm tối đa ba cấp độ khác nhau được khởi chạy theo trình tự. Chúng thường được sử dụng nếu boot program quá lớn đối với boot sector.

Tóm tắt các chức năng của bootloader

Bootloader đóng vai trò trung gian giữa phần cứng và hệ điều hành. Ngay sau khi một bootloader đã được khởi tạo bởi firmware tương ứng, nó có trách nhiệm hệ thống (system responsibility) để tiến trình boot xảy ra. Nhiệm vụ đầu tiên là tải bộ nhớ chính, đây là điều cần thiết để bộ vi xử lý hoạt động.

Trong bước thứ hai, bootloader tải kernel của hệ điều hành, nghĩa là thành phần chính của phần mềm hệ thống (system software) kiểm soát toàn bộ quyền lưu trữ và bộ xử lý cũng như chứa tất cả các driver quan trọng. Bootstrap loader cũng xử lý các tác vụ và lệnh thông dụng khác, ví dụ: tích hợp lưu trữ dữ liệu. Một số bootloader cũng thực hiện các tác vụ ngoài việc khởi động phần mềm, bao gồm:

  • Xác định và khởi động các bootloader có sẵn khác
  • Khởi chạy các chương trình ứng dụng (thường được sử dụng trong những năm 1980 để khởi chạy các trò chơi máy tính trực tiếp từ đĩa)
  • Sửa hoặc mở rộng các chức năng và mục nhập bị thiếu trong firmware
  • Tải firmware thay thế

Sau khi hoàn thành xong tất cả tác vụ, bootloader trả lại trách nhiệm hệ thống cho kernel.

Những bootloader nổi tiếng

Bảng sau liệt kê các bootloader quan trọng nhất:

Tên bootloaderMô tả
Bootmgr boot program cho các hệ thống Microsoft từ Windows Vista  và Windows Server 2008
NT loader (NTLDR)boot program cho hệ thống Microsoft từ Windows XP và Windows Server 2003
barebox bootloader cho hệ thống nhúng trong máy in, camera, xe hơi, máy bay, và nhiều hơn nữa
boot.efiEFI bootloader đã được dùng trong các thiết bị Mac từ năm 2006
BootX chomer bootloader cho hệ điều hành Mac
Grand Unified Bootloader (GRUB)boot program miễn phí dành cho hệ điều hành dựa trên Unix như Linux
ARM Core Bootloader bootloader cho microcontrollers (được dùng trong iPhones và những thiết bị khác)
OpenBIOSboot manager miễn phí, portable dưới giấy phép GNU-GPL

Nguồn ionos.com

Icons made by Freepik from www.flaticon.com