本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接,严禁用于任何商业用途。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net
最初并不是要写boot,而是要写操作系统的。
2006年还在上学时,买了一本书--《自己写操作系统》,感觉是找到一扇进入神秘的操作系统的大门。当时鼓足干劲研究了一周,结果发现自己差的太多了,每一步都是似懂非懂。如果遇到问题,只要作者没有写到解决办法的,都会让我不知道怎么办。最后,不得不放弃了。
后来参加了工作,是与嵌入式操作系统有关的,这几年也积攒了不少的嵌入式经验,不过由于平台式vxworks,对linux还是很少接触。
一年前开始想学嵌入式linux,还特意买了块arm开发板,当时嫌调试开发板搭建环境麻烦,还特意做了个比较特别的环境。平时使用的都是笔记本,上网是无线路由器。为了不给笔记本连接太多线,使用已经不怎么用的台式机连接单板的网口与串口。然后再给台式机配一个无线网卡来连接无线路由器。自己做了一个远程串口软件,该软件的server安装在在台式机上用于控制开发板的串口,client则安装在笔记本上,通过网口登录到台式机的server上。这样,就可以摆脱环境的限制了,就像调试虚拟机一样调试开发板。
上面的环境已经挺惬意了,可惜好景不长,才几个月时间,开发板就坏掉了。跑去买板子的店去修,结果这叫一崩溃,那个店拆迁了。。。。。
痛定思痛,准备彻底放弃这些麻烦的环境,没有开发板还学不成嵌入式开发了不成。
经过一周的琢磨,终于想到了一个解决之道----vmware虚拟机。这不就是一个现成的环境吗,还不用怕坏。于是又想起了当年的未竟之业。翻出当年的《自己写操作系统》开翻看了一下,竟然发现很多当年看不懂的东西,经过几年的学习,现在已经基本没问题了,感谢公司对我的历练,呵呵。
刚照着《自己写操作系统》做时,想的是做一个自己的操作系统,可是等到完成了键盘控制程序与console程序后,忽然发现这不就是个boot程序吗。一开始不用vmware学习linux是因为我的目的是学习嵌入式linux,需要不停的下载与安装内核,单纯的vmware无法满足需求。但有了这个boot就不一样了,它可以完成内核的下载与安装。
随之而来的一个现实问题是如何下载内核,办法不外乎三种:软盘、光盘与网口。网口驱动还没学会,以后完成网口驱动的学习后会考虑支持这种方式。光盘是一开始的首选,因为可以使用虚拟光盘。但在网上寻找了很久,都没有找到相关驱动。无奈之下,只剩下了唯一的选择,软盘。于是就有了后来的那篇《保护模式下软盘驱动程序的实现》。
到今天为止,已经完成了软盘的驱动程序、linux内核映像的编译与下载。剩下的就比较简单了,主要是完成linux内核启动所需要的设置,但从技术上来说,启动linux已经不存在难度了。用句术语说,关键技术已经攻克了。
本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接,严禁用于任何商业用途。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net
阅读(3390) | 评论(1) | 转发(1) |