![](https://img-blog.csdnimg.cn/c11827edb6dd40e4bc67b60d1f8635ca.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
《Linux内核设计与实现 》阅读笔记
文章平均质量分 92
其中都是一些经典书籍的阅读笔记,是对阅读时的勾画的整理
光电仪器设计学徒
成长是:高原-低谷模式——成长是跳跃式的,要经过量的积累,在积累的过程中,往往要伴随着扬弃,所以常常会跌入低谷。
展开
-
Linux内核设计与实现 第20章 补丁、开发和社区
如果一定要让Linux内核社区在现实世界中找到它的位置,那它也许会叫做内核邮件列表(Linux Kernel Mailing List)之家。内核邮件列表(或者简写成lkml)是对内核进行发布、讨论、争辩和打口水仗的主战场。在做任何实际的动作之前,新特性会在此处被讨论,新代码的大部分也会在此处张贴。这个列表每天发布的消息超过300条,所以决不适合心血来潮的玩主。任何想踏踏实实研究、认认真真开发内核的人都应该订阅它(至少要订阅它的摘要或者是它的归档资料)。原创 2022-09-28 15:43:29 · 1387 阅读 · 0 评论 -
Linux内核设计与实现 第19章 可移植性
Linux是一个可移植性非常好的操作系统,它广泛支持许多不同体系结构的计算机。可移植性是指代码从一种体系结构移植到另外一种不同的体系结构上的方便程度。我们都知道Linux是可移植的,因为它已经能够在各种不同的体系结构上运行了。但这种可移植性不是凭空得来的——需要在编写可移植代码时就为此付出努力并坚持不懈。现在,这种努力已经开始得到回报了,移植Linux到新的系统上就很容易(相对来说)完成。本章中我们将讨论如何编写可移植的代码——编写内核代码和驱动程序时,必须时刻牢记这个问题。原创 2022-09-28 09:05:43 · 1365 阅读 · 0 评论 -
Linux内核设计与实现 第18章 调试
调试工作艰难是内核级开发区别于用户级开发的一个显著特点。相比于用户级开发,内核调试的难度确实要艰苦得多。更可怕的是,它带来的风险比用户级别更高,内核的一一个错误往往立刻就能让系统崩溃。驾驭内核调试的能力(当然,最终是为了能够成功地开发内核)很大程度上取决于经验和对整个操作系统的把握。没错,玉树临风可能会对别的事情有帮助,但是调试内核的关键还是在于你对内核的深刻理解。然而我们必须找到可以开始着手的地方,所以,在这一章里我们从调试内核的一种可能步骤开始。原创 2022-09-27 00:45:32 · 1085 阅读 · 0 评论 -
Linux内核设计与实现 第17章 设备与模块
上述所有宏需要包含头文件。原创 2022-09-26 11:21:51 · 789 阅读 · 0 评论 -
Linux内核设计与实现 第十六章 页高速缓存与页回写
页高速缓存(cache) 是Linux内核实现磁盘缓存。它主要用来减少对磁盘的I/0操作。具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问。这一章将页回写:将页高速缓存中的变更数据刷新回磁盘的操作。磁盘高速缓存之所以在任何现代操作系统中尤为重要源自两个因素:第一,访问磁盘的速度要远远低于(差好几个数量级)访问内存的速度一ms 和ns的差距,因此,从内存访问数据比从磁盘访问速度更快,若从处理器的L1和L2高速缓存访问则更快。原创 2022-09-24 22:18:37 · 771 阅读 · 0 评论 -
Linux内核设计与实现 第十五章 进程地址空间
学生:尊敬的教授,什么是虚拟化?教授:想象我们有一个桃子。学生:桃子?(不可思议)教授:是的,一个桃子,我们称之为【物理】(physical)桃子。但是有很多想吃这个桃子的人,我们希望向每个想吃的人提供一个属于他的桃子,这样才能皆大欢喜。我们把给每个人的桃子称为【虚拟】(virtual)桃子。我们通过某种方式,从这个物理桃子创造出许多虚拟地址桃子。重要的是,这种假象中,每个人看起来都有一个物理桃子,但实际上不是。原创 2022-09-23 10:19:12 · 550 阅读 · 0 评论 -
Linux内核设计与实现 第十四章 块I/O层
本章的主题就是讨论内核如何对块设备和块设备的请求进行管理。块I/O层表示对块设备和块设备的请求进行管理的那部分。这里只找到了Linux3.3的I/O堆栈图(内含Linux3.3块I/O层),本章描述的是Linux2.6的块I/O层。原创 2022-09-22 01:08:22 · 196 阅读 · 0 评论 -
Linux内核设计与实现 第十三章 虚拟文件系统(Virtual File System=VFS)
VFS 统一了文件系统的实现框架,使得在linux上实现新文件系统的工作变得简单。目前linux内核中已经支持60多种文件系统,具体支持的文件系统可以查看 内核源码 fs 文件夹下的内容。本章描述了VFS的目的,条论了数据结构,下一章,14章将讨论数据如何从物理上存放在文件系统。原创 2022-09-20 21:23:47 · 1246 阅读 · 0 评论 -
Linux内核设计与实现 第十二章 内存管理
因为内核内存需要节省着用,内核处理内存分配错误比较麻烦等,所以内核中获取内存不用户空间获取内存复杂得多。本章讨论内核是如何管理内存和内核之中获取内存的办法。原创 2022-09-18 23:36:28 · 1282 阅读 · 0 评论 -
Linux内核设计与实现 第十一章 定时器和时间管理
相对时间:如果某个事件在5s后被调度执行,那么系统所需要的是5s这个相对时间。绝对时间:如果要求管理当前日期和当前时间,那么内核不但要计算流逝的时间,而且还要计算绝对时间。系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢。动态定时器:内核可以动态创建或撤销。是一种用来推迟执行程序的工具。原创 2022-09-17 15:35:07 · 501 阅读 · 0 评论 -
Linux内核设计与实现 第十章 内核同步
针对整数的原子操作只能引入一个特殊数据类型atomic_t,让原子函数只接收atomic_t类型的操作数,可以确保原子操作只与这种特殊类型数据一起使用。也确保了atomic_t类型的数据不会chuandi-给任何非原子函数。使用原子整数类型atomic_t,编译器会知道不对原子整数类型的数据进行访问优化。使用原子整数类型atomic_t,在不同体系结构上实现原子操作,可以屏蔽其间的差异。原创 2022-09-15 00:35:47 · 232 阅读 · 0 评论 -
Linux内核设计与实现 第九章 内核同步与介绍
临界区:访问和操作共享数据的代码段多个线程并发访问一个资源通常是不安全的,为了避免在临界区中并发访问,编程者必须保证这些代码原子地执行。也就是说操作在执行结束前不可被打断。竞争条件是一个bug,是两个执行线程处于同一个临界区时,两个执行线程同时执行了(要解决bug必须2选1,也就出现了竞争)。同步是避免并发和防止竞争条件。原创 2022-09-12 22:06:31 · 301 阅读 · 0 评论 -
Linux内核设计与实现 第八章 下半部和推后执行的工作
中断处理程序抢占的进程可能正在执行重要的代码,中断处理程序执行完前会禁止中断,硬件就无法与操作系统通信,硬件往往要求中断处理程序迅速处理它的事。所以中断处理程序代码量少,让执行时间变短。中断处理程序代码量少,而且不能使用会引起阻塞的函数,这极大的限制了中断处理程序能做的事。由此将中断处理流程分为两部分:a)中断处理程序,即上半部 b)下半部。原创 2022-09-11 21:37:44 · 280 阅读 · 0 评论 -
Linux内核设计与实现 第七章 中断和中断处理
处理器的速度快过外围硬件设备若干数量级。既然硬件的反应这么慢,那么内核就应该在此期间处理其他事务,等到硬件真正完成了请求的操作之后,再回过头来对它进行处理。轮询:内核定期对硬件设备的状态进行查询,然后做出相应的处理。中断:硬件向内核发出信号,内核根据信号处理硬件设备。原创 2022-09-07 23:56:16 · 555 阅读 · 0 评论 -
Linux内核设计与实现 第六章 内核数据结构
内核数据结构原创 2022-09-06 21:34:03 · 499 阅读 · 0 评论 -
Linux内核设计与实现 第五章 系统调用
在现代操作系统中,内核提供了用户进程与内核进行交互的一组接口。这些接口让应用程序受限地访问硬件设备,提供了创建新进程并与已有进程进行通信的机制,也提供了申请操作系统其他资源的能力。原创 2022-09-05 21:10:58 · 412 阅读 · 0 评论 -
Linux内核设计与实现 第四章 进程调度
进程调度程序(常简称调度程序)可看做在运行态进程之间分配有限的处理器时间资源的内核子系统。最大限度地利用处理器时间的原则是:只要有可执行的进程,那么就总会有进程正在执行。但是只要系统中可运行的进程的数量比处理器的个数多,就注定某一给定时刻会有一些进程不能执行。这些进程在等待运行。在一组处于可运行状态的进程中选择一个来执行,是调度程序所需完成的基本工作。原创 2022-09-04 22:05:22 · 842 阅读 · 0 评论 -
Linux内核设计与实现 第三章 进程管理
Linux内核设计与实现 第三章 进程管理原创 2022-09-02 20:50:03 · 310 阅读 · 0 评论 -
Linux内核设计与实现 第二章 从内核出发
Linux内核设计与实现 第二章 从内核出发原创 2022-09-01 21:22:39 · 360 阅读 · 0 评论 -
Linux内核设计与实现 第一章 Linux内核简介
Linux内核设计与实现 第一章原创 2022-09-01 13:30:37 · 1432 阅读 · 0 评论