`
cloudtech
  • 浏览: 4608901 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

理解x86架构的捷径

 
阅读更多

理解 x86 架构的捷径

读《 orange's一个操作系统的实现 》有感

对 x86 架构的处理器,业界一向是褒贬不一。但是毫无疑问的是, x86 架构的处理器是迄今为止在市场上最成功的处理器。它既催生了 Intel 、微软这样的 业界巨头,也改变了普通人们的生活。到今天,虽然有 arm 的异军突起,但是大部分程序员所编写的程序依然在运行在 x86 架构上。

虽然很多上层的程序员绕过了对 CPU 架构本身的理解,而直接使用高级语言进行编程,但是对 CPU 本身的熟悉,其实依然是所有想被称为优秀的程序员所难以绕过的一道坎。对 CPU 的不熟悉,实际上限制了程序员的思维方式、对程序的理解和实际解决问题的能力。

对于普通的芯片,阅读几页的说明书就可以大致理解如何让它工作。 CPU 是比较复杂的一种,对于比较简单的 CPU 架构,阅读几十页的文档也能大致熟悉。然而 x86 架构的 CPU 的说明可不是这么简单,其手册估计有一共有四、五千页之巨。不要说理解透彻,就是从头到尾翻一遍也不是一件简单的事情。并非 Intel 有意将它做得复杂,这里有历史的原因。因为这个架构的应用实在太广了,全世界有无数的软件都在它的基础之上工作。为此它自身的升级也就变得举步维艰。每次 升级都不得不要兼容之前的特性。这也就导致了新旧指令层层堆积,种种特性互相兼顾,最终变成如今的一团乱麻了。


对于入门级的选手,读完那些手册可不是一件容易的事情。但是于渊的这本《 orange's:一个操作系统的实现 》却是一条难得的终南捷径。因为要理解如何 让一个芯片正常工作,最简单的办法就是从头开始去写程序让它运行起来,然后操作它做自己想做的事情。如果是平时的编程,这些下层的工作都已经有操作系统帮 你做了,对理解 x86 架构的帮助就大为有限。如果去读那几千页的文档,不但读起来很痛苦,中间又没有多少可以实际操作的工作来帮助你温故而知新,这其中的 枯燥乏味,绝对不是一般人可以忍受的了。而且更重要的手册中虽然包含了 x86 所有的特性,然而其中有些特性是现代操作系统根本就没有用到的。努力的去理解 的话,又是吃力不讨好了。如果每个读者都可以随着这本书的介绍,去逐步的实现一个操作系统,不但这中间其乐无穷,而且实现到最后,对 x86 架构的理解也就不在话下。


有的人认为,要看一个操作系统的实现,不如直接去看 Linux 的代码。本人对此不敢苟同。 Linux 已经是商业级的代码, 为了实际的商业应用,必定会实现浩如烟海的细节。而对于一个 x86 架构的初学者而言,一开始就去阅读这些细节的代码,实际上是有害无益。除非将旁枝末节一 一剪除,只剩下主干。但是这样的甄别工作,可完全不是一个初学者自己能做得了的事情了!而《 orange's:一个操作系统的实现 》讲述的是一个完全为了 理解 x86 架构的教学系统。其中每一步初学者都可以亲自实现,亲手编出那些代码。因此,作为商业级的操作系统, orange's 当然是远远比不上 Linux 。但是对于一个学习 x86 架构的初学者而言, orange's 反而更加适宜。而且在读完这本书之后,相信读者学起 Linux 来,肯定会更加轻松。 ( 删除:这样的好处,又岂是 Linux 能提供得了的呢?

本文由《 寒江独钓: Windows内核安全编程 》和《 天书夜读:从汇编语言到 Windows内核编程 》作者之一 谭文 撰写


相关图书信息:

【书名】 orange's一个操作系统的实现

【作者】于渊

【出版社】电子工业出版社

【书号】 978-7-121-08442-3

【出版日期】 2009 5

【开本】 16

【页码】 492

【内容简介】

本书从只有二十行的引导扇区代码出 发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供 给读者一个动手实践的路线图。读者可以根据路线图逐步完成各部分的功能,从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。



【书名】 寒江独钓: Windows内核安全编程

【作者】谭文,杨潇,邵坚磊

ISBN 978-7-121-08796-7

【出版社】电子工业出版社

【出版日期】 2009 6

【宣传语】

【内容简介】

本书从 Windows 内核编程出发,全面系统地介绍了串口、键盘、磁盘、文件系统、网络等相关的 Windows 内核模块的编程技术,以及基于这些技术实现的输入密码保护、防毒引擎、文件加密、网络嗅探、网络防火墙等信息安全软件的 核心组件的具体编程。主要知识重点包括: Windows 串口与键盘过滤驱动、 Windows 虚拟存储设备与存储设备过滤驱动、 Windows 文件系统过滤 驱动、文件系统透明加密 / 解密驱动、 Windows 各类网络驱动(包括 TDI 过滤驱动及 3 NDIS 驱动),以及最新的 WDF 驱动开发模型。有助于读者熟 Windows 内核驱动的体系结构,并精通信息安全类的内核编程技术。本书的大部分代码具有广泛的兼容性,适合从 Windows 2000 一直到目前最新的 Windows 7 Beta 版。

本书适合大专院校计算机系的学生、普通 Windows 程序员、 Windows 内核程序员、信息安全行业的程序员,以及希望了解 Windows 系统底层知识的计算机编程爱好者使用。阅读本书,需要读者有 C 语言、数据结构、操作系统和计算机网络的基础知识。



【书 名】 天书夜读:从汇编语言到 Windows内核编程

【作 者】 谭文,邵坚磊

ISBN 978-7-121-07339-7

【出版社】 电子工业出版社

【出版日期】 2008 12

【宣传语】

从貌似天书的汇编代码中,一探 Windows 底层的核心实现。

在开发中出现的问题,能从 Windows 自身找到答案!

【内 介】

书从基本的 Windows 程序与汇编指令出发,深入浅出地讲解了 Windows 内核的编程、调试、阅读,以及自行探索的方法。读者在使用 C/C++ 开发 Windows 程序的基础上,将熟练掌握汇编和 C 语言的应用,深入了解 Windows 底层,并掌握阅读 Windows 内核的基本方法,以及 Windows 内核的基本编程方法。

本书适合使用 C/C++ Windows 上编程的读者,尤其适合希望加深自己技术功底的 Windows 应用程序员、计算机专业的有志于软件开发的大中院校学生;专业的 Windows 内核程序员,亦可从本书得到超越一般内核程序开发的启发。 ITPUB 个人空间 Y­c.d9]6^ y
|Hla

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics