簡體   English   中英

Linux驅動程序和Sysfs

[英]Linux Drivers and Sysfs

因此,我一直在閱讀Linux API(syscalls和libc)以及設備ioctl。通過create(dev_name)ioctl(device_file_handle)以及sysfs文件系統調用ioctls。 所以這是我的問題:

  1. sysfs是否“假定”為只讀,其中公開了要讀取的各種內核參數? 還是他們“應該”也可寫?

  2. 將來是否需要所有驅動程序才能公開sysfs接口?

  3. 如果上述答案是正確的,那么我們真的會再需要IOCTL呼叫了嗎? 因為要做驅動程序要做的所有事情就是更改sysfs中某些文件的值,例如,要在驅動程序D1上調用一個名為DO_SOMETHING的ioctl,我們將這樣做:

     echo 1> /sysfs/D1/IOCTLS/DO_SOMETHING ( or something like that ... :) ) 
  4. 是否有任何計划將內核API(即syscalls和libc)公開為sysfs文件,例如,

     echo 1> /sysfs/libc/get_system_time cat /sysfs/libc/results/system_time 

    這樣做是個好主意嗎?

  5. Windows中是否有類似sysfs的系統? 還是正在進行的任何項目?

  6. 如何通過http公開核心系統調用,libc和任何新庫? (只想對此主題進行坦率的討論)

  1. a)否b)視情況而定。
  2. 我沒有聽說過這樣的要求。
  3. 您必須提供一個在調用方和內核之間交換的協議。 您可以檢查在Plan9中是如何完成的。 我們將需要IOCTL,有關更多信息,請參見SO Answer
  4. 您是否考慮過安全性? 我認為這將是操作系統中的一個大漏洞。
  5. 據我所知。
  6. 不會討論。

請找到您的問題的我的在線答復:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM