2012-04-09 34 views

Trả lời

6

Nếu bạn muốn hiểu nội dung này, một trong những cách tốt nhất để tiếp cận nó là làm theo quy trình khởi động Linux Kernel Boot Process thông qua mã. Ví dụ: giả sử bạn sử dụng Linux chạy trên kiến ​​trúc x86. Điều gì xảy ra khi khởi động là BIOS cung cấp điều khiển cho bộ nạp khởi động. Bộ tải khởi động trong tern cho phép điều khiển hạt nhân.

Nhân sau đó sẽ trải qua quá trình khởi động. Ban đầu hầu hết các nội dung được viết bằng ngôn ngữ assembly - xem /arch/x86/boot/header.S

Sau đó, nó đến /arch/x86/boot/main.c. Ngay ở phần cuối của các chức năng chính bạn sẽ thấy cuộc gọi đến go_to_protected_mode()

Bạn có thể thấy chức năng đó trong /arch/x86/boot/pm.c

Vì vậy, một khi bạn khởi động vào hạt nhân, nó trở thành cổng cho CPU, và mã của bạn chạy trong máy ảo được cung cấp bởi nhân. Các chương trình người dùng bị ngăn không cho chạy trong các chế độ khác bởi thực tế là họ phải làm mọi thứ thông qua máy ảo này.

1

Chế độ người dùng chỉ có thể thay đổi chế độ đặc quyền của nó bằng cách tạo một số loại ngắt. Có vẻ như mục đích của ngắt là thay đổi chế độ đặc quyền của chương trình. Kết luận: Bằng cách ngắt chính nó, chương trình chế độ người dùng không thể nâng cao đặc quyền và tiếp tục chạy mã riêng .... Đó là cách bảo mật tuyệt vời này cơ chế hoạt động.

Billmic

Các vấn đề liên quan