Tôi biết tất cả các cuộc thảo luận về lý do tại sao người ta không nên đọc / ghi tệp từ hạt nhân, thay vào đó là cách sử dụng / proc hoặc netlink để làm điều đó. Tôi muốn đọc / viết bằng mọi cách. Tôi cũng đã đọc Driving Me Nuts - Những điều bạn không bao giờ nên làm trong nhân .
Tuy nhiên, vấn đề là 2,6.30 không xuất sys_read()
. Đúng hơn là nó được bọc trong SYSCALL_DEFINE3
. Vì vậy, nếu tôi sử dụng nó trong mô-đun của mình, tôi nhận được các cảnh báo sau:
WARNING: "sys_read" [xxx.ko] undefined!
WARNING: "sys_open" [xxx.ko] undefined!
Rõ ràng là insmod
không thể tải mô-đun vì liên kết không diễn ra chính xác.
Câu hỏi:
- Làm thế nào để đọc / ghi bên trong kernel sau 2.6.22 (ở đâu
sys_read()
/sys_open()
không được xuất)? - Nói chung, làm thế nào để sử dụng lệnh gọi hệ thống được bao bọc trong macro
SYSCALL_DEFINEn()
từ bên trong hạt nhân?