- 博客(62)
- 收藏
- 关注
原创 day1
在linux内核中,当用户打开设备文件时,内核中的VFS层会调用设备驱动中的sys_open()函数,在sys_open()函数中,内核会根据文件的inode号判断文件是否存在于文件系统中,如果存在,内核会找到这个文件的文件信息结构体,并通过字符设备驱动对象结构体指针找到操作方法结构体中的open()函数。动态:int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,(1)实现字符设备驱动对象的部分初始化。
2023-06-22 19:51:19
356
原创 字符设备内部实现原理
用open()打开文件,会产生对应文件的inode号,inode有对应的结构体,里面存放文件信息。如果一个文件存在于系统中,则该文件信息会存于inode的结构体中。在inode的结构体中的共用体中有一个字符设备结构体指针,在追这个cdev指针后,会发现该结构体中记录了操作方法结构体指针和设备号。设备号是驱动存在内核的标识,在文件信息结构体和字符设备结构体中都存在说明是两者关联的纽带。操作方法结构体中存放着操作方法,open(),write(),read(),close()
2023-06-15 20:26:08
61
原创 C 使用共用体判断计算机是大端还是小端
不同类型的cpu的主机,内存存储使用多字节整数序列的方式。小端字节序:低序字节存储在低地址上。大端字节序:低序字节存储在高地址上。
2023-04-06 19:36:47
71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人