Linux内核设计的艺术:图解Linux操作系统架构设计与实_第1页
Linux内核设计的艺术:图解Linux操作系统架构设计与实_第2页
Linux内核设计的艺术:图解Linux操作系统架构设计与实_第3页
Linux内核设计的艺术:图解Linux操作系统架构设计与实_第4页
Linux内核设计的艺术:图解Linux操作系统架构设计与实_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux内核设计的艺术:图解Linux操作系统架构设计与实读书笔记模板01思维导图读书笔记目录分析内容摘要精彩摘录作者介绍目录0305020406思维导图艺术架构设计内核运行实现书过程方式进程文件小结设置设备创建执行第章程序中断内存本书关键字分析思维导图内容摘要内容摘要本书的第1版广获好评,版权被中国台湾和美国两家大型出版社引进,第2版根据读者的反馈和作者对操作系统的最新研究成果对第1版进行了大幅优化和重写,使其内容质量更上一层楼。本书在众多关于Linux内核的书中独树一帜,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想——主奴机制,这是所有操作系统研究者的一笔宝贵财富。它也是一本能真正引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系统的著作。本书的最大特点是它的写作方式和内容组织方式与同类书完全不同。它在深刻地分析了传统讲解方法的利弊之后,破旧立新,从认知学的角度开创了一种全新的方式。以操作系统的真实运行过程为主线,结合真实的内核源代码、300余幅精确的内核运行时序图和具有点睛之妙的文字说明,对操作系统从开机加电到系统完全准备就绪,及运行用户程序的整个过程进行了系统而完整地分析,深刻地揭示了其间每一个动作的设计意图和实现原理,完美地再现了操作系统设计者的设计思路。阅读本书就如同跟随着操作系统设计者一起去思考,我们会在阅读的过程中发现Linux内核设计的精妙,会发现原来处处都“暗藏玄机”,哪怕是一行很短的代码。本书在所有细节上都力求完美。为了保证知识的准确性,操作系统运行过程中的每个动作都经过了严格的考证;为了让我们真正理解Linux内核的原理,它突破传统,以Linux的真实运行过程为主线进行讲解;为了做到真正易于理解,创新性地使用了图解的方式,精心绘制了300余幅分辨率600dpi的时序图,图中表现的运行时结构和状态与操作系统实际运行时的真实状态完全吻合;为了提高阅读体验,本书采用了双色印刷,以便于我们更清楚地观察每一幅图中的细节。读书笔记读书笔记偏底层,细节较多,需要一定汇编和硬件基础才能看懂,不适合操作系统入门。内核版本太老,而且硬件平台也非常老,了解linuxboot加载系统的过程还可以,其他的都已经落伍严重,不适用了。个人读来觉得比较一般,很多地方需要主动翻代码才能连接起来。2020.29断断续续花了三周的时间看完,有些原理一知半解,中途又去恶补了汇编语言的知识,因为文章主要书写方式是原理介绍,代码描述,图表描述,内核从启动到0进程,1进程的执行过程有了一些了解,还有进程调度,内存管理,磁盘管理等知识,后续需要再刷的一本书,目前告一段落,去学习其他书籍的操作系统知识,再回来阅读,应该有更多的感受。"本书作者为新设计团队,一直在为设计一个自主的、有所突破和创新的操作系统而努力。"。作者的配图严谨,结合linux0.11的代码,让linux不再是一层迷雾。第一章和第六章写得非常好。本书用的是linux0.11的内核代码,相对来说实现的比较粗糙,像进程调度算法,内存管理。。精彩摘录精彩摘录第一步,启动BIOS,准备实模式下的中断向量表和中断服务程序;第二步,从启动盘加载操作系统程序到内存,加载操作系统程序的工作就是利用第一步中准备的中断服务程序实现的;第三步,为执行32位的main函数做过渡工作。将CPU硬件逻辑设计为加电瞬间强行将CS的值置为0xF000、IP的值置为0xFFF0,这样CS:IP就指向0xFFFF0这个地址位置第一批由BIOS中断int0x19把第一扇区bootsect的内容加载到内存;第二批、第三批在bootsect的指挥下,分别把其后的4个扇区和随后的240个扇区的内容加载至内存。BIOS在内存中建立中断向量表和中断服务程序中断向量表中有256个中断向量,每个中断向量占4字节BIOS程序在内存最开始的位置(0x00000)用1KB的内存空间(0x00000~0x003FF)构建中断向量表,在紧挨着它的位置用256字节的内存空间构建BIOS数据区(0x00400~0x004FF),并在大约57KB以后的位置(0x0E05B)加载了8KB左右的与中断向量表相应的若干中断服务程序。操作系统的设计者是要全面地、整体地考虑内存的规划的。目录分析1.1启动BIOS,准备实模式下的中断向量表和中断服务程序1.2加载操作系统内核程序并为保护模式做准备1.3开始向32位模式转变,为main函数的调用做准备1.4本章小结第1章从开机加电到执行main函数之前的过程1.1启动BIOS,准备实模式下的中断向量表和中断服务程序1.1.1BIOS的启动原理1.1.2BIOS在内存中加载中断向量表和中断服务程序1.2加载操作系统内核程序并为保护模式做准备1.2.1加载第一部分内核代码——引导程序(bootsect)1.2.2加载第二部分内核代码——setup1.2.3加载第三部分内核代码——system模块1.3开始向32位模式转变,为main函数的调用做准备1.3.1关中断并将system移动到内存地址起始位置0x000001.3.2设置中断描述符表和全局描述符表1.3.3打开A20,实现32位寻址1.3.4为保护模式下执行head.s做准备1.3.5head.s开始执行2.1设置根设备-4、硬盘2.2规划物理内存格局,设置缓冲区、虚拟盘、主内存2.3设置虚拟盘空间并初始化2.4内存管理结构mem_map初始化第2章设备环境初始化及激活进程02.5异常处理类中断服务程序挂接2.6初始化块设备请求项结构2.7与建立人机交互界面相关的外设的中断服务程序挂接2.8开机启动时间设置2.9初始化进程02.10初始化缓冲区管理结构010302040506第2章设备环境初始化及激活进程02.11初始化硬盘2.12初始化软盘2.13开启中断2.14进程0由0特权级翻转到3特权级,成为真正的进程2.15本章小结12345第2章设备环境初始化及激活进程02.7与建立人机交互界面相关的外设的中断服务程序挂接2.7.1对串行口进行设置2.7.2对显示器进行设置2.7.3对键盘进行设置2.9初始化进程02.9.1初始化进程02.9.2设置时钟中断2.9.3设置系统调用总入口3.1进程1的创建3.2内核第一次做进程调度3.3轮转到进程1执行3.4本章小结第3章进程1的创建及执行3.1进程1的创建3.1.1进程0创建进程13.1.2在task中为进程1申请一个空闲位置并获取进程号3.1.3调用copy_process函数3.1.4设置进程1的分页管理3.1.5进程1共享进程0的文件3.1.6设置进程1在GDT中的表项3.1.7进程1处于就绪态3.3轮转到进程1执行3.3.1进程1为安装硬盘文件系统做准备3.3.2进程1格式化虚拟盘并更换根设备为虚拟盘3.3.3进程1在根设备上加载根文件系统4.1打开终端设备文件及复制文件句柄4.3加载shell程序4.2进程1创建进程2并切换到进程2执行第4章进程2的创建及执行4.5本章小结4.4系统实现怠速第4章进程2的创建及执行4.1打开终端设备文件及复制文件句柄4.1.1打开标准输入设备文件4.1.2打开标准输出、标准错误输出设备文件4.3加载shell程序4.3.1关闭标准输入设备文件,打开rc文件4.3.2检测shell文件4.3.3为shell程序的执行做准备4.3.4执行shell程序4.4系统实现怠速4.4.1创建update进程4.4.2切换到shell进程执行4.4.3重建shell5.1安装文件系统5.3读文件5.2打开文件第5章文件操作5.4新建文件5.5写文件5.6修改文件5.7关闭文件5.8删除文件5.9本章小结010302040506第5章文件操作5.1安装文件系统5.1.1获取外设的超级块5.1.2确定根文件系统的挂接点5.1.3将超级块与根文件系统挂接5.2打开文件5.2.1将进程的*filp与file_table挂接5.2.2获取文件i节点5.2.3将文件i节点与file_table挂接5.3读文件5.3.1确定数据块在外设中的位置5.3.2将数据块读入缓冲块5.3.3将缓冲块中的数据复制到进程空间5.4新建文件5.4.1查找文件5.4.2新建文件i节点5.4.3新建文件目录项5.5写文件5.5.1确定文件的写入位置5.5.2申请缓冲块5.5.3将指定的数据从进程空间复制到缓冲块5.5.4数据同步到外设的两种方法5.6修改文件5.6.1重定位文件的当前操作指针5.6.2修改文件5.7关闭文件5.7.1当前进程的filp与file_table脱钩5.7.2文件i节点被释放5.8删除文件5.8.1对文件的删除条件进行检查5.8.2进行具体的删除工作6.1线性地址的保护6.3一个用户进程从创建到退出的完整过程6.2分页第6章用户进程与内存管理6.5本章小结6.4多个用户进程同时运行第6章用户进程与内存管理6.1线性地址的保护6.1.1进程线性地址空间的格局6.1.2段基址、段限长、GDT、LDT、特权级6.2分页6.2.1线性地址映射到物理地址6.2.2进程执行时分页6.2.3进程共享页面6.2.4内核分页6.3一个用户进程从创建到退出的完整过程6.3.1创建str1进程6.3.2str1进程加载的准备工作6.3.3str1进程的运行、加载6.3.4str1进程的退出6.4多个用户进程同时运行6.4.1进程调度6.4.2页写保护7.1缓冲区的作用7.2缓冲区的总体结构7.3b_dev、b_blocknr及request的作用7.4uptodate和dirt的作用7.5count、lock、wait、request的作用12345第7章缓冲区和多进程操作文件7.6实例1:关于缓冲块的进程等待队列7.7总体来看缓冲块和请求项7.8实例2:多进程操作文件的综合实例7.9本章小结第7章缓冲区和多进程操作文件7.3b_dev、b_blocknr及request的作用7.3.1保证进程与缓冲块数据交互的正确性7.3.2让数据在缓冲区中停留的时间尽可能长7.4uptodate和dirt的作用7.4.1b_uptodate的作用7.4.2b_dirt的作用7.4.3i_uptodate、i_dirt和s_dirt的作用7.5count、lock、wait、request的作用7.5.1b_count的作用7.5.2i_count的作用7.5.3b_lock、*b_wait的作用7.5.4i_lock、i_wait、s_lock、*s_wait的作用7.5.5补充request的作用8.1管道机制8.3本章小结8.2信号机制第8章进程间通信8.1管道机制8.1.1管道的创建过程8.1.2管道的操作8.2信号机制8.2.1信号的使用8.2.2信号对进程执行状态的影响9.1运行一个最简单的程序,看操作系统为程序运行做了哪些工作9.2操作系统的设计指导思想——主奴机制9.3实现主奴机制的三种关键技术9.4建立主奴机制的决定性因素——先机9.5软件和硬件的关系9.6父子进程共享页面010302040506第9章操作系统的设计指导思想9.7操作系统的全局中断与进程的局部中断——信号“新设计团队”简介

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论