Mô-đun hạt nhân: .o vs .ko


10

Có vẻ như các tệp chứa các mô-đun hạt nhân được gọi .o, ít nhất đó là những gì tôi hình dung khi xem một hướng dẫn như thế này . Tuy nhiên, trên hộp bóp debian của tôi, các tệp này dường như được gọi .ko.

Có phụ thuộc vào việc phân phối (hoặc xác minh) liệu các tệp được gọi .ohay không .ko, và chúng ít nhiều giống nhau, nếu không?

Câu trả lời:


11

Tôi tìm thấy câu trả lời sau đây :

Câu trả lời ngắn gọn là tệp .ko là tệp đối tượng của bạn được liên kết với một số cấu trúc dữ liệu được tạo tự động mà kernel cần.

Tệp .o là tệp đối tượng của các mô-đun của bạn - kết quả của việc biên dịch các tệp c của bạn. Sau đó, hệ thống xây dựng kernel sẽ tự động tạo một tệp C khác với một số cấu trúc dữ liệu mô tả mô-đun kernel (có tên là your_module_kmod.c), biên dịch tệp C này thành một tệp đối tượng khác và liên kết tệp đối tượng của bạn và tệp đối tượng được xây dựng để tạo .ko tập tin.

Trình liên kết động trong kernel chịu trách nhiệm tải các mô-đun hạt nhân, hy vọng sẽ tìm thấy cấu trúc dữ liệu mà hạt nhân đặt trong đối tượng kmod trong tệp .ko và sẽ không thể tải mô-đun hạt nhân của bạn mà không có chúng.

Cũng từ nguồn đó , trích dẫn tldp : Tối đa 2.4 phiên bản kernel, đó là ".o" và kể từ 2.6, đó là ".ko".


3

Có vẻ như một hướng dẫn cũ (hướng dẫn), trong thực tế, nó đã được viết vào năm 2005. Khi nhân Linux là 2.4.x, các mô-đun có phần mở rộng .o, trong khi ở 2.6 chúng đã trở thành .ko

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.