Thứ Bảy, 21 tháng 4, 2012

Tiến trình khởi động của LINUX


Tiến trình khởi động Linux

Khởi động hệ thống : Trên một máy tính , Linux khởi động bắt đầu trong BIOS từ địa chỉ 0xFFFF0. Bước đầu tiên của BIOS là POST ( power-on self test ) để kiểm tra phần cứng , liệt kê danh sách các thiết bị và khởi động chúng . Sau đó BIOS tìm kiếm các thiết bị khởi động trong CMOS như đĩa mềm ,CD-ROM, USB hay phân vùng MBR ( Master Boot Record ) trong đĩa cứng . Thường thì hệ thống bắt đầu khởi động từ đĩa cứng có MBR . MBR là 1 sector 512 byte đặt tại sector 1 cylinder 0 head 0. Sau khi MBR được nạp , BIOS sẽ chuyển quyền điều khiển cho đoạn mã trong MBR
















Giai đoạn 1 : MBR là 1 image 512 byte gồm 446 byte khởi động sơ cấp , 64 byte phân hoạch (partition table) và 2 byte magic number . Nhiêm vụ của MBR là tìm và nạp trình khởi động thứ cấp bằng cách xác định phân vùng có cờ Active trong bảng , rồi đọc bootsector từ phân vùng đó 



Giai đoạn 2 : BOOTLOADER tiến hành nạp kernel và khởi động RAM disk (nếu cần) . BOOTLOADER trong linux thường là LILO hoặc GRUB. Nhưng hiện giờ có lẽ chỉ còn xài GRUB. File cấu hình của GRUB là /etc/grub.conf ( Trong Windows thì bootloader có tên là NTLDR ). Trình khởi động đọc file cấu hình và hiển thị danh sách kernel. Sau khi lựa chọn sẽ nạp kernel image và initrd vào bộ nhớ . Khi kernel sẵn sàng , giai đoạn 2 sẽ triệu gọi kernel . Kernel nạp vào bộ nhớ , quyền điều khiển sẽ trao cho kernel. Kernel có 2 dạng nén là zImage hoặc bzImage ( thường là bzImage). 
+ Phần đầu kernel chứa thủ tục thiết lập phần cứng và giải nén kernel , sau đó triệu gọi kernel và quá trình khởi động kernel bắt đầu .
+ Kernel sẽ mount hệ thống file và file hệ thống . Kernel sẽ khởi động tiến trình init nên init có process id là 1 ( init là cha của các tiến trình khác trong linux )
Đến đây có thể coi như tiến trình khởi động linux đã hoàn thành .

Vậy có thể tóm tắt lại là :




P/s : GRUB hay LILO đều có thể khởi động cho cả Linux và Windows, nhưng ngược lại các bootloader trên Windows như (NTLDR, BOOTMGR) thì không hỗ trợ khởi động cho các hệ điều hành Linux. Ví dụ hình sau minh họa cho máy tính cài 2 HDH là Windows và Linux

Không có nhận xét nào:

Đăng nhận xét