蒋涛:《Orange’S:一个操作系统的实现》属于真正Hacker的
做真正Hacker 的乐趣──自己动手去实践
本文选自《Orange'S:一个操作系统的实现 》一书 序言
2004 年我听编辑说有个年轻人写了本《自己动手写操作系统》,第一反应是不可能,恐怕是翻译稿,写这种书籍是要考作者硬功夫的,不但需要深入掌握操作系统的原理,还需要实际动手写出原型。
历史上的Linux 就是这么产生的,Linus Torvalds 当时是一名赫尔辛基大学计算机科学系的二年级学生,经常要用自己的电脑去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这成为了Linux 第一个内核的雏形。
我想中国有能力写出内核原型的程序员应该也有,但把这个题目写成一本书,感觉上不会有人愿意做这件事情,作者要花很多时间,加上主题比较硬,销售量不会太高,经济上回报有限。
但拿来文稿一看,整个编辑部大为惊艳,内容文笔俱佳,而且绝对原创,马上决定在《程序员》连载。2005 年博文视点出版的第一版也广受好评。不过有很多读者还是质疑:现在软件编程主要领域是框架和应用,还需要了解操作系统底层吗?
经过四年的磨练成长,于渊又拿出第二版的书稿《Orange’S:一个操作系统的实现》,这本书是属于真正Hacker 的。我虽然已经有多年不写代码了,但看这本书的时候,让我又重新感受到做程序员的乐趣:用代码建设属于自己的系统,让电脑听从自己的指令,对系统的每个部分都了如指掌。
黑客(hacker)实际是褒义词,维基百科的解释是喜欢用智力通过创造性方法来挑战脑力极限的人,特别是他们所感兴趣的领域,例如软件编程或电气工程。个人电脑、软件和互联网等划时代的产品都是黑客创造出来的,如苹果的Apple 电脑、微软的Basic 解释器、互联网的Mosaic 浏览器。
回答前面读者的质疑,学软件编程并不需要看这本书,想成为优秀程序员和黑客的朋友,我强烈建议你花时间来阅读这本书,并亲自动手实践。正如于渊在本书结尾中所说“我们写自己的操作系统是出于一种好奇,或者说一种求知欲。我希望这样不停地‘过把瘾’能让这种好奇不停地延续”。好奇心是动力的源泉,追究问题的本质是优秀黑客的必备素质,只有充分
掌握了系统原理,才能在技术上游刃有余,才能有真正的创新和发展。中国需要更多真正的黑客,也希望更多的程序员能享受属于黑客的创造乐趣。
蒋涛
2009 年4 月
本书购买地址:当当网 卓越网 互动网
蒋涛:《Orange’S:一个操作系统的实现》属于真正Hacker的相关推荐
- 《Orange’s 一个操作系统的实现》3.保护模式3----DOS加载.EXE过程
在<<Orange's 一个操作系统的实现>>一书中有时使用了org 0100h,为何是0100h?因为书中的例子是为了突破引导扇区512字节的限制, 而将asm文件编译为.c ...
- 《Orange’s 一个操作系统的实现》3.保护模式7-特权级转移(通过调用门转移目标段-无特权级转换)...
在上次的代码基础上,添加一个代码段作为通过调用门转移的目标段.了解一下调用的工作方法,代码分析如下: <<红色标识部分为新增代码>> ; =================== ...
- Orange‘s’ 一个操作系统的实现
突然想要随时记录一下实验过程中的各种问题,因此有了此文档: 由于是中途开始的,所以就偷懒直接跳过了vm.ubuntu32位16.04.bochs2.6.8.nasm的安装,下面开始正文内容: 2022 ...
- 《Orange’s 一个操作系统的实现》3.保护模式1----pm.inc分析
1.pm.inc定义了描述符.选择子及相关位数的取值 ; 描述符图示 ; 图示一 ; ; ------ ┏━━┳━━┓高地址 ; ┃ 7 ┃ 段 ┃ ; ┣━━┫ ...
- 《Orange’s 一个操作系统的实现》1.搭建操作系统开发环境
书中给出了两种环境:windows和linux,平台选择根据自己喜好.本人这里选择ubuntu10.04+virtualbox作为开发平台. 1.下载.安装VirtualBox http:// ...
- 《Orange’s 一个操作系统的实现》3.保护模式4----LDT(Local Descriptor Table)
还是在原有代码基础上进行修改,加入LDT的使用,代码分析如下(红色部分为新增代码): 本程序是在原有完成大内存读写测试完成后,调用局部任务显示字符L ; ======================= ...
- 《Orange's 一个操作系统的实现》学习笔记--LDT
LDT(Local Descriptor Table)它和GDT差不多,都是描述符表(Descriptor Table)区别仅仅在于全局(Global)和局部(Local)的不同.局部描述符表可以有若 ...
- Orange‘s 一个操作系统的实现--Bochs遇到的问题
1.Message: dlopen failed for module 'x': file not found 这是未安装bochs-x的缘故 解决方案: sudo apt-get install b ...
- orange's系统可以装mysql 吗?_bochs 2.4.2 ubuntu 安装运行问题《orange#39;s 一个操作系统的...
用源码安装完后会遇到的问题: <1> 运行可能碰到如下问题: Event type: PANIC Device: [ ] Message: dlopen failed for module ...
- Orange's:一个操作系统的实现 Descriptor 3宏详解
补充:关于GDT/LDT.段选择子和段描述符的解释 GDT/LDT:GDT/LDT是段描述符表,里面定义了每个段的段描述符的界限和属性,而段描述符的基址是在代码段中初始化的. ...
最新文章
- HTTP 协议的通用头域via 的意义以及作用
- C#:消息队列应用程序
- js获取及判断按键的方法
- Ribbon负载均衡策略配置
- python单目运算_Python -- 数字
- 怎样理解Linux的文件系统
- Android 为控件设置阴影
- 有问有答 | AWS使用精华问答,带您开启 AWS 上的云计算之旅!
- 操作系统hpf算法事例_操作系统中常见算法汇总
- Repository 仓储,你的归宿究竟在哪?(一)-仓储的概念
- Spring/Spring boot正确集成Quartz及解决@Autowired失效问题
- 【离散数学】欧拉图与哈密顿图的区别
- MTK LED驱动异常检测步骤
- 论算法人的语言表达能力
- Strategy模式简述
- Windows系统中的睡眠时间和关闭屏幕时间的设置
- [MySQL光速入门]020 事务
- COERCE_DOUBLE的含义
- 初探Meterpreter-emaste_r
- c++primer读书笔记