linux 设备管理 (一) 技术点综述

本文探讨了Linux系统中设备管理的核心内容,包括创建/dev节点(使用mknod命令)、权限管理、驱动自动加载、自定义设备名称以及链接文件创建。重点讲解了字符设备文件的属性如名字、权限和主次设备号,并展示了节点创建的内核函数流程。设备管理主要涉及对/dev目录下文件的操作,体现Linux中一切皆文件的理念。
摘要由CSDN通过智能技术生成
  • 我们在讨论设备管理时,在讨论什么
1. /dev 节点文件(b/c)的创建	(mknod)
2. /dev 节点文件的权限管理 // mknod /dev/new_device c 500 0
3. 驱动的自动加载 (/lib/modules/`uname -r`/)
4. 链接文件的创建 // 没有实例
5. 用户自定义设备名称	(locate rules.d)
  • 涉及到的目录及文件系统
/dev 下的所有文件
  • 涉及到的文件类型
在 linux下面,一切皆文件.
设备管理也是对文件(/dev目录中的)的管理
文件类型 b c d - l p s
设备管理(/dev下的文件)涉及 了
	b c d l s
  • 对于一个文件来说
1. 目录文件
2. 字符文件
	2.1 字符文件的名字
	2.2 字符文件的权限
	2.3 字符文件的主次设备号

设备管理脑图

在这里插入图片描述

节点创建内核函数
SYSCALL_DEFINE3(mknod, const char __user *, filename, umode_t, mode, unsigned, dev)
    sys_mknodat(AT_FDCWD, filename, mode, dev);
        SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, unsigned, dev)
            vfs_mknod(path.dentry->d_inode,dentry,mode,0);
                vfs_mknod2(NULL, dir, dentry, mode, dev);
                    dir->i_op->mknod(dir, dentry, mode, dev);
                        shmem_get_inode(dir->i_sb, dir, mode, dev, VM_NORESERVE);
                        d_instantiate(dentry, inode); /* 可简单理解成:  dentry->d_inode = inode;*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值