准备把深入理解Linux内核这本书细看一遍

第一章 绪论

  Linux与其他类Unix内核的比较

  硬件的依赖性

  Linux版本

  操作系统基本概念

  Unix文件系统概述

  Unix内核概述

第二章 内存寻址

  内存地址

  硬件中的分段

  Linux中的分段

  硬件中的分页

  Linux中的分页

第三章 进程

  进程、轻量级进程和线程

  进程描述符

  进程切换

  创建进程

  撤销进程

第四章 中断和异常

  中断信号的作用

  中断和异常

  中断和异常处理程序的嵌套执行

  初始化中断描述符表

  异常处理

  软中断及tasklet

  工作队列

  从中断和异常返回

第五章 内核同步

  内核如何为不同的请求提供服务

  同步原语

  对内核数据结构的同步访问

  避免竞争条件的实例

第六章 定时测量

  时钟和定时器电路

  Linux计时体系结构

  更新时间和日期

  更新系统统计数

  软定时器和延迟函数

  与定时测量相关的系统调用

第七章 进程调度

  调度策略

  调度算法

  调度程序所使用的数据结构

  调度程序所使用的函数

  多处理器系统中运行队列的平衡

  与调度相关的系统调用

第八章 内存管理

  页框管理

  内存区管理

  非连续内存区管理

第九章 进程地址空间

  进程的地址空间

  内存描述符

  线性地址

  缺页异常处理程序

  创建和删除进程地址空间

  堆的管理

第十章 系统调用

  POSIX API和系统调用

  系统调用处理程序及服务例程

  进入和退出系统调用

  参数传递

  内核封装例程

第十一章 信号

  信号的作用

  产生信号

  传递信号

  与信号相关的系统调用

第十二章 虚拟文件系统

  虚拟文件系统(VFS)的作用

  VFS的数据结构

  文件系统类型

  文件系统处理

  路径名查找

  VFS系统调用的实现

  文件加锁

第十三章 I/O体系结构和设备驱动程序

  I/O体系结构

  设备驱动程序模型

  设备文件

  设备驱动程序

  字符设备驱动程序

第十四章 块设备驱动程序

  块设备的处理

  通用块层

  I/O调度程序

  快设备驱动程序

  打开块设备文件

第十五章 页高速缓存

  页高速缓存

  把块存放在页高速缓存中

  把脏页写入磁盘

  syn()、fsync()和fdatasync()系统调用

第十六章 访问文件

  读写文件

  内存映射

  直接I/O传送

  异步I/O

第十七章 回收页框

  页框回收算法

  反向映射

  PFRA实现

  交换

第十八章 Ext2和Ext3文件系统

  Ext2的一般特征

  Ext2磁盘数据结构

  Ext2的内存数据结构

  创建Ext2文件系统

  Ext2的方法

  管理Ext2磁盘空间

  Ext3文件系统

第十九章 进程通信

  管道

  FIFO

  System V IPC

  POSIX 消息队列

第二十章 程序的执行

  可执行文件

  可执行格式

  执行域

  exec函数

附录一 系统启动

附录二 模块

时间: 2024-10-25 14:08:22

准备把深入理解Linux内核这本书细看一遍的相关文章

【深入理解Linux内核】《第一章 绪论》笔记

