Theo thiết kế linux trên x86 và ppc, không gian địa chỉ ảo 4g được chia thành 3: 1. Địa chỉ ảo của người dùng đến 3g.Tại sao yêu cầu copy_to/from_user?
Bây giờ nếu ứng dụng người dùng thực hiện một ioctl chuyển con trỏ tới bộ đệm, mô-đun hạt nhân, có thể trực tiếp thực hiện một memcpy, tôi đã thử và nó hoạt động. => Tại sao chúng ta cần người dùng copy_to/copy_from.
Lưu ý: Nếu trang được hoán đổi, trình xử lý pagefault của hạt nhân sẽ đưa nó trở lại và nó không hiển thị với mô-đun hạt nhân.
cần ý tưởng ... ý tưởng
ok, vì vậy lý do chính là xử lý địa chỉ ** xấu **. – mSO
và nếu địa chỉ hợp lệ (ví dụ như trường hợp tốt nhất, không ai đang làm bất kỳ nghịch ngợm nào) thì memcpy sẽ hoạt động. – mSO
@Manish: Nó không nhất thiết phải là "nghịch ngợm", nó có thể chỉ là một lỗi cũ đơn giản trong không gian người dùng - các lỗi như vậy nên được xử lý một cách duyên dáng bởi hạt nhân. Và 'memcpy()' sẽ chỉ hoạt động trên một số kiến trúc. – caf