Linux內核與應用層數據交流的幾種方式

本文主要介紹了Linux內核與數據交流的幾種方式

現在我想到的幾種:

1.輸入子系統,這個是單向的,只能內核->應用層

2.系統調用,ioctl/read/write等函數,對應了字符設備等設備類型,這個是雙向的,內核層和應用層可以互相發數據

3.sys文件系統,也就是屬性節點,同樣也是雙向的

4.proc文件系統

5.用戶空間驅動,很高大上的感覺有木有,這個也是雙向的

6.讀寫塊設備(大概也許可能也能實現用戶空間和內核空間的數據交互,但是自己對塊設備不甚瞭解,寫這個的話我會查閱很多資料再考慮)

7.直接讀寫物理內存

8.fw_printenv/fw_setenv設置uboot環境變量的工具,應用層使用fw_setenv設置uboot的環境變量,內核啓動過程中可以讀取這個變量,也可以實現應用層往內核發數據。

目前我用到的大概也許可能就這幾種,週末有時間會對那幾種方法都做個詳細的分析。又發現新的內核空間和用戶空間進行數據交流的方法再補充。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章