《Orange'S:一个操作系统的实现》学习笔记

431 阅读3分钟

简述

《Orange'S:一个操作系统的实现》,2009年的书,目前已经绝版。 纸质书,可以在孔夫子这类二手书网站买到。电子版,也有,自行搜索。随书光盘,本书的作者已经将相关代码放置到了Github上,项目地址

开发环境

主要是在Mac OS上运行的相关源码。

相关软件,主要使用Brew来安装:

  • bochs,运行操作系统的虚拟机
  • nasm,NASM汇编器
  • i386-elf-binutils、i386-elf-gcc,编译C相关工具链,因为书中代码是32位的,这是一个专门的版本。

编辑器:vscode,感觉除了Java和iOS相关,其他的都是用它了。

参考书籍

阅读《Orange'S:一个操作系统的实现》需要掌握一些知识背景,主要包括汇编语言(书中使用的NASM)、C语言、PC相关、x86处理器相关。大部分书籍可以在某瓣上找到,我也链接了书的地址。

《汇编语言程序设计》,关于NASM汇编的书籍很少,这是一本,不过已经绝版,而且也无法买到二手书,网上流传扫描版,这本书的随书光盘内容没有找到。

《汇编语言·第四版》,王爽老师的书籍,虽然讲的是MASM汇编,但二者差别不大,这本书真是本神书,认真看完此书,算是可以上手《Orange'S:一个操作系统的实现》这本书了,不过此书讲的是16位编程,而32位的保护模式相关则需要参考其他。

《IBM PC汇编语言程序设计》,此书是对王爽老师那本很好的一个补充。

《保护方式下的80386及其编程》,这是一本出版于93年的书籍,实际上是《Programming the 80386》的翻译版,这书目前在二手书网站可以买到,当年林纳斯写Linux的时候,也参考的《Programming the 80386》,虽然也可以看Intel的官方文档,考虑到个人英文比较差,我还是选择的此书,我入手了一个二手书。保护模式几乎贯穿了《Orange'S:一个操作系统的实现》此书,我在学习的过程中反复的拿过来看阅读。

《C高级实用程序设计》,96年的一本老书,这本书也是《Orange'S:一个操作系统的实现》一书结尾提供参考书目中的一本,我买了本二手的。这本书对我而言主要是为了了解C和汇编语言混合编程的相关。另外这本书里面的部分主题是我喜欢,比如绘图、汉字的显示技术。

总结

此书是一本实践性很强的书籍,书本更多的是一种对随书源码的注解,前后关联性很强,所以最好按部就班的读。

可以很好的理解操作系统,日常多半是在操作系统提供的接口下编程,理解底层的实现非常有意思。

可以使用汇编语言,平时大部分情况都是使用Java、JS、Swift这类高级语言。

可以使用C语言,虽然开发中也会偶尔涉及C相关的东西,但是开发操作系统中C的使用,那是另一回事。

拷贝和粘贴也许不会出错,但是也并不会让你有新的理解。虽然有源码,但我还是每学一个章节的时候,新建一个空的工程,手动敲代码,确实很容易敲错,出错了反而是一种好事,每次调试的过程中,反而重新认知了某些原来以为懂的东西。