读 自己动手写操作系统

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

http://ike.126.com

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

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

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

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

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

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

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

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

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/siwwhdh/p/10299945.html

时间: 2024-08-05 05:03:08

读 自己动手写操作系统的相关文章

Orange's 自己动手写操作系统 第一章 十分钟完成的操作系统 U盘启动 全记录

材料: 1 nasm:编译汇编源代码,网上很多地方有下 2  WinHex:作为windows系统中的写U盘工具,需要是正版(full version)才有写的权限,推荐:http://down.liangchan.net/WinHex_16.7.rar 步骤: 1 编译得到引导程序的机器代码.用命令行编译汇编源代码:name boot.asm -o boot.bin,其中boot.bin文件产生在命令行的当前目录中. 2 将引导程序写入到U盘引导盘的第一个扇区的第一个字节处(后),即主引导区.

自己动手写操作系统 -- 环境搭建

目录: 软件和工具下载 Bochs虚拟机配置文件 Hello World编辑编译 1. 软件和工具下载 Bochs虚拟机下载安装 下载地址: http://download.pchome.net/system/sysenhance/down-19486.html dd for windows下载安装 下载地址: http://www.downxia.com/downinfo/17093.html nasm for windows下载安装 下载地址: http://download.csdn.ne

自己动手写操作系统--个人实践

近期開始看于渊的<自己动手写操作系统>这本书,刚開始看就发现做系统的引导盘居然是软盘!心里那个汗啊! 如今都是U盘了,谁还用软盘.于是考虑用U盘. 于是開始下面步骤: 1.既然书上说给先要把软盘做引导盘,那我就相似地把U盘做成引导盘.在网上找了半天,发现USboot,于是就用它给自己的U盘做了一个引导盘. 2.把编译后的boot.bin文件用绝对扇区工具写入U盘就万事大吉了.相同,在网上找到了winhex(还有ultraiSO,这个没有什么用),但是这个关键的一步,自己不知道如何用winhex

自己动手写操作系统(一)环境准备

参考书籍为<自己动手写操作系统>于渊著 VMware12 centOS7.4.1708 1.bochs安装 首先下载安装包: 下载地址 然后解压,解压命令:sudo tar -zxvf bochs-2.6.9.tar.gz cd命令进入解压目录,先进行配置 配置命令:./configure --enable -debugger --enable-disasm 然后:sudo make 当我执行这一步的时候,报错了 没有Xlib的话就安装一下,这里进行全部安装:yum install libX*

自己动手写操作系统(一)环境准备【转】

转自:https://blog.csdn.net/qq_41785376/article/details/90739557 参考书籍为<自己动手写操作系统>于渊著 VMware12centOS7.4.1708 1.bochs安装首先下载安装包: 下载地址然后解压,解压命令:sudo tar -zxvf bochs-2.6.9.tar.gz cd命令进入解压目录,先进行配置配置命令:./configure --enable -debugger --enable-disasm 然后:sudo ma

自己动手写操作系统 第四章总结

本章主要内容是建立一个功能比較完好的引导扇区也称为 boot sector 首先回想一下一个操作系统从开机到执行的过程 1.引导 2.载入内核入内存 3.跳入保护模式 4.開始运行内核 可见在内核開始运行前还有非常多工作要做,假设所有交给boot sector,512字节非常可能不够用,所以我们须要将这个 功能分担出来,这个模块就是loader 如今,boot sector 的功能就是负责把loader载入到内存中,而且把控制权交给它,到此,boot sector就完毕任务了 而载入内核的功能就

自己动手写操作系统(二)一个最小的“操作系统”

第一步 首先新建一个boot.asm文件,用vim将书中的代码1-1写入文件中,并保存.然后使用nasm编译. 附上代码: org 07c00h mov ax, cs mov ds, ax mov es, ax call DispStr jmp $ DispStr: mov ax, BootMessage mov bp, ax mov cx, 16 mov ax, 01301h mov bx, 000ch mov dl, 0 int 10h ret BootMessage: db "Hello,

动手写操作系统 -- 前言

同步来自我的博客:http://fillzero.github.io/os/diy-os-01.html

动手写操作系统 -- 多任务调度

同步来自我的博客:http://fillzero.github.io/os/diy-os-12.html