所以我一直在阅读Linux API(系统调用和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和任何新库? (只是想对这个想法进行坦率的讨论)
答案 0 :(得分:1)
答案 1 :(得分:0)
请查看我对你问题的内联回复:
1)我们可以通过sysfs执行读写操作;这又取决于你的要求。
2)我不这么认为; sysfs和ioctl都有自己的优势,所以你无法以相同的方式比较它们。
3)不正确。
4)Sysfs API(显示和存储API)已经暴露给用户空间。您可以从用户空间调用这些API。
5)可能是;但我不确定。
答案 2 :(得分:0)
1 - >也不能实现写入sysfs。用户可以使用这样的东西。 echo“你好”> / sys / devices / *** / sysfs_entry
2 - >不,我认为大多数平台相关的驱动程序都打开了sysfs接口
3 - >回答上述问题。我们仍然需要ioctls。
4 - >我相信只有涉及某些功能的有用API才会作为sysfs条目公开。例如,驱动程序后面的设备有100个寄存器。每个寄存器都不作为sysfs条目公开。但是,如果有3-4个涉及这些寄存器的功能,那么这些功能将作为sysfs条目公开。这些条目不应对错误数据造成任何错误/恐慌。开发人员有责任。
5 - >不知道。
6 - >不知道。