
LKD3
文章平均质量分 97
scutth
这个作者很懒,什么都没留下…
展开
-
Memory Management [LKD 12]
kernel中和user space存在很大不同,从user space角度看,分配/释放内存易如反掌,即便失败了也容易处理,kernel里面不一样。比如有些kernel code不允许sleep,或者失败的时候难以处理等。考虑到kernel种种的复杂性,就需要轻量级效率高的内存管理方式。Pages...原创 2020-05-28 23:11:36 · 282 阅读 · 0 评论 -
An Introduction to Kernel Synchronization [LKD 09]
kernel中需要对可能被多个thread同时访问的share data做保护,也就是互斥访问,这里说的多个thread,并不只是传统的kernel thread的概念,还包括process(task),interrupt handler,bottom half,以及kernel thread。也就是说凡是能够执行的单元,这里统称为thread。...原创 2020-05-28 22:46:51 · 155 阅读 · 0 评论 -
Bottom Halves and Deferring Work [LKD 08]
基于kernel 4.15讲解interrupt下半部的实现原创 2020-05-24 17:34:59 · 379 阅读 · 0 评论 -
Interrupts and Interrupt Handlers [LKD 07]
Interrupts中断是hardware device用来通知CPU的一种机制。在系统上,连接着很多的外设,这些外设速度很慢,并且随时会产生数据需要CPU处理,CPU作为高速运行的部件,不能一直等着外设产生数据,为了提高效率,采用了中断这种机制。当外设需要CPU处理数据时,就向CPU发送电信号,CPU收到电信号以后,就知道哪个设备需要处理了,这个电信号就是中断。中断并不是直接发送给CPU,而是先发送到interrupt controller,也就是中断控制器(一般是8259A),所有的外设都把中断原创 2020-05-19 23:34:55 · 1219 阅读 · 0 评论 -
Kernel Data Structures [LKD 06]
关于kernel中常用的数据结构,这里也不再说了,可以参考本blog中LDD3中相关的章节。原创 2020-05-18 23:23:39 · 234 阅读 · 0 评论 -
System Calls [LKD 05]
无论什么系统,都会向user space提供一些interface,用来和kernel系统交互,从而可以实现某些特定功能,比如访问硬件,获取系统资源等等。通过定义好的interface访问系统,有助于系统的稳定性。Communicating with the Kernel系统调用是位于用户态程序和kernel/hardware的中间层,这个中间层有三个目标:1. 向user space提供统一的硬件抽象;2. 保证系统的安全性和稳定性;3. 可以实现向用户提供虚拟系统(虚拟内存,虚拟地址原创 2020-05-18 13:21:55 · 258 阅读 · 0 评论 -
Process Scheduling [LKD 04]
前面一章讲的是process,这一章讲process schedule。进程调度的主要工作就两个:选哪个process开始执行,以及让它执行多长时间。Multitaskinglinux是多任务操作系统,如果有SMP,就有多个process同时在执行,如果是单核,就只有一个process执行。多任务操作系统分为两类:cooperative multitasking和preemptive multitasking。大多数多任务系统都是preemptive multitasking,也就是抢占式的多任原创 2020-05-15 13:27:26 · 482 阅读 · 0 评论 -
Process Management [LKD 03]
今天开始读Linux Kernel Development这本书。原创 2020-05-05 16:40:02 · 375 阅读 · 0 评论