Linux Kernel - mknod系统调用

系列目录传送门

Linux Kernel - 文件系统系列


mknod简介

mknod是用来创建特殊设备文件的系统调用, 在Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用中, 我们通过在/dev/ram0的设备文件创建文件系统后, 访问我们挂载的Ram Disk设备.

与普通意义上的文件不同, 对一个设备的读写实质上会调用到设备驱动提供的读写函数, 进而和设备产生交互.

lqp@lqp-ThinkPad-T540p:~$ ls -l /dev/ram*
brw-rw—- 1 root disk 1, 0 12月 1 17:58 /dev/ram0
brw-rw—- 1 root disk 1, 1 12月 1 17:12 /dev/ram1

通过ls -l命令查看dev目录下的ram设备文件, 可以观察到, 设备类型是block的, 其中的 1, 0对应/dev/ram0的设备号. 设备号由主设备号和从设备号组成(MAJOR, MINOR), 其中MAJOR表示主设备类型, 也和设备的驱动类型相配; MINOR可以理解为该驱动所管理的子设备号.


文件类型

除了熟知的普通文件, 文件目录, 和上面提到的block类型外, 通过代码可以发现, 还有以下类型:

//lqp comment: include/uapi/linux/stat.h
//....
#define S_ISLNK(m)  (((m) & S_IFMT) == S_IFLNK) //文件链接
#define S_ISREG(m)  (((m) & S_IFMT) == S_IFREG) //常规文件, 如txt文件
#define S_ISDIR(m)  (((m) & S_IFMT) == S_IFDIR) //目录
#define S_ISCHR(m)  (((m) & S_IFMT) == S_IFCHR) //字符设备文件
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值