![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深入理解Linux内核学习
文章平均质量分 86
该专栏主要是《深入理解Linux内核》的读后总结,该书基于Linux内核2.6.11.12,所有文章所参考的代码都是来自该版本的代码。
wu670431
对linux内核有非常浓厚的兴趣。
展开
-
Linux进程的创建与撤销
目录概述进程的创建概述进程在Linux内核中使用task_struct结构体来表述,所以简单点理解可以认为进程的创建是围绕该结构体的成员进行构建的。在Linux中我们能够用于创建进程的系统调用有clone()、fork()及vfork()。在传统的unix系统中以统一的方式创建进程:子进程复制父进程的所有资源,但是我们在实际应用中,子进程创建完成后会立即调用execve(),这样会清除从父进程拷贝过来的地址空间,这就意味着我们花费了大量时间从父进程复制过来的资源,其实没有使用就丢弃了。所以Linux对原创 2021-07-05 22:54:34 · 1285 阅读 · 0 评论 -
Linux 0号进程的建立
目录进程的内核表示进程0的创建进程0的运行0号进程在内核中是一个比较特殊的进程,因为它是静态创建的,不是通过do_fork()创建的。所以从0号进程出发有助于理解一个进程的创建需要为它准备好哪些条件。进程的内核表示进程可以简单理解为Linux操作系统中的一个运行实体,在内核中用数据结构task_struct表示,这个结构体表示了进程运行时所需要的所有信息,所以这是内核中较为复杂的一个结构体,基于我们此篇文章所需要表达的知识,我们重点介绍下该结构体的成员thread_info,这个成员所分配的内存空间与原创 2021-06-26 16:51:26 · 843 阅读 · 0 评论 -
Linux内核页表的建立
Linux内核页表的临时映射背景初始阶段内存的使用情况背景由于Linux由BIOS加载后,起始阶段其实是运行在实模式,此时并没有开启分页机制。那Linux在开启分页机制之前需要先做哪些准备工作以支持分页机制?答案是页目录项及页表项。初始阶段内存的使用情况一般来说,Linux内核安装在RAM中从物理地址0x0010 0000开始的地方,也就是说,从第二个MB开始。为什么内核没有安装在RAM第一个MB开始的地方?因为PC体系结构有几个独特的地方必须考虑到。例如:页框0由BIOS使用,存放加电自检(原创 2021-06-12 21:36:36 · 2036 阅读 · 0 评论 -
Linux的分段管理
目录概述分段的概念逻辑地址到线性地址的转换过程Linux中的分段Linux GDT概述本文主要描述的是基于X86平台的分段管理机制,本参考Linux-2.6.11进行说明。其中的基本概念可以参考《深入理解Linux内核》第二章。分段的概念在了解清楚分段之前,我们需要知道以下三种地址之间的关系:逻辑地址,线性地址,物理地址。分段单元分页单元逻辑地址线性地址物理地址逻辑地址:包含在机器...原创 2019-11-03 22:15:36 · 250 阅读 · 0 评论 -
《深入理解Linux内核》实验环境搭建
《深入理解Linux内核》实验环境搭建背景依赖软件及cloud-lab获取使用步骤cloud-lab官方网站背景 前前后后看《深入理解Linux内核》这本书也有两三遍了,每次刚开始都是决心满满的开始,但是都是以失望而结束,对内核的理解也一直只是停留在一些基本概念的掌握,真正深入到各种机制及实现还是完全一窍不通。所以就在网上找了下一些前辈的学习方法,大部分的建议都是基于代码和实验去深入的学习。 基于此,所以搭建实验环境就是开始的第一步,由于《深入理解Linux内核》参考的内核版本是Linux v原创 2021-06-07 11:19:16 · 625 阅读 · 1 评论