Linux 的 mknod 命令是一个用于创建设备特殊文件(Device Special File)的低级命令。这些特殊文件作为设备驱动程序在文件系统中的接口,允许用户空间程序与硬件设备或内核模块进行交互。

基本语法:

mknod [选项] 名称 类型 [主设备号 次设备号]

详细说明:

  1. 文件类型参数:

    • b:创建块设备文件(如硬盘、SSD等)
    • c 或 u:创建字符设备文件(如终端、串口等)
    • p:创建FIFO(命名管道)文件
  2. 设备号参数:

    • 主设备号:标识设备类型或驱动程序
    • 次设备号:标识具体的设备实例
  3. 常用选项:

    • -m MODE:设置文件权限(如 0666)
    • –help:显示帮助信息
    • –version:显示版本信息

典型应用场景:

  1. 创建设备节点示例:

    # 创建字符设备(主设备号1,次设备号3)
    sudo mknod /dev/mydevice c 1 3
    
  2. 创建块设备示例:

    # 创建块设备并设置权限
    sudo mknod -m 0660 /dev/myblockdev b 8 1
    
  3. 创建命名管道:

    mknod mypipe p
    

注意事项:

  • 通常需要root权限才能创建设备文件
  • 设备号应与内核中注册的设备号一致
  • 在现代Linux系统中,udev通常会自动管理设备节点创建

现代替代方案:
虽然mknod仍然可用,但在大多数现代Linux发行版中,更推荐使用:

  • udev规则自动创建设备节点
  • sudo MAKEDEV脚本
  • devtmpfs文件系统自动管理

历史背景:
mknod命令起源于Unix早期,当时需要手动创建设备文件。随着Linux设备管理系统的演进,虽然mknod仍然可用,但大多数情况下已被更自动化的方案取代。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