Trình tải khởi động

Bách khoa toàn thư mở Wikipedia
(đổi hướng từ Bootloader)
GNU GRUB, một trình tải khởi động nguồn mở phổ biến
Trình tải khởi động của Windows

Trình tải khởi động, (tiếng Anh: bootloader hoặc boot loader[1][2]) hay còn gọi là trình quản lý khởi động (tiếng Anh: boot manager [2]), là một chương trình máy tính có nhiệm vụ khởi động máy tính.

Khi máy tính ở trạng thái tắt, phần mềm của nó‍—‌bao gồm hệ điều hành, mã ứng dụng và dữ liệu‍—‌được lưu trữ trong bộ nhớ điện tĩnh. Khi máy tính được bật lên, thường trong bộ nhớ truy cập ngẫu nhiên (RAM) của nó sẽ chưa có hệ điều hành hoặc trình khởi động nào. Máy tính trước hết sẽ chạy một chương trình có kích thước tương đối nhỏ được lưu trong bộ nhớ chỉ đọc (ROM, sau này là EEPROM, bộ nhớ flash NOR) cùng với một số dữ liệu cần thiết để khởi tạo RAM (đặc biệt là trên các hệ thống x86), truy cập thiết bị điện tĩnh (thường là thiết bị khối, ví dụ như bộ nhớ flash NAND) hoặc các thiết bị mà từ đó các chương trình và dữ liệu của hệ điều hành có thể được nạp vào RAM.

Trong một số hệ thống máy tính trước đây, sau khi nhận được tín hiệu khởi động từ người sử dụng hoặc thiết bị ngoại vi, máy tính sẽ tải một số lượng rất nhỏ các chỉ thị cố định vào một vị trí cụ thể trong bộ nhớ, khởi tạo ít nhất một CPU, sau đó trỏ CPU tới các chỉ thị đó và bắt đầu chạy chúng. Các chỉ thị này thường bắt đầu thao tác nhập liệu từ một thiết bị ngoại vi nào đó (thao tác này có thể được lựa chọn bởi người sử dụng). Các hệ thống khác có thể gửi lệnh phần cứng trực tiếp tới thiết bị ngoại vi hoặc bộ điều khiển nhập/xuất để tiến hành một thao tác nhập liệu rất đơn giản (ví dụ như "đọc vào bộ nhớ sector 0 của thiết bị hệ thống, bắt đầu từ vị trí 1000"), nhờ đó một đoạn chỉ thị nhỏ của trình tải khởi động được nạp vào bộ nhớ; sau đó thiết bị nhập/xuất có thể gửi tín hiệu hoàn thành để bắt đầu quá trình CPU thực thi các chỉ thị trên.

Các máy tính có kích thước nhỏ hơn thường dùng cơ chế tải khởi động ít linh hoạt nhưng mang tính tự động hóa nhiều hơn để đảm bảo thời gian khởi động được nhanh và máy được khởi động đúng theo cấu hình phần mềm đã định sẵn. Ví dụ, với nhiều loại máy tính để bàn, quá trình khởi động bắt đầu bằng việc CPU chạy phần mềm đang chứa trong ROM (chẳng hạn như BIOS của một chiếc Máy tính cá nhân IBM hoặc một chiếc máy tính tương thích với PC IBM) tại một địa chỉ đã định sẵn (một số CPU như dòng Intel x86 được thiết kế để chạy phần mềm này ngay sau khi đặt lại mà không cần sự trợ giúp từ bên ngoài). Phần mềm này có chức năng cơ bản là tìm kiếm các thiết bị có thể tham gia quá trình khởi động, sau đó tải một chương trình nhỏ từ một phần đặc biệt (phổ biến nhất là boot sector) của thiết bị có khả năng nhất, thường bắt đầu từ một điểm cố định (chẳng hạn như phần đầu của sector đó).

Khởi động mạng[sửa | sửa mã nguồn]

Hầu hết máy tính đều có khả năng khởi động thông qua một mạng máy tính. Trong trường hợp này, hệ điều hành được lưu trữ trong ổ đĩa của một máy chủ, một số phần của nó sẽ được chuyển tới máy khách thông qua một giao thức đơn giản như Trivial File Transfer Protocol (TFTP). Sau khi các phần này đã được chuyển xong, hệ điều hành sẽ tiếp quản quá trình khởi động.

Tham khảo[sửa | sửa mã nguồn]

  1. ^ “GNU GRUB - GNU Project - Free Software Foundation (FSF)”. www.gnu.org. Truy cập ngày 27 tháng 9 năm 2021.
  2. ^ a b “systemd-boot”. www.freedesktop.org. Truy cập ngày 27 tháng 9 năm 2021.

Liên kết ngoài[sửa | sửa mã nguồn]