1.商用Unix操作系统包括: - AT&T公司开发的(System V Release 4) SVR4. - 加州伯克利分校发布的4.4BSD - Dec公司(现属于HP)的Digital Unix - IBM公司的AIX - HP公司的HP-UX - Sun公司的Solaris   - Apple公司的Mac OS X 所有商业版本都是SVR4或4.4BSD的变体,并且都趋向于遵循某些通用标准:如IEEE的POSIX(Portable Operating Systems based on U

【笔记】深入理解Linux内核--内存寻址(一)

<深入理解Linux内核>中关于内存管理一共有三章,这是其中的一章,还有第八章,讨论内核怎样给自己分配主存,以及第九章,考虑怎样给进程分配线性地址. 内存地址 -- (P40) 以下三种地址是相对与8086处理器来说的. 逻辑地址(logical address) 包含在机器语言指令中用来指定一个操作数或一条指令的地址.比如下面反汇编代码中最左边的地址即逻辑地址. 1 40052d: 55 push %rbp 2 40052e: 48 89 e5 mov %rsp,%rbp 3 400531:

20150514我读《深入理解linux内核》之虚拟文件系统笔记

20150514我读<深入理解linux内核>之虚拟文件系统笔记 2015-05-14 Lover雪儿 虚拟文件系统所隐含的思想就是把很多不同种类的文件系统的共同信息放入内核,其中有一个字段或者函数来支持Linux所支持的所有实际文件系统所提供的任何操作.对所调用的每个读.写或者其他函数,内核都能把他们替换成支持本地Linux文件系统.NTFS文件系统,或者文件所在的任何其他文件系统的实际函数. 虚拟文件系统可以称为虚拟文件系统转换,是一个内核软件层,用来处理与Unix标准文件系统相关的所有系

【深入理解Linux内核】《第二章 内存寻址》笔记 (2014-06-28 12:38)

2.1 内存地址 逻辑地址:段+偏移 线性地址(虚拟地址) 物理地址 2.2硬件中的分段 2.2.1 段选择符和段寄存器 15                                                3  2  1   0 ------------------------------------------------|                                                    |TI |RPL  ||         索引号 

【读书笔记::深入理解linux内核】内存寻址

我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开启分页之后,任何寻址都要经过mmu的转换,也就是一个二级查表的过程(386) 难道内核很特殊,当mmu看到某个逻辑地址是内核传来的之后,就不查表了,直接减去0xC0000000,然后就传递给内存控制器了??? 我发现网上也有人和我问了同样的问题,看这个问题 这句话太让人费解了,让人费解到以至于要怀疑

【深入理解Linux内核架构】第3章:内存管理

3.1 概述 内存管理涵盖了许多领域: 内存中物理内存页的管理: 分配大块内存的伙伴系统: 分配小块内存的slab.slub.slob分配器: 分配非连续内存块的vmalloc机制: 进程的地址空间. Linux内核一般将虚拟地址空间划分为两部分:底部较大的部分用于用户进程,顶部则用于内核.虽然(在两个用户进程之间)上下文切换期间会改变下半部分,但是虚拟地址空间的内核部分中总是不变[这其实很好理解,内核是系统管理员,不能说因为每换一批游客,景区管理员都得跟着换一批?!].在IA-32系统上,虚拟

《深入理解Linux内核》软中断/tasklet/工作队列

软中断.tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的"下半部"(bottom half)演变而来.下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者.本文重点在于介绍这三者之间的关系.(函数细节将不会在本文中出现,可以参考文献,点这里) (1)上半部和下半部的区别上半部指的是中断处理程序,下半部则指的是一些虽然与中断有相关性但是可以延后执行的任务.举个例子:在网络传输中,网卡接收到数据包这个事件不一

深入理解Linux内核-中断和异常

Linux内核代码查看 http://androidxref.com/ 中断:被定义位一个事件,它能改变处理器执行指令的顺序.它对应硬件(CPU.其他硬件设备)电路产生的电信号. 同步中断:指令执行时CPU控制单元产生:称为同步,是因为只有在一条指令终止执行后CPU才回发出中断.也被称为异常 异步中断:其他硬件设备按照CPU时钟信号随机产生的.也被简称中断 中断的约束:1.中断必须尽快处理完成:中断一般被分两部分执行:关键而且紧急的部分,内核立即执行:其余部分内核稍后执行: 2.中断的处理必须能

【深入理解Linux内核架构】3.3 页表

页表:用于建立用户进程空间的虚拟地址空间和系统物理内存(内存.页帧)之间的关联. 向每个进程提供一致的虚拟地址空间. 将虚拟内存页映射到物理内存,因而支持共享内存的实现. 可以在不增加物理内存的情况下,将页换出到块设备来增加有效的可用内存空间. 内核内存管理总是假定使用四级页表. 3.3.1 数据结构 内核源代码假定void *和unsigned long long类型所需的比特位数相同,因此他们可以进行强制转换而不损失信息.即:假定sizeof(void *) == sizeof(unsign