[英]Linux: How does communication with kernel module from user space happen
我正在閱讀《嵌入式Linux入門》一書和《 Linux內核模塊編程指南》,對用戶空間應用程序與內核模塊的通信感到困惑
用戶空間App->設備節點/進程文件->內核模塊(位於/ lib / modules /中)
1)當我們與設備節點方法(/ dev /-使用open,read,write,close調用)和/ proc / file方法進行通信時,有什么確切的區別?
應該為過程信息保留procfs
( /proc
),模塊不應在其中放置任何文件。 在某些時候, procfs
是唯一可用的偽文件系統,這就是為什么您可以找到聲音系統或RTC信息的原因。 然后,創建了sysfs
來正確包含這些信息。
使用設備文件(通常位於/ dev中)和來自procfs的文件之間的主要區別是在內核中對其進行處理的方式。
使用file_operations結構注冊用於設備文件的操作,通常使用字符設備的cdev_init
和cdev_add
進行注冊。 您的模塊執行此操作的頻率可能不高,子系統是注冊設備的系統。
使用proc_create注冊procfs
中文件的操作時
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.