Linux驱动程序和系统文件

Linux驱动程序和系统文件,linux,linux-kernel,linux-device-driver,ioctl,sysfs,Linux,Linux Kernel,Linux Device Driver,Ioctl,Sysfs,因此,我一直在阅读Linux API(syscalls和libc)以及设备ioctl,通过create(dev_name)和ioctl(device_file_handle)和sysfs文件系统调用ioctl。下面是我的问题: sysfs“应该”是只读的吗?在这里,各种内核参数都被公开以供读取?或者它们“应该”也是可写的 将来是否需要所有驱动程序在sysfs中公开接口 如果上面的答案是正确的,那么我们真的需要IOCTL调用了吗?因为我们需要做的只是改变sysfs中一些文件的值, e、 例如,要在

因此,我一直在阅读Linux API(syscalls和libc)以及设备ioctl,通过
create(dev_name)
ioctl(device_file_handle)
sysfs
文件系统调用ioctl。下面是我的问题:

  • sysfs“应该”是只读的吗?在这里,各种内核参数都被公开以供读取?或者它们“应该”也是可写的

  • 将来是否需要所有驱动程序在
    sysfs
    中公开接口

  • 如果上面的答案是正确的,那么我们真的需要IOCTL调用了吗?因为我们需要做的只是改变sysfs中一些文件的值, e、 例如,要在驱动程序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和任何新库如何?(只是想就这个想法进行坦率的讨论)

  • a) 不,这要看情况
  • 我没听说过这样的要求
  • 您必须提供调用方和内核之间交换的协议。你可以在Plan9中查看它是如何完成的。我们需要IOCTL,请在
  • 你考虑过安全问题吗?我想这将是操作系统上的一个大漏洞
  • 据我所知
  • 不会讨论的

  • 请查看我对您的问题的在线回复:

    1) 我们可以通过sysfs执行读写操作;同样,这取决于你的要求

    2) 我不这么认为;sysfs和ioctl都有自己的优势,因此不能用相同的方式对两者进行比较

    3) 这不是真的

    4) sysfsapi(show和storeapi)已经公开给用户空间。您可以从用户空间调用这些API


    5) 可能是,;但是我不确定。

    1->没有任何系统也可以为write实现。用户可以这样使用它。回显“Hello”>/sys/devices/***/sysfs\u条目

    2->不,我认为大多数与平台相关的驱动程序都会打开sysfs接口

    3->以上问题的答案为否。我们还需要IOCTL

    4->我相信只有包含某些功能的有用API才会作为sysfs条目公开。例如,驱动程序后面的设备有100个寄存器。每个寄存器都不作为sysfs条目公开。但是,如果有3-4个特性涉及这些寄存器,那么这些特性将作为sysfs条目公开。这些条目不应导致错误数据出现任何错误/恐慌。这一责任在开发商身上

    不知道

    不知道