Khởi động máy tính

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm

Trong máy tính, khởi động máy tính (booting) là một quá trình tự mồi (bootstrapping) để khởi động sự làm việc của hệ điều hành khi người dùng bật một hệ thống máy tính. Một trình tự khởi động (boot sequence) là một tập hợp các lệnh ban đầu được máy tính thực hiện khi nó được khởi động. Trình khởi động (bootloader) sẽ nạp hệ điều hành chính vào máy tính để hoạt động.

Trình nạp khởi động (Boot loader)[sửa | sửa mã nguồn]

Các hệ thống tính toán hoạt động được nhờ bộ xử lý trung tâm (hay một tập hợp các bộ xử lý), chỉ có thể thực thi các đoạn mã ở bộ nhớ điều hành, được biết đến với tên gọi là bộ nhớ hệ thống, với nhiều loại tùy thuộc vào công nghệ sản xuất như: ROM (Read-Only Memory - bộ nhớ chỉ đọc), hay RAM (Random Access Memory - bộ nhớ truy cập ngẫu nhiên). Mã của các hệ điều hành, các chương trình ứng dụng và dữ liệu hiện nay thường được lưu trữ trên các bộ nhớ bền, bộ nhớ ngoại vi, hay bộ nhớ thứ cấp. Các ví dụ của các loại bộ nhớ đó là: hard disk (ổ cứng), CD, USB, đĩa mềm. Khi một máy tính được bật, ban đầu nó dựa hoàn toàn vào các mã và dữ liệu nằm trên những phần có sẵn của bản đồ bộ nhớ hệ thống, như ROM, NVRAM hay CMOS RAM. Các đoạn mã và dữ liệu "cứng" được lưu trữ trên bản đồ bộ nhớ hệ thống này là những hướng dẫn cần thiết tối thiểu để truy nhập vào những thiết bị cứng ngoại vi và nạp vào bộ nhớ hệ thống tất cả những phần cần thiết của hệ điều hành. Có thể nói trong khoảng thời gian khởi động máy tính, hệ thống máy tính không có hệ điều hành nào trong bộ nhớ trong. Tuy nhiên, nếu chỉ có phần cứng máy tính không thôi (vi xử lý hay bộ nhớ hệ thống) thì không thể thực hiện được những thao tác phức tạp để nạp các tệp tin chương trình từ hệ thống lưu trữ vào bộ nhớ, mà đây vốn là một trong những tác vụ quan trọng nhất.

Chương trình giúp bắt đầu một chuỗi các lệnh được kết thúc bằng việc toàn bộ hệ điều hành được nạp vào hệ thống gọi là "bootstrap loader". Những nhà thiết kế máy tính thời kỳ đầu đã từng có ý tưởng: trước khi một máy tính ở trạng thái hoạt động hoạt động, nó phải trải qua một giai đoạn khởi động hay "mồi". Do đó, để thiết lập trạng thái hoạt động cho hệ thống máy tính, một chương trình đặc biệt, dung lượng nhỏ, gọi là "trình nạp khởi động" (tiếng Anh: "bootstrap loader" hay "bootstrap" hay "boot loader"), sẽ được thực thi trước tiên. Chương trình này chỉ có nhiệm vụ duy nhất là nạp các phần mềm khác để hệ điều hành có thể bắt đầu hoạt động. Thường thì trình nạp khởi động gồm nhiều giai đoạn, mỗi giai đoạn là một chương trình nhỏ hơn được thực hiện tuần tự, sau khi chương trình này kết thúc sẽ gọi tiếp đến chương trình kia, cho đến khi chương trình cuối cùng nạp hệ điều hành.

Những máy tính thời kỳ đầu có một dãy công tắc chuyển mạch (toggle switch) ở bảng điều khiển cho phép người điều hành có thể nhập bằng tay những lệnh khởi động bằng dưới dạng các số hệ nhị phân vào bộ nhớ trước khi chuyển tiếp điều khiển cho CPU. Trình nạp khởi động sau đó sẽ đọc hệ điều hành từ một bộ nhớ ngoài như băng đục lỗ, thẻ đục lỗ, hay đĩa nhớ.

Mã giả với ngôn ngữ Assembly mô tả một quá trình nạp hệ thống đơn giản gồm 8 bước:

0: Đặt thanh ghi P là 8
1: Kiểm tra thiết bị đọc băng đục lỗ sẵn sàng chưa
2: Nếu chưa sẵn sàng, nhảy đến 1
3: Đọc 1 byte từ băng đục lỗ vào bộ lưu
4: Nếu kết thúc băng, nhảy đến 8
5: Lưu bộ lưu vào địa chỉ trong thanh ghi P
6: Tăng thanh ghi P lên
7: Nhảy đến 1

Một ví dụ liên quan dựa trên một trình nạp hệ thống trong một máy tính cá nhân của tập đoàn Nicolet Instrumet vào những năm 1970. Lưu ý: các byte trong bước thứ hai (bước số 1) được đọc từ băng đục lỗ theo chiều ngược.

0: Đặt thanh ghi P là 106
1: Kiểm tra thiết bị đọc băng đục lỗ sẵn sàng chưa
2: Nếu chưa sẵn sàng, nhảy đến 1
3: Đọc 1 byte từ băng đục lỗ vào bộ lưu
4: Lưu bộ lưu vào địa chỉ trong thanh ghi P
5: Giảm thanh ghi P 
6: Nhảy đến 1

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