关于java:顶级运维工程师的692页操作系统价值观总结代码竟也泄露了

2次阅读

共计 4430 个字符,预计需要花费 12 分钟才能阅读完成。

文末附彩蛋、运行效果图以及源代码

计算机相关业余的读者们在大学时都学习过《操作系统》这门课程。对于什么是操作系统,老师们广泛以实践概念为主进行传授,比方,什么是过程,什么是线程,什么是文件系统等知识点。可是,像过程与线程的创立过程、空间换工夫的利用场景等内容却鲜有提及。不过,可能有些人感觉没有必要十分分明这些问题,以前的我也曾有过此种想法。待到有幸从事几年 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 章为例:

** 以上文档、运行效果图及源代码均收费分享,有须要获取用于学习的敌人,帮忙转发一下,关注小编,点击这里获取即可 **

心愿大家能把本文的内容认真学习到手,并且可能灵活运用到工作当中,减少本人的技术深度和广度,让本人变得更有价值!

也心愿本文可能失去大家的喜爱!

正文完
 0