Từ những gì tôi đọc, mục đích của depmod là theo dõi các phụ thuộc cho mỗi mô-đun hạt nhân khi nó được tải. Tại sao điều này không thể được xác định đơn giản một cách tự động khi mô-đun hạt nhân được tải, tương tự như tải động thư viện chia sẻ không gian người dùng?Tại sao depmod cần thiết để xây dựng và làm việc với các mô-đun hạt nhân?
Trả lời
depmod không chỉ tính toán phụ thuộc trực tiếp - nó cũng xây dựng một ánh xạ giữa số nhận dạng phần cứng và các mô-đun xử lý chúng. Điều này được sử dụng để tìm mô-đun chính xác để tải cho một phần phát hiện phần cứng.
Vì lý do tại sao nó không làm nhu cầu tải như không gian người dùng, một phần của điều này là do mối liên kết hạt nhân không được phép truy cập hệ thống tệp, theo thiết kế. Triết lý trong hạt nhân là cách bố trí của hệ thống tập tin hoàn toàn lên đến không gian người dùng, và do đó không đảm bảo rằng foo.ko
sẽ được tìm thấy trong /lib/modules/3.0.1/drivers/somesubsys/foo.ko
. Như vậy, hạt nhân dựa vào các tiện ích không gian người dùng (như depmod và modprobe) để truyền dữ liệu thô cho các mô-đun của nó, theo thứ tự nó cần tải chúng; nếu không gian người dùng không thành công trong công việc này, nó sẽ trả về một lỗi và cho phép không gian người dùng đối phó với mớ hỗn độn.
nhưng sau đó, modprobe có thể xử lý việc giải quyết các phụ thuộc từ thông tin trong mô-đun và thăm dò các mô-đun phụ thuộc tương ứng trước, phải không? – PypeBros
depmod xây dựng bộ nhớ đệm của thông tin phụ thuộc này cho việc sử dụng của modprobe. thực sự quét tất cả các mô-đun cho thông tin này có thể mất nhiều thời gian, vì vậy bạn không muốn thực hiện nó mỗi khi bạn gọi modprobe – bdonlan