首页 > 其他分享 >书评《操作系统导论》

书评《操作系统导论》

时间:2023-04-06 12:03:17浏览次数:34  
标签:本书 操作系统 前置 导论 书评 Linux 习题 书籍


书评《操作系统导论》 OSTEP  Operating Systems: Three Easy Pieces

 

在操作系统的书籍中,最出名的应该就是《操作系统设计与实现》和他的修订版《现代操作系统》了。作者作为MINIX操作系统的创始人,连Linux都是收到它的启发而开发的。但是两年前,我读这本《现代操作系统》的时候,却发现读不下去。

原因在于书中出现的概念太多,讲的又太含糊(翻译的不好),以至于我读过之后只有一个模糊的印象,无法在脑子里把知识串联起来。后来在网上看了一些书评才发现,看操作系统这本书,是需要学习很多前置课程的。

 

看操作系统一般需要的前置课程如下:

C语言,Linux/Unix,汇编语言,计算机组成原理(学组原还要会数字电路)等等。

当时汇编我一点都不懂,Linux/Unix也不会(只会用GUI肯定不算),组成原理也只是了解一点。这时候看操作系统,肯定是一头雾水。于是当时我只是草草读了一遍《现代操作系统》,便放弃了。

 

两年后,对于上面的前置课程,我也仅仅是多学了Linux。不是我懒,而是我的工作内容和这些底层的汇编,组成原理没啥关系(我现在做Web前端呀)。这时候,我再想读一本介绍操作系统原理有关的书籍,应该选哪本?

我对市面上流行的操作系统书籍做了调查之后,最后选了这本:《操作系统导论》。这本书应该是最适合基础差的同学的操作系统书籍了。

读这本书所需要的前置课程:C语言,Linux/Unix,少量计算机组成原理知识。

这几个条件,我刚好符合。于是我就选了这本书。当然,如果你会的知识更多,比如汇编语言也会,那么读这本书肯定更轻松。但是——如果你会这么多,我就推荐你读更经典,难度也更高的操作系统书籍了。

 

这本书的不仅对阅读容易,对新人友好,还有更大的特色就是——习题非常棒!

像其它大部分操作系统书籍,一般都没有习题或者不重视习题。而这本书习题占据了很重要的部分。习题不仅有C语言编程,还有模拟作业。这个模拟作业对于理解操作系统概念非常棒。以往都是干巴巴的看书,书中的概念只是有个印象,你不知道这个概念这个算法实际在系统中运行是什么样子,有什么效果。但是有了这个模拟作业,你可以自己设定参数,设定任务,观察系统的反应。虽然仅仅是个模拟,但是也起到了实践的效果,比单纯看书好多了。

书的最后部分也提供了一些系统项目和xv6项目,如果想要对操作系统加深了解,可以试着做一下。大部分项目看起来是有点复杂的。

 

这本书的讲述相对比较“幽默”,还有困在书中的教授和学生作为旁白。对于知识屏蔽做的比其他操作系统书籍要好,不一下子给读者大批的概念让读者无所适从,也不会假设读者具有一切基础知识。

但是相对的,这本书讲的内容太少。虽然是一本接近于500页的书籍,但相比于其它操作系统书籍,能了解到的知识少了一些。这也是由于这本书更基础导致的。

另外,这本书的英文版是开源的,作者提供了PDF可以免费下载。附带还有作业程序。与英文开源版本相比,中文版在第二第三部分少了很多很多作业题目。

 

标签:本书,操作系统,前置,导论,书评,Linux,习题,书籍
From: https://blog.51cto.com/u_15995687/6172558

相关文章

  • 《操作系统原理、实现与实践》实践项目5&6:信号量&地址映射与共享
    教员布置的操作系统的第一个大作业,其中有一些知识相对而言比较重要,包括一些操作过程都具有重复实验的价值;所以写一个blog记录一下,方便一下以后重复这个大实验或是复现。分为三个部分:实验环境的配置、实验5的实现、实验6的实现。实验环境的配置:KylinOS应该是可以实现的,实现的原......
  • Python platform模块获取操作系统信息
    一、概述1、python中,platform模块给我们提供了很多方法去获取操作系统的信息importplatformprint(platform.platform())#获取操作系统名称和版本号:macOS-10.14.6-x86_64-i386-64bitprint(platform.system())#获取操作系统:Darwinprint(platform.version())#获取计算机操作......
  • 操作系统-文件结构划分
    1.文件的逻辑结构(文件内部的逻辑结构)索引文件索引顺序文件2.文件目录结构(文件外部的逻辑结构:文件与文件之间的逻辑结构)FCB和索引节点的关系是怎样的在检索目录文件的过程中,只用到了文件名,文件的其他描述信息用不到,也不需要调入内存,所以文件描述信息就形成了一个叫索引结......
  • 02142数据结构导论复习笔记
    第一章概论概论⭐⭐数据结构:计算机组织数据和存储数据的方式。数据结构:指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的存储方式,以及定义在该组数据上的一组操作。引言⭐⭐算法+数据结构=程序数据、数据元素和数据项⭐⭐⭐数据:所有被计......
  • 04分时操作系统4.3
    分时操作系统一台主机连接多台显示器和终端,允许多个用户通过客户端访问,以交互的方式,共享主机中的资源。为什么需要分时系统人机交互共享主机便于用户上机(提高商业价值)需要解决的关键技术问题及时接收信息及时处理(作业提前进入内存,能够与用户交互)分时系统的......
  • 操作系统实验1 体验 Nachos 下的并发程序设计
    操作系统实验报告实验:Lab1TheTroublewithConcurrentProgramming专业:计算机科学与技术班级:1班姓名:姚怀聿学号:229202022046322023年3月24日目录一、实验目的3二、实验要求3三、实验设计及关键代码实现31.多线程执......
  • 02142数据结构导论-考试大纲思维导图
    第一章第二章第三章第四章第五章第六章第七章思维导图下载地址(MindMaster绘制):链接:https://pan.baidu.com/s/1kaoT394M-EG3w05sdC9eqQ?pwd=6060提取码:6060......
  • Golang 需要至少 5 个操作系统线程
    Golang需要至少5个操作系统线程主线程:Golang代码执行的入口点,负责初始化程序,并启动其他Goroutine。垃圾回收器线程:Golang内置了垃圾回收器,使用专门的线程来执行垃圾回收操作,回收不再使用的内存空间。CPU核心数个系统线程:每个核心需要一个系统线程来支持并发任务的执行......
  • 《30天自制操作系统笔记》---第一天
    第一天第一个实验:用二进制写一个显示helloworld的“操作系统”使用工具:1、HxD-二进制编辑器2、qumu模拟器下载了HxD–二进制编辑器编辑好了书上的二进制程序helloos0.img然后按照书上写了bat脚本。Install脚本:用来制作系统启动盘Run脚本,用来启动qumu模拟器运行。不过......
  • linux操作系统实验四-以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
    一、搭配环境(1)安装编译工具sudoapt-getinstallgcc-aarch64-linux-gnusudoapt-getinstalllibncurses5-dev build-essentialgitbisonflexlibssl-dev(2)制作根文件系统wget https://busybox.net/downloads/busybox-1.33.1.tar.bz2tar-xjfbusybox-1.33.1.tar.bz2......