Quy trình nạp hệ điều hành - Stream Hub

Quy trình nạp hệ điều hành

by Admin


Đăng vào Thu Nov 30 2017



KHỞI ĐỘNG HỆ THỐNG

Để khởi động một hệ điều hành, cần phải tải vào bộ nhớ kernel (nhân) của hệ đề hành đó.

Vậy làm thế nào mà phần cứng, cụ thể ở đây là ổ đĩa (secondary storage, có thể là HDD hoặc SSD), biết kernel ở đâu và làm thế nào để tải lên bộ nhớ kernel đó? Thủ tục khởi động máy tính bằng cách tải hạt nhân được gọi là khởi động hệ thống.  

Trong hầu hết các hệ thống máy tính, một đoạn mã nhỏ được gọi là chương trình bootstrap hoặc trình khởi động sẽ định vị kernel, tải nó vào bộ nhớ chính và bắt đầu tiến trình khởi động.  

Nói theo cách khác, chương trình đơn giản ấy sẽ “mồi” cho cả hệ điều hành lớn hoạt động. Chuyên sâu hơn, nó sẽ chỉ chỗ bắt đầu có các file của hệ điều hành, và khởi động những file ấy. Sau đó, những file được “mồi”/ được khởi động ấy sẽ khởi động cả hệ điều hành.

Chương trình bootstrap có thể thực hiện khá nhiều tác vụ. Thông thường, một trong số đó là chạy chẩn đoán để xác định trạng thái của máy. Nếu kết quả chẩn đoán ổn, chương trình có thể tiếp tục với các bước khởi động. Nếu không, máy của bạn sẽ được quét/ scan, và việc này là tự động, bạn không thể tránh.

 

Tại sao các file hệ thống, các file hệ điều hành lại nằm trên ổ đĩa (HDD hoặc SSD) mà không nằm trên RAM để tải cho nhanh?

Bạn biết rằng những chương trình đã nằm trong RAM sẽ được CPU thực thi nhanh hơn (bạn có thể tham khảo khái niệm tầng dữ liệu). Nhưng một trong những lý do chính hệ điều hành không nằm sẵn trên RAM là vì:

  • RAM ở trạng thái unknown (không xác định) khi khởi động máy tính.
  • Dữ liệu, file nằm trên ổ đĩa (ở dạng read-only memory, hay nằm trên HDD, SSD), khó bị virus xâm nhập.

 

Lưu trữ trình nạp ở đâu?

Một số hệ thống như điện thoại di động, máy tính bảng và game console lưu trữ toàn bộ hệ điều hành trong ROM. Lưu trữ hệ điều hành trong ROM phù hợp với các hệ điều hành nhỏ, phần cứng hỗ trợ đơn giản, và hoạt động khắc nghiệt.  

Một vấn đề với cách tiếp cận này là việc thay đổi mã khởi động sẽ đòi hỏi phải thay đổi các chip phần cứng ROM. Một số hệ thống giải quyết vấn đề này bằng cách sử dụng EPROM: EEPROM dùng để lưu trữ lượng dữ liệu ít và có thể thay đổi nội dung được.

Tất cả các dạng ROM đều được biết đến như là firmware, một chương trình nhỏ để điều khiển phần cứng, vì đặc tính của chúng nằm ở đâu đó giữa phần cứng và phần mềm. Một vấn đề với firmware nói chung là mã thực thi của nó chậm hơn so với mã thực thi trong RAM. Một số hệ thống lưu trữ hệ điều hành trong firmware và sao chép nó vào RAM để thực hiện cho nhanh. Một vấn đề cuối cùng với firmware là nó khá đắt.

Đối với các hệ điều hành lớn (bao gồm hầu hết các hệ điều hành như Windows, Mac OS X và UNIX) hoặc đối với các hệ thống thay đổi thường xuyên, trình nạp bootstrap được lưu trữ trong firmware và hệ điều hành thì lưu trong đĩa.  

 

 

GRUB là một ví dụ về một chương trình khởi động có mã nguồn mở (open source) cho các hệ thống Linux. Tất cả các bootstrap ràng buộc đĩa, và ngay cả hệ điều hành đều có thể dễ dàng thay đổi bằng cách viết các phiên bản mới hơn vào đĩa. Một đĩa có phân vùng khởi động (đọc thêm trong Phần 10.5.1) được gọi là đĩa khởi động hoặc đĩa hệ thống. Bạn hoàn toàn có thể tải kernel từ đây https://cdn.kernel.org/pub/linux/kernel/ và cài vào máy hay máy ảo để vọc.




Để lại bình luận:
Curious developer
Tech seeker
Search