理解 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

理解x86架构的捷径相关推荐

  1. 【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )

    文章目录 一.修改内存页属性 二.x86 架构下的插桩拦截 一.修改内存页属性 实际函数 的 函数指针为 unsigned char* pFunc , 拦截函数 的函数指针为 unsigned cha ...

  2. 浅析x86架构中cache的组织结构

    cache通常被翻译为高速缓冲存储器(以下简称"高速缓存"),虽然现在cache的含义已经不单单指CPU和主存储器(也就是通常所谓的内存)之间的高速缓存了,但在本文中所谓的cach ...

  3. 赠书 | 读懂 x86 架构 CPU 虚拟化,看这文就够了

    作者 | 王柏生.谢广军 导读:本文摘自于王柏生.谢广军撰写的<深度探索Linux系统虚拟化:原理与实现>一书,介绍了CPU虚拟化的基本概念,探讨了x86架构在虚拟化时面临的障碍,以及为支 ...

  4. arm架构和x86架构_ARM、X86和MIPS主流架构优缺点分析

    三种主流芯片架构 1. ARM ARM是高级精简指令集的简称(Advanced RISC Machine),它是一个32位的精简指令集架构,但也配备16位指令集,一般来讲比等价32位代码节省达35%, ...

  5. 【汇编优化】之x86架构intrinsic优化

    1.SSE Intrisic based on x86 x86架构下的优化有多种手段,常见的有纯汇编优化.inline汇编.Intrinsic优化.前两种对编译器的依赖比较大,跨平台(windows\ ...

  6. x86架构和arm架构处理器分析

    x86架构和arm架构处理器分析 目录: 1.两种cpu架构:冯洛伊曼和哈佛 2.x86架构和arm架构分析 3.x86架构和arm架构功耗探究 一.两种cpu架构: 目前主流的cpu处理 器都采用了 ...

  7. 从CPU架构--x86架构和arm架构处理器--功耗

    目录: 1.两种cpu架构:冯洛伊曼和哈佛 2.x86架构和arm架构分析 3.x86架构和arm架构功耗探究 一.两种cpu架构: 目前主流的cpu 处理器都采用了冯洛伊曼架构或者哈佛架构,那么这和 ...

  8. 计算机体系结构讲解,计算机体系结构 | x86 架构的讲解

    只有了解底层硬件的工作原理,才能理解操作系统的工作模式. 1. 8086 架构和操作系统相关的部分 虽然 8086 处理器已经很老了,但是现在操作系统很多特性都和它有关,并且一直保持兼容.如下图所示, ...

  9. 传说中的ARM架构与X86架构

    目录 1.指令集 1.1 CISC 1.2 RISC 1.3 CISC优缺点 1.4 RISC优缺点 2.ARM架构与X86架构 1.指令集 指令集可分为CISC(复杂指令集)与RISC(精简指令集) ...

  10. X86架构与Arm架构区别

    X86架构与Arm架构区别 X86架构和ARM架构是主流的两种CPU架构,X86架构的CPU是PC服务器行业的老大,ARM架构的CPU则是移动端的老大.X86架构和arm架构实际上就是CISC与RIS ...

最新文章

  1. [原创]Gerrit中文乱码问题解决方案分享
  2. 基于长短读长和参考基因组的组装错误检测算法的研究
  3. 研究院正式启动“智源学者计划”,公布候选人名单,并发布首个联合实验室...
  4. Linux下Vi/Vim的使用方法
  5. python3 arp局域网ip
  6. Ardino基础教程 16_一位数码管
  7. 【UML】如何记忆UML类图的画法
  8. 三年经验java工资,含爱奇艺,小米,腾讯,阿里
  9. 家用电脑配置_游戏搬砖必看教程,游戏工作室电脑如何配置
  10. 教程视图Android教程(十三)-- Activity间的切换
  11. 安装nginx之前的组件
  12. 亏损208亿,滴滴橙心优选裁员关停!曾融资12亿,最高估值320亿
  13. 营业执照、组织机构代码、统一社会信用代码
  14. C语言printf格式化输出
  15. 红外遥控切歌(好运来/天空之城)、红外模块的应用
  16. 计算机病毒的常用方法,常用计算机检测病毒的方法
  17. 风险偏好提振,非美延续反弹
  18. 2021 长安杯 Re
  19. 国庆弯道超车正当时,推荐一个免费的刷题网站。。。Python小伙伴可以看过来了
  20. 医学统计学中RR、OR和HR三个关于比值的概念

热门文章

  1. 技术人生:立志、勤学、改过、责善
  2. 三种方法打印 main函数的返回地址的值(old EIP)(用途,你懂得!)
  3. tomcat 在linux下的关闭问题
  4. VS11中添加PagedList引用
  5. Extjs下拉多选框
  6. MapReduce入门(二)合并小文件
  7. datatable 参数详细说明
  8. [转]ASP.NET MVC IOC 之AutoFac攻略
  9. asp.net中获取全文图片地址的方法
  10. 很好的开源UI框架Chico UI