年度归档: 2026 年

37 篇文章

thumbnail
Linux内核-内存管理
Linux内核-内存管理 关于虚拟内存更多的概念可以去看笔者以前的一篇文章:虚拟内存的运作-kidwjb的小站 地址概念 逻辑地址:程序看到的地址,Linux操作系统分配给每一个进程的独立地址 线性地址:总线地址ARM CPU采用分段机制(线性地址=逻辑地址+段基地址) 物理地址:CPU总线的直接地址 虚拟内存映射方式 主要采用了:分段和分页机制 …
thumbnail
Linux内核-exec系统调用
Linux内核-exec系统调用 这里我们以0.1内核为例,查看execve的系统调用实现 copy_strings 该函数的作用是拷贝execve传递进入的agrv参数表到内核空间中 几个段寄存器 在正式开始分析代码之前,我们需要先有几个概念: cs:代码段 ds:数据段 es:额外段 ss:栈 fs:用户数据段 而ds和fs有两种情况: dsf…
thumbnail
Linux内核(6.1源码阅读)-文件系统读写open-万字解析
万字解析虚拟文件系统读写open调用 本篇文章记录笔者阅读linux 6.1内核的文件读写和open系统调用的笔记,关于虚拟文件系统整体框架和读写open系统调用的核心思路也可以去阅读笔者之前的文章:kidwjb的小站-虚拟文件系统(VFS) 进程的文件管理 虚拟文件系统最最重要的思想就是:linux下一切皆文件! 不论我们是访问的普通文件或是设备…
thumbnail
Linux内核(6.1源码阅读)-超级块&inode&dentry在内核中的分配
超级块&inode&dentry在内核中的分配 在上一篇文章中笔者大致分析了一下6.1内核中文件系统的注册和挂载的大致流程,但是其中关于超级块和文件inode的实例如何分配(在前文提到的vfs_get_tree中调用的超级块操作结构中的mount来创建超级块和inode,dentry)都没有去做分析,碍于篇幅原因所以放到本文做分析,…
thumbnail
Linux内核(6.1源码阅读)-注册&挂载文件系统
注册&挂载文件系统 本文是笔者在学习如何自己写一个文件系统过程中学习的内核虚拟文件系统VFS对于注册文件系统和挂载文件系统的笔记,如果有讲的不好的地方请见谅,笔者对于这块只能是有一个大致流程思路和映像,对于具体函数间的调度还不是很熟 注册文件系统 注册文件系统操作为: 1.定义并初始化一个file_system_type结构体 static…
thumbnail
Linux内核-文件系统-虚拟文件系统(VFS)
虚拟文件系统(VFS) 在linux设备上有很多类型的文件如:字符型设备,块设备,管道,链接,目录,普通文件 如果对每种类型都写一遍专属于该类类型的读写函数,那么整个设计会越来越臃肿难以管理,在linux中采用虚拟文件系统(VFS)来提供一类统一的接口访问不同的设备 struct file结构体 struct file { unsigned sho…
thumbnail
Linux内核-文件系统-文件系统目录和文件操作
文件系统目录和文件操作 文件系统namei.c源文件是用来处理文件系统名和节点关系,文件的一些操作如打开关闭等 一个文件只对应一个inode 目录项结构体 struct dir_entry { unsigned short inode; // i 节点 char name[NAME_LEN]; // 文件名 }; inode:这个文件/子目…
thumbnail
Linux内核-文件系统-超级块操作
文件系统-超级块操作 文件系统的超级块操作主要是在super.c这个源文件中 这个文件的作用主要有: 对设备的超级块进行操作(获取,读取,释放) 因为超级块是设备文件系统的映射,所以超级块的操作关系到设备文件系统的操作,包含文件系统的加载,卸载,挂载等 根文件系统的加载 get_super //// 取指定设备的超级块。返回该超级块结构指针 str…
thumbnail
Linux内核-文件系统-inode相关操作
文件系统-inode相关操作 inode结构体 struct m_inode { unsigned short i_mode;// 文件类型和属性(rwx 位) unsigned short i_uid; // 用户 id(文件拥有者标识符) unsigned long i_size;// 文件大小(字节数) unsigned long i_mti…
thumbnail
Linux内核-文件系统-位图操作
Linux内核-文件系统-位图操作 inode节点概念 文件与磁盘的映射 文件系统概念 不管读取什么磁盘上的资源,都是先getblk(获取该资源对应的设备和块号的高速缓冲区),然后在bread(确认有效数据的高速缓冲区),最后再进行区域内存的拷贝 一个设备的文件系统框架 所有块的大小都是固定的,称为盘块或磁盘块 扇区:块设备上一个长度为512B的数…