Trên hệ thống x86, tôi có một mô-đun hạt nhân Linux ("mô-đun đồng hồ") được hạt nhân thông báo mỗi khi mô-đun hạt nhân cụ thể ("đích") được tải. Hầu như bất kỳ mô-đun hạt nhân có thể là một mục tiêu. Tôi sử dụng điều này trong an instrumentation system Tôi đang làm việc.Có cách nào để mô-đun hạt nhân tìm các địa chỉ phần của mô-đun được nạp khác không?
Khi mô-đun người xem xử lý thông báo như vậy, có thể thuận tiện vì một lý do nào đó, nếu người quan sát biết địa chỉ của các phần ELF của mô-đun đích được nạp. Bất kỳ ý tưởng làm thế nào thông tin này có thể thu được trong không gian hạt nhân?
Tất nhiên tôi có thể lấy nội dung của các tệp thích hợp trong /sys/module/<target_name>/sections/
trong không gian người dùng ngay sau khi mục tiêu được tải và sau đó bằng cách nào đó chuyển dữ liệu này đến mô-đun giám sát nhưng điều này quá vụng về. Tôi muốn tìm cách để lấy thông tin này trực tiếp trong không gian hạt nhân.
Theo như tôi đã thấy trong nguồn của trình tải mô-đun, nó không lưu trữ địa chỉ phần trong struct module
, chỉ cần tạo tệp sysfs cho các phần. Có thể là bằng cách nào đó có thể tìm thấy các đối tượng hạt nhân tương ứng với các tập tin đó và đọc dữ liệu cần thiết từ các đối tượng này? Hoặc có thể sử dụng một số cách tiếp cận khác?
Dường như kobject chứa trong 'struct module' (' mkobj.lĩnh vực kobj') được tham gia vào việc mô tả các mô-đun trong sysfs. Tôi sẽ tìm hiểu thêm về điều này khi tôi có thời gian. Có thể có được các thuộc tính có chứa tên và địa chỉ của các phần bằng cách sử dụng kobject đó làm điểm bắt đầu. – Eugene