深入理解linux内核 书

原创 2012年03月29日 22:18:37

第一章 绪论。操作系统,文件系统,linux介绍。单内核与微内核(VxWorks,微内核通常包含几个同步原语,一个简单调度程序和进程间通信机制,运行在微内核之上的几个系统进程实现如内存分配,设备驱动程序,系统调用等操作系统级功能。)linux采用模块来弥补。

内核本身不是一个进程,而是进程的管理者。除用户进程之外,unix系统还包括几个所谓内核线程的特权进程,其特点是:1以内核态运行在内核地址空间2不与用户直接交互3通常在系统启动时创建,一直活跃。

内核控制路径表示内核处理系统调用、异常或中断所执行的指令序列。内核控制路径的交错执行。

可重入内核可以包含非重入函数,并且利用锁机制保证一次只有一个进程执行一个非重入函数。

同步内核控制路径的方式可以有:非抢占内核、禁止中断、信号量、自旋锁、避免死锁。

unix信号(signal)提供了把系统事件报告给进程的一种机制。

IPC:信号量、消息队列、共享内存。

内核内存分配器特点(快,避免浪费,减少碎片,与其他内存管理子系统合作),主要有:资源图分配算法,2的幂次方空闲链表,buddy系统,zone分配算法,slab分配算法等。

第二章 内存寻址。内存地址,硬件分段,分页,linux的分段,分页。

区分:逻辑地址(包含在机器语言指令中用来指定一个操作数或一条指令的地址)、线性地址(也称虚拟地址)、物理地址(用于内存芯片级内存单元寻址)。关系:MMU通过一种称为分段单元的硬件电路把一个逻辑地址转换成线性地址,接着,分页单元的硬件电路把线性地址转换成物理地址。

硬件中的分段:段选择符和段寄存器,段描述符,快速访问段描述符,分段单元。

2.6版的linux只有在8086结构下才需要使用分段。

为了快速找到段选择符,处理器提供段寄存器,用于存放段选择符(段选择符是逻辑地址的一部分)。cs代码段寄存器,指向包含程序指令的段。ss栈段寄存器,指向包含当前程序栈的段。ds数据段寄存器,指向包含静态数据或者全局数据的段。此外还有es,fs,gs,可以指向任意数据段。cs指定特权级。

每个段由一个8字节的段描述符表示,它描述段的特征,放在全局描述符表或局部描述符表中。有几种不同的段及它们对应的段描述符:代码段描述符、数据段描述符、任务状态段描述符(用于保存处理器寄存器的内容)、局部描述符表描述符。

每个CPU有一个GDT全局描述符表,它包含18个段描述符。调用门存放在LDT表,用于在调用预定义函数时改变CPU的特权级。

硬件中的分页:常规分页,扩展分页,硬件保护方案。




第三章 进程。进程及其描述符,进程切换,创建,撤销,线程。

第四章 中断和异常。中断信号作用,处理程序,初始化中断描述符表,异常中断处理,软中断和tasklet,工作队列,从中断和异常返回。

第五章 内核同步。如何为请求提供服务,同步原语,对内核数据结构的同步访问。

第六章 定时测量。时钟和定时电路,linux计时体系结构,更新日期时间,更新系统计数,软定时器和延迟函数。

第七章 进程调度。调度策略,算法,数据结构,函数,多处理器系统中运行队列的平衡。

第八章 内存管理。叶匡,内存区管理,非连续内存区管理。(内核怎样给自己分配主存)

第九章 进程地址空间。内存描述符,线性区,缺页,创建和删除进程地址空间,堆的管理。(怎样给进程分配线性地址)

第十章 系统调用。posix api和系统调用,系统调用处理程序及服务例程,进入和退出系统调用,参数传递,内核封装例程。

第十一章 信号。信号作用,产生,传递。

第十二章 VFS。作用,数据结构,FS类型,处理,路径名查找,VFS系统调用的实现,文件加锁。

第十三章 IO体系结构和设备驱动程序。设备文件,设备驱动程序模型。

第十四章 块设备驱动程序。通用块层,块设备的处理,IO调度程序,打开块设备文件。

第十五章 页高速缓存。把块放在页高速缓存,脏页写回,sync(),fsync(),fdatasync()系统调用。

第十六章 访问文件。读写文件,内存映射,直接IO传送,异步IO。

第十七章 回收叶匡。回收算法,反向映射,PFRA实现,交换。

第十八章 EXT2和EXT3 FS。特征,磁盘数据结构,内存数据结构,创建,函数,管理磁盘。

第十九章 进程通信IPC。管道,fifo,system v ipc,posix消息队列。

第二十章 程序的执行。可执行文件,格式,执行域,exec函数。

附录一 系统启动。

附录二 模块。



相关文章推荐

深入理解Linux内核 第三版

  • 2016年07月24日 14:31
  • 63.55MB
  • 下载

深入理解linux内核中文第三版

  • 2015年03月06日 22:12
  • 56.8MB
  • 下载

Linux内核进程调度schedule深入理解

一.说明 本文以linux-2.4.10 为例主要分析Linux 进程调度模块中的schedule 函数及其相关的函数。另外相关的前提知识也会说明。默认系统平台是自己的i386 架构的pc。 ...

深入理解linux内核中文第三版.part2

  • 2014年03月09日 22:55
  • 16.81MB
  • 下载

深入理解linux内核-7

  • 2013年06月13日 14:22
  • 12.98MB
  • 下载

深入理解linux内核自旋锁

自旋锁是一个互斥设备,它只有两个值:“锁定”和“解锁”。它通常实现为某个整数值中的某个位。希望获得某个特定锁得代码测试相关的位。如果锁可用,则“锁定”被设置,而代码继续进入临界区;相反,如果锁被其他人...

深入理解linux内核中文第三版

  • 2014年10月04日 11:24
  • 57.65MB
  • 下载

proc文件系统------《深入理解Linux内核架构》笔记

proc文件系统 1. proc简介(Process Data System, 进程数据系统) proc文件系统属于虚拟文件系统,即该文件系统的数据,由内核动态生成,并不会存放在持久存储数据中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入理解linux内核 书
举报原因:
原因补充:

(最多只允许输入30个字)