实现操作系统所需的基本工具
来源:互联网 发布:金融网络销售聊天案例 编辑:程序博客网 时间:2024/06/10 05:56
于渊的《Orange'S 一个操作系统的实现》确实是一本好书,条理很清晰,一些细节也有详细的涉及,不过毕竟作者对于最初学习的过程已经有所淡忘,对于我这样的菜鸟会遇到的各种问题难以完全涉及,所以这里给出自己学习过程中的“历程”,供各位同好分享。
首先就是需要准备的各种工具了,别小看准备工具这个简单的事情,还是会有不少的问题的:
在此之前,先说一句,本人对于LINUX完全是刚入门的菜鸟,所以可能不能做到完全在LINUX平台下开发,但是本着学习和习惯LINUX的目的,很多工具我都是同时找到WINDOWS平台和LINUX平台的版本,练习使用。
声明:本文中绝大多数都是免费软件,万一有copy right的软件,那该是谁的版权还是谁的版权。
1、NASM编译器
在于渊的书中,全部使用的是NASM作为汇编部分的编译器,NASM的语法与学校学的MASM有一定的区别,这些在书中都有所涉及了。
NASM的主页是http://www.nasm.us/,在DOWNLOAD那里可以免费下载到WINDOWS平台和LINUX平台下的版本。
WINDOWS平台只需要解压就可以,为了之后使用方便,要将解压的文件夹路径添加到环境变量的PATH中。
LINUX平台下,解压TAR.GZ文件,在解压出的文件夹中依次执行
./configure
sudo make
sudo make install
当然,这些都是在“终端”下面执行的了。我使用的LINUX是Ubuntu 9.04。
2、一个顺手的汇编编辑器
虽然说用VC++作为编辑器也不错,不过我推荐使用一个叫做NotePad++的软件,当然我承认自己是对VC++有心理阴影...
NotePad++的主页是http://notepad-plus.sourceforge.net/tw/site.htm
以上的主页是繁体中文的,不过下载安装包的话,会自动侦测出简体中文的,这个工具仅是WINDOWS平台的,我感觉它对于汇编代码的支持很好看。
在NotePad++中可以方便的设置编译工具和参数,举例来说,对于书中第一个例子boot.asm的编译可以在软件的“运行”中(快捷键F5)如下设置:
cmd /k nasm $(FULL_CURRENT_PATH) -o $(CURRENT_DIRECTORY)/$(NAME_PART).bin
具体的大家可以到网上去找,很简单的。
3、虚拟机软件之一
Connectix Virtual PC 5.2,这个版本是可以支持DOS下与宿主机文件夹共享的,Virtual PC被微软收编之后再没有这个功能的了。当然,要在安装了DOS之后安装DOS附加模块才可以的。这个虚拟机软件比较简单易用,对于我们的学习来说有两个用途:
首先是安装DOS,在这个DOS下可以访问宿主机的文件,主要可以用来将文件写入到软盘映像中,很是方便。
第二个用途就是测试我们所写的操作系统运行情况,我感觉比较清爽。
4、虚拟机软件之二
Bochs,这个是于渊在书中推荐的,它的主页http://bochs.sourceforge.net/
比较郁闷的是我在那个主页中的Download Current链接中怎么也找不到下载,实际上在See All Release那里就可以找到下载了,同时有WINDOWS的版本和LINUX的版本。
WINDOWS的版本还是简单一些,安装就行,注意安装完后的那个快捷方式指向的是不带调试的Bochs,想用调试功能的话用文件夹下的bochsdbg.exe就好,另外它还有附带制作软盘.IMG镜像的小工具的说。
LINUX下安装的过程还是比较曲折的,于渊的书中第10页有叙述,简单来说,按照以下的顺序在终端输入:
./configure --enable-debugger --enable-disasm
sudo make
sudo make install
但是当我在Ubuntu 9.04中这样做的时候,第一步就出了问题,具体的过程就不说了,明天我再补上具体的问题和解决方法。
这个Bochs主要是可以进行调试,另外,在Bochs的主页上提供了常见操作系统的镜像,我们主要是用到了FreeDos,在Bochs主页上有下载。
5、十六进制查看器
我使用的是一个叫做WinHex的小工具,比较好用。网上一搜就有啦。
6、WINDOWS下执行LINUX命令的工具
我的中古神舟笔记本跑虚拟机LINUX实在是比较卡,又不能老是重启机子来切换操作系统,所以我推荐这样的一个工具,叫做Cygwin,可以在WINDOWS平台下执行LINUX的指令,也有GCC之类的东西,于渊书中的dd、xxd等命令都可以在它下面执行,很方便。中文的网站是www.cygwin.cn,上面有详细的安装和使用指南。
今天就先写到这里吧,随着学习的深入,可能会继续添加所用到的其他工具。
更新时间:2009年7月25日21:52:03
- 实现操作系统所需的基本工具
- MyApp所需的基本
- 服务端开发,所需的工具
- ARM9开发之实现多任务操作系统的基本技术
- 重装系统所需工具
- 操作系统的基本特性
- 操作系统的基本组成部分
- 操作系统的基本类型
- 操作系统的基本概述
- 操作系统的基本特性
- 操作系统-五大类别、基本组件以及所提供服务
- 言简意赅介绍:数字IC设计基本流程和所使用的工具
- ActionScript 3 抽象类和抽象方法实现所需的工具类——Mims Wright
- 建模所使用的工具
- 安装struts2所需lib的基本配置
- .net程序员所需掌握的sql,基本技巧(1)
- .net程序员所需掌握的sql,基本技巧(2)
- Spring + hibernate + strust 所需的基本jar包
- 君生我未生,我生君已老
- Windows 7 RTM Build 7600.16385 x86/x64 英文版下载
- 我常用的FireFox插件
- Oracle触发器详细介绍
- 内容管理系统(CMS)的设计和选型
- 实现操作系统所需的基本工具
- 在使用FreeTextBox.dll等这些插件时,遇见request响应出现JavaScript与html字符串发生危险性
- 家用计算机安全设置宝典
- 摘抄:关于亚健康
- (转)C++标准库 之 iostream库的学习笔记(二)fstream库以及ofstream类的使用
- 梦红楼
- dbm数据库源代码分析(4):头文件部分(续)
- 最是那一低头的温柔
- 人生=欲望?