Linux内核架构
本专栏重点介绍与Linux内核架构相关的内容,包括从应用层到驱动层最后延伸到内核驱动原理层,包括:内存管理,进程调度,模块化,块设备,字符设备,文件系统,网络,驱动模型等
IT残荷轩
秋风吹渭水,落叶满长安
展开
-
Linux块设备总结(九)向内核中增加通用磁盘操作
前一章我们介绍了通用磁盘结构体struct gendisk的申请操作,本章我们将要介绍申请完通用块结构体之后怎么把通用块结构体增加到内核空间去,并且使内核认识到:哦…这就是我们的磁盘啊! 使用此操作之后我们便可以随心所欲的操作我们的磁盘了。主要函数把通用磁盘结构体struct gendisk增加到内核的操作十分简单就是一个函数:add_disk。先说明一下这个函数的大体功能:add_disk...原创 2019-04-08 20:21:53 · 887 阅读 · 0 评论 -
Linux内核块设备总结(一)
在分析块设备驱动之前,整体规划如下: 1. 介绍qemu使Linux内核挂载块设备。 2. 介绍块设备驱动挂载过程。 3. 介绍块设备驱动运行过程。原创 2019-03-07 18:41:27 · 2851 阅读 · 0 评论 -
Linux块设备总结(二)
上一篇博客中《Linux内核块设备总结(一)》[link][https://blog.csdn.net/weixin_37867857/article/details/88316757]介绍了从qemu中启动增加块设备的方法。最后一步gdb调试中提及了blkdev_open函数的系统调用,但是只是提及了系统调用,并没有深度的去解析这个函数。只是我们提及在执行cat /dev/sda操作之后gdb调...原创 2019-03-07 22:44:04 · 3083 阅读 · 1 评论 -
Linux块设备总结(三)
bdev文件系统在上一章中讲解了Linux块设备驱动架构以及块设备驱动的一些入门的部分,也提及这一章中主要讲解bdev文件系统。bdev文件系统是一个内核文件系统也叫做伪文件系统,在应用层或者叫做用户层是不可见的。这样对于读者来说理解起来比较吃力的,bdev文件系统实际上就是按照文件系统的组织方式来呈现给内核的,没有什么特殊的含义,如果说从功能上来说的话对于读者比较好理解:bdev文件系统主要...原创 2019-03-14 20:41:01 · 2009 阅读 · 0 评论 -
linux块设备总结(四) 块设备数据组织
回顾在[<Linux块设备总结(二)>][https://blog.csdn.net/weixin_37867857/article/details/88322091]中我们讨论初步认识了linux块设备的架构并且讨论了各个层的作用,下面我们讨论一下在Linux块设备的几个重要的块设备的数据组织形式。回顾一下[<Linux块设备总结(二)>][https://blog....原创 2019-03-28 20:01:15 · 1096 阅读 · 0 评论 -
Linux块设备总结(五)块设备数据的组织结构
在上一篇文章中《linux块设备总结(四) 块设备数据组织》[link][https://blog.csdn.net/weixin_37867857/article/details/88856550]我们看到了数组的组织结构,下面对于上一章中做一个总结,同时也会引申一个重要的数据结构struct gen_hd,同时也作为一个承上启下的作用,为以后我们介绍块设备的重要的函数做一一个承接。在上一篇文...原创 2019-03-31 15:37:00 · 681 阅读 · 0 评论 -
Linux块设备总结(六)块设备子系统初始化
在上两篇博客中我们学习了块设备子系统数据组织结构,但是块设备子系统的总体上的初始化还没有涉及到,本章就开始学习块设备子系统的一系列初始化。块设备子系统简而言之是Linux中管理块设备的一个子系统,是Linux中一个重要的子系统,没有块设备子系统我们的硬盘,光驱,USB在我们的linux 系统中都不可能感知,更别提热插拔的USB了。...原创 2019-04-01 21:52:28 · 975 阅读 · 0 评论 -
Linux块设备总结(七)块设备的注册
上一章中讲完了块设备的初始化,总体来说比较复杂,与其数据结构一起串讲会有一种比较豁然开朗的感觉。本章主要讲解块设备的注册入口,试想一下,在块设备注册过程中间没有入口我们怎么把块设备注册进入内核呢?我们的块设备的注册入口比较简单:register_blkdevint register_blkdev(unsigned int major, const char *name){ s...原创 2019-04-01 22:28:45 · 977 阅读 · 0 评论 -
Linux块设备总结(八)申请通用块设备操作
我们已经知道通用块层是一个内核组件,她处理来自系统中的所有块设备发出的请求。她的主要作用是:1.将数据缓存放在高端内存,2.通过一些附加手段显现所谓的零-复制模式3.管理一个逻辑卷LVM RAID等4.发挥大部分新磁盘控制器的高级特性。以上这些我们都不讨论,只讨论在内存中申请struct gendisk操作。申请gendisk操作非常简单,如下所示:struct gendisk *...原创 2019-04-07 12:45:18 · 381 阅读 · 0 评论