dev在linux中什么意思?一文搞懂Linux里dev目录与作用

来源:建站作者:灯下变量头衔:程序员
导读:本期聚焦于小伙伴创作的《dev在linux中什么意思?一文搞懂Linux里dev目录与作用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《dev在linux中什么意思?一文搞懂Linux里dev目录与作用》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中,dev是英文device的缩写,直译过来就是设备的意思。它通常指代根目录下的/dev目录,里面存放着系统中所有硬件设备对应的特殊文件。Linux遵循一切皆文件的设计哲学,因此无论是真实的物理硬件,还是虚拟的逻辑设备,都会以文件节点的形式出现在/dev中,供用户和程序访问。

dev在linux中什么意思?一文搞懂Linux里dev目录与作用

dev目录的作用

Linux内核在启动时或设备接入时,会在/dev下创建对应的设备文件。应用程序不需要直接跟硬件打交道,只需要打开、读取或写入这些设备文件即可。例如,向/dev/sda写入数据就是在向第一块硬盘写入,从/dev/zero读取则会得到无限的空字符。

设备文件的分类

设备文件主要分为块设备和字符设备两类,它们的区别如下:

类型特点常见例子
块设备以数据块为单位读写,可随机访问/dev/sda, /dev/vda
字符设备以字符流方式顺序读写/dev/tty, /dev/null

常见的dev中的文件

  • /dev/null:黑洞设备,写入的数据会被丢弃
  • /dev/zero:提供无限的零字节数据
  • /dev/random:提供随机数据
  • /dev/sda:第一块SCSI或SATA硬盘
  • /dev/tty:当前终端对应的设备文件

如何查看设备文件信息

我们可以使用ls命令配合-l参数查看/dev目录中文件的类型,开头为b的是块设备,开头为c的是字符设备。

# 查看/dev下部分设备文件信息
ls -l /dev/sda /dev/null /dev/zero
# 输出示例:
# brw-rw---- 1 root disk 8, 0 设备文件 /dev/sda
# crw-rw-rw- 1 root root 1, 3 字符设备 /dev/null
# crw-rw-rw- 1 root root 1, 5 字符设备 /dev/zero

使用mknod创建设备文件

在特殊情况下,我们可以手动用mknod命令创建字符或块设备文件,语法中需要指定类型、主设备号和次设备号。

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main() {
    // 创建一个主设备号240、次设备号0的字符设备文件mydev
    if (mknod("/dev/mydev", S_IFCHR | 0666, makedev(240, 0)) < 0) {
        perror("mknod failed");
        return 1;
    }
    printf("设备文件创建成功n");
    return 0;
}

总结

dev在linux中代表设备目录,是系统连接硬件与软件的桥梁。理解/dev中设备文件的含义和分类,能帮助我们更清楚地认识Linux的运作方式,也为后续学习磁盘挂载、设备调试等打下基础。

devLinux设备文件/dev目录文件系统修改时间:2026-07-25 12:48:25

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。