用一个月左右的时间读了《自己动手写操作系统》,这是一本让人读着很过瘾,却也特别累的一本书。

  对操作系统的兴趣由来已久,只是一直未能找到入门之径。操作系统教材是个令人生畏的东西,它可以告诉人有什么,却不能告诉人为什么,从那里了解的操作系统有如盲人摸到的象,得到各个部分,却不能拥有整体,加之缺乏实践的支持,理论显得苍白空洞。如Linux般的开源操作系统,虽然可以让人坐拥全部源码,但一来规模庞大,让人不知从何入手,二来源码背后更多的是业务——操作系统和硬件知识,不了解业务的人很难凭一己之力破解源码的奥秘。客观如此,更重要的还是主观的不努力。

  《自己动手写操作系统》则为如我一般挑剔的人打开了一扇门,从一点一滴的小处着手,一步步构建出一个简陋的操作系统雏形——Tinix,虽然它还不具备任何实际的价值,甚至算不上一只五脏俱全的麻雀,但对于想走近操作系统的人来说,这已经足够了,如果能够随着它一路走来,至少可以具备更进一步的基础,再去遨游广阔天地,便不会迷失于庞杂的理论与源码之中。

  这本书的名字给人的提示是,它是一本以实践为基础的书,因此,阅读之初我便给自己定下了步步紧跟的策略。照着书敲代码也难免出错,再者书中有一些遗漏,只有对比光盘中提供的源码才能发现其中的细微之处,所以,常常是一段代码要花相当长的时间进行调试。实践证明,这种方法需要花费相当的精力,这也是我为什么会认为读这本书很累的原因。但是这种做法对于理解书中内容大有裨益。看明白,做一遍,调试,这是几个截然不同的境界。很多细节的东西,只有经过调试才能发现。即便是自己编写的代码,如果没有经过调试,恐怕也难说真正的理解。

  作者在后记中写到,这本书最大的价值在于,它让操作系统的实现这个问题变得具备“可操作性”。正是因为这样,我才可以追随它一步步走来。在这点上,我读到第三章《保护模式》就已经体会颇深了。我曾经读过很多关于保护模式的内容,不过,由于缺乏实验,我只是了解一些概念,却不曾深刻体会。在第三章中,通过一个个简单的小例子,切换至保护模式,设置GDT和LDT,使用分页,中断处理等等书本上的概念活灵活现的展现在我的面前,那些艰涩的概念一下子便得再简单不过了。

  市面上关于源码剖析的书很多,但是,即便像侯捷先生这样教育大家编写的《深入浅出MFC》、《STL源码剖析》大多数情况下也只是讲了怎么做,而无法说出为什么,原因很简单,这些书是站在旁观者的角度看问题,而很多问题只有开发者才是真正理解的。所以,这些源码剖析的书有其价值,但深度上还存在相当的欠缺。这本书的作者恰恰是站在了开发者的角度来讨论问题,所以,我们有机会看到了一个思考的过程,而不仅仅是一个结果。这一点从第六章《进程》中时钟中断处理程序的一步步进化便得以管中窥豹。

  不得不提一下的是作者的写作功力,读过了许多生涩的技术书籍,这本读起来很舒服的书倒显得有些另类。它属于我心目中期盼的那种“形神兼备”的好书,正是作者相当不错的表达,才是这本书让人享受技术的同时又可以体味阅读的乐趣。当然,其中还是有些技术细节让人昏昏欲睡。

  读书,首先要找到适合自己的书,这样我们才能从中有所收获,毕竟,技术书籍中很少能够找到满足所有层次需要的书。《自己动手写操作系统》的定位是一本入门书,显然,它不适合已经过了这个阶段的人,如果因此埋怨这本书档次太低,那就怪不得旁人,因为自己走错了路。

  如果你和我一样,对操作系统有兴趣却不得门径,不妨《自己动手写操作系统》。

读《自己动手写操作系统》相关推荐

  1. 读《Android 安全架构深究》

    Android 安全架构深究 安全是一个非常立体而丰富得概念.在不同的场景下,安全有着不同的含义. 比如对于网络传输,安全指的是传输的数据不会被其他人看到.篡改.伪造及仿冒,传输的数据不会遭到破坏,数 ...

  2. 《最强Android书 架构大剖析》读书笔记

    文章目录 第一章 Android 体系结构的变革之路 1.2 Android系统源码目录 与Linux的异同 Android的框架 原生二进制可执行文件 Android 的原生库 核心(core)库 ...

  3. Android Jetpack架构组件之 Room(使用、源码篇)

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...

  4. 抖音、美团等大厂千万级用户的Android客户端架构演进之路—

    在移动开发中,对开发者来说不同的人具有不同的能力.就像读一本书一样,一千个读者,有一千个哈姆雷特.但不管怎样,只要你是个软件开发者你就必须学习windows或Linux等操作系统的运行原理.Andro ...

  5. Android 图形架构之一 ——概述

    前言 本系列的文章,可以让你明白,一个View最终是如何显示到屏幕上的,从应用层到硬件抽象层.对分析app的卡顿,掉帧等 有很大帮助. 由于图形架构的涉及到的代码量很大,所以本篇先来个总体的概述,有个 ...

  6. Android display架构分析-SW架构分析(1-8)

    参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...

  7. 高通Android display架构分析

    目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...

  8. [Android] Android MVP 架构下 最简单的 代码实现

    Android  MVP 架构下  最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...

  9. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  10. Android系统架构图及简单的系统架构介绍

    2019独角兽企业重金招聘Python工程师标准>>> ndroid的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层. ...

最新文章

  1. 【并发编程】Future模式及JDK中的实现
  2. 网络安全系列之二十一 配置IPSEC安全策略
  3. php自动生成新闻页,自动发布新闻页面的php代码
  4. php 上传文件漏洞,【文件上传】PHP文件上传漏洞
  5. (解决)mysql1366中文显示错误的终极解决方案
  6. 欢乐纪中某B组赛【2019.1.24】
  7. pythonui教学视频_分享软件开发相关视频教程(Java、C++、Python、UI设计、HTML5、iOS)...
  8. ASP正则表达式方面小笔记
  9. IDEA快捷键的使用成就手速之旅(要想手速变得快,快捷练习必须刚)
  10. android 图片 切换,Android 应用开发笔记 - 切换图片(ImageSwitcher)
  11. 注意力机制(SE、Coordinate Attention、CBAM、ECA)、即插即用的模块整理
  12. 用c语言中的函数来求公约数,C语言中求最大公约数的函数
  13. 看〈走出软件作坊〉浅谈扁平化管理
  14. iOS仿京东分类菜单之UICollectionView内容
  15. 上采样卷积转置的deconvolution方法实现双线性插值,代码实现,结果不一样
  16. LoggingFilter Session 以及Async
  17. 使谷歌浏览器兼容ie浏览器
  18. 织梦DedeCms技术资料
  19. 大型医院叫号管理系统源码
  20. 《无聊教程●第一课●教你编一个牛逼的VBScript邮件发送器》

热门文章

  1. Feature selection using SelectFromModel
  2. Nginx日志中的金矿
  3. Android开发人员不得不收集的代码(持续更新中)
  4. ubuntu 切换java环境,配置单独的用户环境
  5. Linux系统下安装Mysql
  6. Spring注解详解(转)
  7. 转载--Ajax学习---DOM进行Web响应
  8. CSblog的学习记录
  9. 小米笔试题--数组移动
  10. 深浅拷贝和数列,变量的区别