[英]Linux Drivers and Sysfs
因此,我一直在閱讀Linux API(syscalls和libc)以及設備ioctl。通過create(dev_name)
和ioctl(device_file_handle)
以及sysfs
文件系統調用ioctls。 所以這是我的問題:
sysfs是否“假定”為只讀,其中公開了要讀取的各種內核參數? 還是他們“應該”也可寫?
將來是否需要所有驅動程序才能公開sysfs
接口?
如果上述答案是正確的,那么我們真的會再需要IOCTL呼叫了嗎? 因為要做驅動程序要做的所有事情就是更改sysfs中某些文件的值,例如,要在驅動程序D1上調用一個名為DO_SOMETHING的ioctl,我們將這樣做:
echo 1> /sysfs/D1/IOCTLS/DO_SOMETHING ( or something like that ... :) )
是否有任何計划將內核API(即syscalls和libc)公開為sysfs文件,例如,
echo 1> /sysfs/libc/get_system_time cat /sysfs/libc/results/system_time
這樣做是個好主意嗎?
Windows中是否有類似sysfs的系統? 還是正在進行的任何項目?
如何通過http公開核心系統調用,libc和任何新庫? (只想對此主題進行坦率的討論)
請找到您的問題的我的在線答復:
1)我們可以通過sysfs進行讀寫操作; 再次取決於您的要求。
2)我不這么認為; sysfs和ioctl都有各自的優勢,因此您不能以相同的方式進行比較。
3)這是不正確的。
4)Sysfs API(顯示和存儲API)已經暴露給用戶空間。 您可以從用戶空間調用這些API。
5)可能是; 但我不確定。
1->無法為寫也不能實現sysfs。 用戶可以這樣使用它。 回聲“你好”> / sys / devices / *** / sysfs_entry
2->不,我認為大多數與平台相關的驅動程序都打開sysfs接口
3->對第一個問題的回答。 我們仍然需要ioctl。
4->我相信只有涉及某些功能的有用API才會作為sysfs條目公開。 例如,驅動程序后面的設備有100個寄存器。 每個寄存器都不作為sysfs條目公開。 但是,如果涉及這些寄存器的3-4個功能將這些功能作為sysfs條目公開。 這些條目不應引起任何錯誤/對錯誤數據的恐慌。 該責任在開發人員身上。
5->不知道。
6->不知道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.