- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
以下是我的简单驱动程序代码的摘录。
int vprobe_ioctl( struct file *filep, unsigned int cmd, void *UserInp)
{
case IOCTL_GET_MAX_PORTS:
*(int*)UserInp = TotalPorts;
#if ENABLED_DEBUG
printk("Available port :%u \n ", TotalPorts);
#kết thúc nếu
phá vỡ;
}
我不知道函数 copy_to_user
应该在写入用户空间内存时使用。该代码直接访问用户地址。但是我的开发系统(x86_64 架构)中仍然没有出现任何内核崩溃。它按预期工作。
但有时当我在其他一些 x86_64 机器中插入 .ko 文件时,我会看到内核崩溃。因此,我用 copy_to_user
替换了直接访问,它起作用了。
谁能解释一下,
i) 如何直接访问用户地址?
ii) 为什么我看到内核在某些系统中崩溃,而在其他一些系统中运行良好。系统之间是否存在任何内核配置不匹配,导致内核可以直接访问用户进程的虚拟地址?
注意:我使用的所有系统都具有相同的操作系统和内核。- 通过 kickstart 生成的相同图像。 - 不可能有任何差异。
Cảm ơn trước.
câu trả lời hay nhất
看到崩溃会很有趣。现在我所说的是基于我对内存如何工作的了解的假设。用户空间内存是虚拟的。这意味着特定进程地址 X 现在位于某个物理内存上,这个物理内存是当前分配给您的进程的内存页。复制给用户首先检查给定的内存是否真的属于进程和其他安全检查。除此之外还有映射问题。
内核内存有自己的地址空间,需要将虚拟地址映射到物理地址。内核使用 mmu 的帮助(每个体系结构不同)。在 x86 中,内核虚拟和用户虚拟之间的映射是 1:1(这里有不同的问题)。在其他系统中,这并不总是正确的。
关于c - 直接访问用户空间地址而不是 copy_to_user 是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158631/
Chạy Tomcat không thành công với java.lang.OutOfMemoryError - lỗi liên quan đến thiếu dung lượng PermGen. Gần đây tôi đã thay đổi Tomcat để chạy với tư cách người dùng của riêng tôi (không phải root).
Chúng tôi có một bảng với hàng triệu hàng chứa hình học PostGIS. Truy vấn chúng tôi muốn thực hiện là: mục nhập mới nhất nằm trong hình học giới hạn là gì? Vấn đề với truy vấn này là chúng ta thường có một số lượng lớn các mục khớp với hộp giới hạn (với bán kính khoảng 5 km), sau đó
Tôi có thiết lập Elaticsearch cho phép người dùng tìm kiếm các ký tự đại diện dưới dạng chỉ mục. mảng:3 [ "index" => "users" "type" => "user" "body" => mảng
Tôi đã tạo một bảng trong đó mỗi hàng chứa hai nút và hai nút được kết nối với nhau và tôi muốn tách hai nút ra. Tôi đã sử dụng cái không hoạt động và css cũng vậy, đó là một cách khác để làm điều đó. Tôi gặp một vấn đề khác vì tôi không muốn hiển thị nút hành động bên trong viền bảng mà gần với
Tôi đang cố gắng tạo khoảng trắng giữa hai nút trong jQuery Mobile. Bố cục thực tế như sau: Nút 1 Nút 2 (Ẩn w/hiển thị: không có)
Như hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời sẽ được hỗ trợ bởi các sự kiện, trích dẫn hoặc chuyên môn, nhưng câu hỏi có thể gây ra tranh luận, tranh luận, bỏ phiếu hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Xin chào, tôi còn rất mới với các ứng dụng biểu đồ. Bây giờ tôi đã tạo biểu đồ thanh cho ứng dụng của mình. Khi tôi chạy tạo biểu đồ thanh dưới dạng dự án riêng biệt, kết quả đầu ra trông như thế này. Sau đó, khi tôi kết hợp biểu đồ thanh với ứng dụng của mình
Tôi gặp sự cố khi sử dụng H2 và GeoDB (trong bộ nhớ, junit). Ngoài ra, hãy sử dụng Hibernate 5 (phiên bản mới nhất của mọi gói, bao gồm cả không gian ngủ đông) và Spring 4. Nhận ra theo id
Tôi muốn vẽ một bản đồ nước Úc và thể hiện mỗi thành phố dưới dạng một điểm. Sau đó đánh dấu các thành phố có dân số lớn (>1 triệu) thư viện(sp) thư viện(bản đồ) dữ liệu(canada.cities)
đóng cửa. Câu hỏi này dựa trên ý kiến. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Câu hỏi được cập nhật để việc chỉnh sửa bài đăng này cung cấp thông tin thực tế và trích dẫn để trả lời nó. Đã đóng 6 năm trước. Cải thiện điều này
Làm cách nào để giữ khoảng trắng trong tệp .txt? Trong tệp .txt có nội dung: text :text text1 :text1 text23 :text2 text345 :text3 Nếu tôi viết cái này
Phím nào sau đây là phím lớn nhất? Phương án 1: 16 chữ số [0,9] Phương án 2: 30 nguyên âm Phương án 3: 16 chữ cái trong bảng chữ cái Phương án 4: 32 chữ số Ai đó có thể giúp tôi và cho tôi biết câu trả lời nào là đúng và cách tính ra nó không? Tôi biết
Việc sử dụng các neo Azure Space trong Unity 3D cho trải nghiệm thực tế tăng cường trong nhà và ngoài trời được triển khai trên iOS và Android có hữu ích không? Câu trả lời hay nhất Có, dành cho Azure Spatial Anch
Tôi có một hình ảnh tròn được định vị tuyệt đối. Hình ảnh chỉ cần chiếm 17% chiều rộng màn hình và cách đỉnh 5 pixel. Vấn đề là khi tôi thay đổi kích thước hình ảnh để chiếm 17% chiều rộng màn hình, nó sẽ làm như vậy nhưng đồng thời vùng chứa sẽ dài hơn. Bản thân hình ảnh không bị kéo dãn (kéo dài
Tôi đang sử dụng Cassandra trên Ubuntu 14.04. Từ tài liệu này, tôi có thể thấy rằng việc chạy lệnh: nodetool snapshot sẽ tạo một ảnh chụp nhanh không gian khóa của tôi. Đầu ra của lệnh là: nodetool sn
Heroku giới thiệu "không gian riêng tư", có thể di chuyển các ứng dụng hiện có sang không gian riêng tư không? https://blog.heroku.com/archives/2015/9/10/herok
Các khoảng trắng không liên kết hoặc các ký tự được mã hóa HTML khác có được phép trong bản ghi ngữ nghĩa không? Vấn đề tôi gặp phải là; ký tự được phần mềm coi là phần cuối của bản ghi. Ví dụ: Giả sử tôi có hồ sơ kết hôn bao gồm họ của 2 người đã kết hôn, năm kết hôn và ngày cưới.
Tôi đang thực hiện dự án "bãi đậu xe thông minh" và tình cờ tìm thấy một video trên YouTube chứa những gì chúng tôi thực sự cần. Chúng tôi đã triển khai phần đầu tiên là thực hiện chuyển đổi phối cảnh theo thời gian thực từ nguồn video, bước tiếp theo là xác định nó dưới dạng một tập hợp các hình chữ nhật. Về cơ bản, tôi cần biết anh ấy thực hiện nó như thế nào
Tôi có hai lớp: Engine và Trainset (nhiều đơn vị), cả hai lớp đều chia sẻ không gian ID chứa tên và chuỗi id=-. Đây là lớp Engine của tôi (nó trừu tượng vì có các lớp con của Engine Type(DieselEngin)
Sẽ thật tuyệt nếu có ai có thể giúp tôi. Tôi đang cố gắng sử dụng lệnh Split của Java để phân tách một chuỗi bằng cách sử dụng dấu cách, nhưng vấn đề là chuỗi đó có thể không có dấu cách, điều đó có nghĩa là nó sẽ chỉ là một chuỗi đơn giản (thay vì "enter 2" nó sẽ là "exit" ) Máy quét
Tôi là một lập trình viên xuất sắc, rất giỏi!