• Linux驱动开发3——devfs udev procfs sysfs debugfs傻傻地分不清楚


    Linux调试文件系统

    1.1、procfs

    早期的Linux内核中,内核通过procfs输出调试信息,可以在用户态通过读写procfs节点与内核进行交互,用来获取处理器、内存、设备驱动、进程等各种信息。但是随着Linux的普及,Linux驱动开发者往procfs中添加了大量的设备驱动相关的节点,因此,sysfs应运而生。

    mount -t proc nondev /procfs

    1.2、sysfs

    sysfs基于kobject实现,而kobject是Linux内核设备驱动模型的基础,因此,sysfs是天然的为Linux设备驱动而服务的,主要用来添加相应的节点从而方便设备驱动的调试。

    mount -t sys nondev /sys

    1.3、debugfs

    debugfs,顾名思义,就是为了内核调试而生的,主要是Linux内核向用户态输出调试信息和异常信息。

    mount -t debugfs nondev /debugfs

    Linux设备文件系统

    2.1、devfs

    Linux 2.6内核之前,使用devfs文件系统管理Linux设备文件,但是所有的设备文件都必须使用mknod命令创建,无法动态创建设备文件。

    2.2、sysfs+udev

    Linux 2.6内核引入了sysfs文件系统,一方面是为了给procfs减负,另一方面是为了方便管理设备文件。

    sysfs基于kobject实现,Linux驱动模块可以添加相应的节点进行驱动调试;除此之外, 可以通过class_create()和device_create()动态创建设备文件。这就是udev的事情,udevd是用户态的守护进程,class_create()和device_create()在sysfs中创建相应的节点并触发uevent,udevd收到uevent事件之后,通过解析sysfs节点,按照/etc/udev/udev.conf规则在/dev下创建设备文件。

  • 相关阅读:
    请求页面
    获取iframe内的元素
    jquery 判断checkbox是否被选中问题
    bootStrap 模板地址
    content
    基于JS的文本验证
    canvas 移动光速特效-
    Swift 语法
    Xcode 8 Swift 类似插件方法
    js整频滚动展示效果(函数节流鼠标滚轮事件)
  • 原文地址:https://www.cnblogs.com/justin-y-lin/p/10684341.html
Copyright © 2020-2023  润新知