文末附彩蛋、运行效果图以及源代码
计算机相关业余的读者们在大学时都学习过《操作系统》这门课程。对于什么是操作系统,老师们广泛以实践概念为主进行传授,比方,什么是过程,什么是线程,什么是文件系统等知识点。可是,像过程与线程的创立过程、空间换工夫的利用场景等内容却鲜有提及。不过,可能有些人感觉没有必要十分分明这些问题,以前的我也曾有过此种想法。待到有幸从事几年Linux内核级的研发工作后,我才逐步对上述问题有了比拟直观、粗浅的认知,并且缓缓领会到,如果不分明操作系统原理,某些问题解决起来十分艰难。
在计算机领域,中国的倒退速度依然落后于发达国家,师资力量有余是在劫难逃的。一些学校只是概括性地传授微机原理、汇编语言、计算机组成原理、编译原理、操作系统等基础知识,甚至还可能只将它们作为选修课程。但在工作多年的反思中才发现,它们是死记硬背计算机领域的必要常识,它们往往决定了一个人能在计算机行业走多远。而且,目前中国软件行业仍以外包为主,可能静下心来做技术储备、基础知识培训的自主研发型公司少之又少,这种场面使得咱们想在工作中补救基础知识仍然十分困难。
现今,网络上已有不少对于操作系统实际类的文章和图书,这些文章和图书作为入门学习是很不错的抉择。可是,这些文章和图书内容的一个通病是,操作系统广泛采纳Intel 32位处理器的虚构平台进行开发、研制。这个32位处理器的虚构平台尽管学起来简略,但如果用到工作中触类旁通的话,还是存在诸多差距与有余。比拟典型的例子有,虚构平台与物理平台在软硬件执行流程上的差别、多核处理器间的通信机制、高级中断控制器的配置、先进的64位处理器体系结构等,这些问题难以正确剖析、推理及解决,会导致实践与实际脱节。
思考到对操作系统感兴趣的读者不在少数,基础知识的把握程度势必参差不齐。为了关照到各个方面,本书将尽量做到既适宜在校学习理论知识的初学者,又适宜退职工作的软件工程师或有肯定根底的业余爱好者。
《一个64位操作系统的设计与实现》讲述了一个64位多核操作系统的自制过程。首先从虚构平台构筑起一个根底框架,随后再将根底框架移植到物理平台中进行降级、欠缺与优化。为了凸显64位多核操作系统的特点,物理平台选用搭载着Intel Core i7处理器的笔记本电脑。与此同时,本书还将Linux内核的源码精华、诸多官网白皮书以及多款罕用协定稀释于其中,可使读者在读完本书后可能学以致用,进而达到实践联系实际的目标。
这不是一本由几万行代码简略列举成的书,也不是一本由各种技术文档堆砌成的书。当你在学习计算机操作系统原理时迷失了方向,它会为你点亮一盏灯,照亮后方的路。
本文将从目录、次要内容和总结这三局部的构造给大家介绍,同时附上局部运行效果图及源代码,心愿大家可能喜爱!!
目录
次要内容
全书共16章。第1~2章讲述了操作系统的根底概念和开发操作系统须要把握的常识;第3~-5章在虚构平台下疾速构建起一个操作系统模型;第6~16章将在物理平台下对操作系统模型做进一步降级、 优化和欠缺。
第一局部 操作系统相干常识介绍及环境搭建
这一部分将介绍操作系统相干常识及环境搭建办法,蕴含两章内容:
- 第1章操作系统概述;
- 第2章环境搭建及基础知识。
第1章操作系统概述:本章首先从宏观上介绍操作系统由哪几局部组成,而后介绍编写操作系统必须把握的常识,最初再简要介绍本书操作系统。
本章次要向读者介绍如下内容
- 什么是操作系统
- 操作系统的组成构造
- 编写操作系统须要的常识
- 本书操作系统简介
第2章环境搭建及基础知识:本章介绍编写本书操作系统所需的基础知识、零碎环境及环境搭建办法,大家不用在这方面消耗太多精力,本若够用就好的准则即可。
本章次要向读者介绍如下内容
- 虚拟机及开发零碎平台介绍
- 汇编语言
- C语言
第二局部高级篇
高级篇将疾速搭建起一个操作系统雏形,使读者初步理解操作系统的组织构造、各模块的性能以及模块间的分割,包含如下3章内容。
第3章BootL oader疏导启动程序:本章将采纳一种简洁、高效的开发方式对BootLoader疏导启动程序进行解说,进而将BootL oader疏导启动程序的整体概貌展示在读者背后,而后在高级篇里对BootI oader疏导启动程序的更多技术细节再做进一步解释。
从这一章开始,将正式进入操作系统开发环节。话不多说,精彩即刻开始!
本章次要向读者介绍如下内容
- Boot疏导程序
- Loader 疏导加载程序
第4章内核层:通过BootLoader疏导加载程序的洗礼后,当初正式进入零碎内核程序的研发环节,本章将会把零碎内核各个局部的根底性能展示在读者背后。当读者理解零碎内核的根底性能后,高级篇再对这部分内容进行结构化和深刻化。
本章次要向读者介绍如下内容
- 内核执行头程序
- 内核主程序
- 屏幕显示
- 零碎异样
- 高级内存治理单元
- 中断解决
- 键盘驱动
- 过程治理
第5章应用层:通过前一章的学习,咱们曾经简略实现了操作系统的内核层程序。尽管这个零碎的外围极其简陋,但它已是原理性知识的实际化,这就是种提高。内核层 次要是为应用层提供服务的, 既然内核层曾经初步实现,本章将会把工作重心从内核层转移到应用层。
本章次要向读者介绍如下内容
- 跳转到应用层
- 实现零碎调用API
- 实现一个零碎调用处理函数
第三局部高级篇
高级篇将会补充解说高级篇跳过的简单内容,并在此基础上进行诸多性能扩大和原理性形容,相干章节包含如下内容:其中,第6章是对处理器体系结构的摸索,次要针对Intel处理器在各种运行模式下的寻址形式进行解说;第7章补充了高级篇疏导启动局部脱漏的内容,并将BootLoader程序移植到物理平台;第8~14章属于内核层的内容,这部分内容深入并降级了高级篇的零碎内核,使其性能更加丰盛、强壮;第15章属于应用层的内容,它将-一个只能显示Hello World !的应用程序,演变成一个具备交互能力的Shell命令解析器。
第6章处理器体系结构:本章次要介绍Intel处理器体系结构相干常识,并联合这些常识对高级篇编写的程序进行补充解说,从而使读者们更加直观地学习这部分内容。限于篇幅,本章将次要解说Intel处理器的根底性能、各种运行模式的特点、各个地址空间的转换过程及办法等罕用常识,而像高级中断控制器( APIC )、多核处理器治理等常识将会在须要时另作补充。
本章次要向读者介绍如下内容
- 根底性能与新个性
- 地址空间
- 实模式
- 保护模式
- IA-32e模式
第7章欠缺BootLoader性能:本章将会对高级篇编写的BootL oader程序进行降级和欠缺,并补充解说脱漏的技术细节。而且从本章开始咱们将进入物理平台的研发工作,光听听就会感觉这是一件令人热血沸腾的事,想必读者曾经期待物理平台的解说许久了。
本章次要向读者介绍如下内容
- 实模式的寻址瓶颈
- 获取物理地址空间信息
- 操作系统疏导加载阶段的内存空间划分
- U盘启动
- 在物理平台上启动操作系统
- 细说VBE性能的实现
第8章内核主程序:本章将会持续对高级篇中的内核主程序进行功能性补充,并对操作系统的地址空间划分状况以及此前脱漏的编译、链接等常识予以补充阐明。
本章次要向读者介绍如下内容
- 内核主程序性能概述
- 操作系统的Makefile编译脚本.
- 操作 零碎的kernel.lds链接脚本
- 操作系统的线性地址空间划分.
- 取得处理器的固件信息
第9章高级内存治理单元:本章内容仍将波及内存和物理页的调配/回收算法,尽管在高级内存治理单元一节中, 曾经实现了对物理内存信息的检测,并初步实现了物理页的调配性能,但这些性能还不够弱小,不足以撑持整个零碎内核的失常运行,因而须要通过本章内容对现有内存治理单元进行补充齐全。
本章次要向读者介绍如下内容
- SLAB内存池
- 基于SLAB内存池技术的通用内存治理单元
- 调整物理页治理性能
- 页表初始化
第10章高级中断处理单元:在高级篇中,咱们曾经实现了单核处理器的中断处理单元,它基于8259A PIC实现,是单核处理器时代的典型中断控制器芯片。因为8259A芯片只能将中断请求信号投递给一个指定的处理器,所以当多核处理器问世后,如果仍然沿用此类芯片,则在暴发大量中断请求时,此类芯片势必会影响处理器对它们的响应速度。
本章次要向读者介绍如下内容
- APIC概述
- Local APIC
- I/O APIC
- 中断控制器的模式抉择与初始化
- 高级中断解决性能
第11章设施驱动程序:本章将波及键盘、鼠标控制器的配置,键盘扫描码的解析,鼠标数据包格局的解析,硬盘控制器协定的应用等知识点。
本章次要向读者介绍如下内容
- 键盘和鼠标驱动程序
- 硬盘驱动程序
第12章过程治理:通过设施驱动程序一章的洗礼后,本章将对高级篇的过程治理单元(或称过程治理模块)进行补充、降级与欠缺,这一过程将波及多核处理器、过程调度、临界区竞争、过程间通信等重要内容和相干知识点。置信通过此次降级后的过程治理单元会更加精彩。
本章次要向读者介绍如下内容
- 过程治理单元性能概述
- 多核处理器
- 过程调度器
- 内核同步办法
- 欠缺过程治理单元
第13章文件系统:本章将率领读者实现性能更弱小的FAT32文件系统。
本章次要向读者介绍如下内容
- 文件系统概述
- 解析FAT32文件系统
- 虚构文件系统
第14章零碎调用API库:本章将在适当参考POSIX标准规范的根底上,从现有外围模块中为应用程序形象出零碎调用API。
本章次要向读者介绍如下内容
- 零碎调用API构造
- 基于POSIX标准实现零碎调用
第15章Shell命令解析器及命令:通过对POSIX标准的浅显学习和零碎调用API的简略实现后,应用程序已可能在零碎内核的帮忙下实现一些根底操作。本章将在此基础上实现Shell命令解析器和若干根底命令,以加强操作系统的性能和应用体验。此举不仅能够有针对性地实现更多零碎调用API、扩充应用程序对系统调用API的测试范畴,而且还为操作系统引入交互性能,堪称一举多得。
本章次要向读者介绍如下内容
- Shell命令解析器
- 根底命令
第16章一个彩蛋:当读者看到此处时,想必大多数人都会感觉意犹未尽,同时也盼望着尽早看完本书后可能大干一番。尽管本操作系统的主体内容曾经完结,但思考到许多初学者会在调试阶段重复反汇编system文件去查找问题,为了让异样信息便于察看和了解,本节特意为读者引入内核栈反向跟踪技术,此技术可在内核触发异样时打印出内核层的函数调用过程。
**这份【一个64位操作系统的设计与实现】共有692页,须要完整版的小伙伴,能够转发此文关注小编,点此来获取!!**
一个64位操作系统的设计与实现(运行效果图)
因为篇幅限度在这里只给大家展现局部,完整版可获取
高级篇
第3章
第4章
第5章
高级篇
第7章
第9章
第13章
第16章
一个64位操作系统的设计与实现-源代码
以高级篇第16章为例:
**以上文档、运行效果图及源代码均收费分享,有须要获取用于学习的敌人,帮忙转发一下,关注小编,点击这里获取即可**
心愿大家能把本文的内容认真学习到手,并且可能灵活运用到工作当中,减少本人的技术深度和广度,让本人变得更有价值!
也心愿本文可能失去大家的喜爱!
发表回复