时间:2021-07-31
本文章向大家介绍序,主要包括序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

近两年,我一直在阅读linux内核IO流程相关的代码,一方面是工作需要,平时需要解决一些相关问题,另一方面也想借着阅读他人的代码提高自己。从最开始的一片懵懂到熟悉,知识总是在点滴的积累中累计成塔。

年初的时候产生了写博客的想法,然总觉知小而谋大,写出的东西会误导想了解这个领域的人,最终还是没有动笔。如今半年过去,随着了解的内核模块越多,知识就越零散,想着还是把知道的东西写下来,一来是对知识的整理与分类,给自己留下点回忆;二来如果有人从这些文字中获益,那我是极为开心的。

linux内核纷繁复杂,有时候即使看懂了代码但也未必能明白开发者的真正意图,只能大概揣测一二,因此如果有写的不详尽,不正确之处请海涵,也欢迎一起交流,相互学习。

linux内核的IO流程从上到下大致分为VFS层、文件系统层、缓存层(其实是VFS的一部分)、Block通用块层、BUS层(PCIe、RDMA、FC等)、设备层。 设备层我用NVMe做讲解,Block层用MQ机制讲解,文件系统用ext4讲解,至于BUS层,打算是用PCIe但是还未熟悉就先暂时搁置。 博客采用的是linux4.20的代码来分析IO流程的设计,用关系图和流程图作为辅助,争取能给讲明白不会给读者留下不知所云的感觉。

在阅读源码的过程中看了很多前辈这方面的博客,学习甚多,不觉得能给超越这些人,然不断向前即可。

原文地址:https://www.cnblogs.com/kanie/p/15084914.html