把握linux内核设计思想系列【转】

转自:http://blog.csdn.net/shallnet/article/details/47734053

版权声明:本文为博主原创文章,未经博主允许不得转载。如果您觉得文章对您有用,请点击文章下面“顶”。

【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】

本专栏分析linux内核的设计实现,包括系统调用、中断、下半部机制、时间管理、内核同步、进程管理、内存管理等相关内容。

把握linux内核设计思想(一):系统调用

把握linux内核设计思想(二):硬中断及中断处理
把握linux内核设计思想(三):下半部机制之软中断
把握linux内核设计思想(四):下半部机制之tasklet
把握linux内核设计思想(五):下半部机制之工作队列及几种机制的选择
把握linux内核设计思想(六):内核时钟中断
把握linux内核设计思想(七):内核定时器和定时执行
把握linux内核设计思想(八):进程管理分析
把握linux内核设计思想(九):进程调度
把握linux内核设计思想(十):内核同步
把握linux内核设计思想(十一):内存管理之页的分配与回收
把握linux内核设计思想(十二):内存管理之slab分配器

把握linux内核设计思想(十三):内存管理之进程地址空间

时间: 2024-09-19 13:55:48

把握linux内核设计思想系列【转】的相关文章

《Linux内核设计与实现》读书笔记(十二)- 内存管理【转】

转自:http://www.cnblogs.com/wang_yb/archive/2013/05/23/3095907.html 内核的内存使用不像用户空间那样随意,内核的内存出现错误时也只有靠自己来解决(用户空间的内存错误可以抛给内核来解决). 所有内核的内存管理必须要简洁而且高效. 主要内容: 内存的管理单元 获取内存的方法 获取高端内存 内核内存的分配方式 总结   1. 内存的管理单元 内存最基本的管理单元是页,同时按照内存地址的大小,大致分为3个区.   1.1 页 页的大小与体系结

《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理【转】

转自:http://www.cnblogs.com/wang_yb/archive/2013/05/10/3070373.html 系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要.   主要内容: 系统时间 定时器 定时器相关概念 定时器执行流程 实现程序延迟的方法 定时器和延迟的例子   1. 系统时间 系统中管理的时间有2种:实际时间和定时器. 1.1  实际时间 实际时间就是现实中钟表上显示的时间,

《Linux内核设计与实现》读书笔记 - 目录 (完结)【转】

转自:http://www.cnblogs.com/wang_yb/p/3514730.html 读完这本书回过头才发现, 第一篇笔记居然是 2012年8月发的, 将近一年半的时间才看完这本书(汗!!!). 为了方便以后查看, 做个<Linux内核设计与实现>读书笔记 的目录:   <Linux内核设计与实现>读书笔记(一)-内核简介 <Linux内核设计与实现>读书笔记(二)- 内核开发的准备 <Linux内核设计与实现>读书笔记(三)- Linux的进程

Linux内核通用队列的使用笔记(读linux内核设计与实现)

Linux内核通用队列实现 Kfifo位置:kernel/kififo.c 使用需要包含头文件#include <kernel/kififo> 1.创建队列(动态创建)int kfifo_alloc(struct kififo *fifo , unsigned int size , gfp_t gfp_mask);该函数会创建并初始化一个大小为size的fifo,内核使用gfp_mask标识分配队列.成功返回0ep :  struct kfifo fifo ;  int ret ;  //创建

《Linux内核设计与实现》读书笔记(十)- 内核同步方法【转】

转自:http://www.cnblogs.com/wang_yb/archive/2013/05/01/3052865.html 内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法, 从而即可保证代码中临界区的安全,同时也让性能的损失降到最低. 主要内容: 原子操作 自旋锁 读写自旋锁 信号量 读写信号量 互斥体 完成变量 大内核锁 顺序锁 禁止抢占 顺序和屏障 总结   1. 原子操作 原子操作是由编译器来保证的,保证一个线程对数据的操作

《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理》——1.2 加载操作系统内核程序并为保护模式做准备

1.2 加载操作系统内核程序并为保护模式做准备 从现在开始,就要执行真正的boot操作了,即把软盘中的操作系统程序加载至内存.对于Linux 0.11操作系统而言,计算机将分三批逐次加载操作系统的内核代码.第一批由BIOS中断int 0x19把第一扇区bootsect的内容加载到内存:第二批.第三批在bootsect的指挥下,分别把其后的4个扇区和随后的240个扇区的内容加载至内存.1.2.1 加载第一部分内核代码--引导程序(bootsect) 按照我们使用计算机的经验,如果在开机的时候马上按

Linux内核设计与实现笔记(一) 虚拟文件系统、块I/O层

虚拟文件系统   系统内所有文件系统不但依赖VFS共存,而且也依靠VFS系统协同工作. VFS使得用户可以直接使用open/read/write等系统调用,而无需考虑具体文件系统和实际物理介质. VFS中具有四个主要的对象类型: 超级块 super_block       代表一个已安装的文件系统 通常对应于存放在磁盘特定扇区中的文件系统超级块或文件系统控制块. 索引节点 inode 代表文件系统中(虽然索引节点仅当文件被访问时,才在内存中创建)的一个文件,它也可以是设备或管道这样的特殊文件 包

linux内核设计与实现读书笔记

  进程的调度程序是保证进程能有效工作的一个内核子系统.调度程序负责决定将哪个进程投入运行,何时运行以及运行多少时间.简单的来说,调度程序就是在给一堆就绪的进程分配处理器的时间,调度程序是多任务操作系统的基础.调度程序的原则就是最大限度的使用cpu的资源,也就是说,当系统中只要有可运行的进程,就不能让cpu处于空闲的状态,如果系统中没有就绪的进程时,则cpu会运行一个idle进程. 1.多任务 多任务操作系统就是能够同时并发的交互执行多个进程的操作系统,需要注意这里是并发,而不是并行.如果你的计

Linux内核设计与实现笔记(二) 内存管理、进程地址空间

内存管理 1.页   物理页作为内存管理的基本单位.内存管理单元通常以页为单位进行处理. 通过结构体page来表示系统中的每个物理页. 2.区 由于页位于内存中特定的物理地址上,所以不能将其用于一些特定的任务,故内核把页划分为不同的区. 硬件在内存寻址方面的问题: 一些硬件只能通过内存地址来执行直接内存访问(DMA) 一些体系结构其内存的物理寻址范围大于虚拟寻址范围,故,内存不能永久地映射到内核空间 解决方法,通过创建三种不同的分区: ZONE_DMA--专门执行DMA ZONE_NORMAL-