内容简介:Foxdisk01-缘起
“没有任何一个题目是彻底完成了的。总还会有些是哪个可做;在经过充分的研究和洞察以后,我们可以将任何解题方法加以改进;而且无论如何,我们总可以深化我们对答案的理解。”
–《怎样解题:数学思维的新方法》
用一段话来总结我自己的这个小项目,我以为上面的这段话很精准。从2006年1.00版开始,到2008年的冬天完成3.01版,直到现在,我也不觉得这个项目完成了。只是因为各种原因,没有动力再去更新它了,曾经写在计划中的4.0版,列出了许多我很有兴趣的功能,不大可能再去实现了。
回到最初想写这个产品的目的,主要有几个:
1) 一个硬盘安装多个操作系统,并且各操作系统看不到其他操作系统的分区;
2) 图形界面选择系统进入;
3) 提供磁盘坏道检测;
4) 提供分区功能;
5) 未来可以配合硬件实现系统间的物理隔离,即软件层面无法去定位其他操作系统的磁盘扇区;(随着Sata的速度越来越快,这个目标在商业产品上很难实现了)。
其实说来说去,我就是需要这么一个多操作系统引导的软件,帮助我管理因需要安装的各种操作系统,相互之间互不干扰,相当于一个界面版的spfdisk+grub。
其实Grub或者spfdisk之类的软件已经实现了类似的功能,没有必要再自己造轮子了。只是这些软件的界面我实在是看不下去,另外我也需要一个项目把我底层开发的所有知识串起来,实现一个小小操作系统,以备后用。
就这样,我下定决心来进行这个工作了。
Foxdisk 1.0是完全用汇编来实现的,安装在MBR之后的62个扇区之内,也就是说编译后的代码在在31K以内,实际为25.7K。代码文件加起来在174K(包含注释),不算大。这款软件只支持两个操作系统,而且只支持Windows,操作极其简单。也许因为如此,非常稳定,有几个同事用了很长时间。
Foxdisk2.0在上一版的基础上,为了便于阅读,大量采用了宏汇编的方式,导致生成文件很大,不得不裁剪一些想添加的功能。比如汉字显示、磁盘管理等。这款软件界面比1.0要漂亮些,我用汇编实现了透视渐变,不过代码量原因,实用性不大。在实现过程中,开发了几个 工具 程序,包括对bmp、pcx的结构分析和数据提取,汉字字模的自动提取,还是很有用的。我现在做一些嵌入式开发时,还会用到这些小工具。
Foxdisk3.0开发前,我分析了需求,终于还是决定跳出31K的限制,把软件安装到磁盘末端,这样代码量就不是问题了。另外,为了便于未来阅读开发,决定采用 C语言 编写,少数功能模块用汇编实现。最终实现了目前的版本,代码结构图如下:
图1 程序代码结构
在后续的博客中,我将会以上图为线索,一点点介绍这款占据了我生命中4个月业余时间的软件。主要包括:如何安装、启动原理、中断调度、硬盘模块、分区管理、图形模块、汉字和图片、小工具、如何编译和安装、调试。
这是为Foxdisk3.01.02设计的启动图标,我很喜欢。
图2 ifox.bmp:foxdisk的缺省启动界面
以前的截图很难找到,所以拍了一张实际的运行图,效果如下:
图3 实际运行图
很有意思吧?
—知更鸟的小屋
1 total views, 1 views today
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
八年级数学(华东师大版)-解题升级-解题快速反应一本通(新课标)
孙丽敏等编 / 吉林教育出版社 / 2004-6 / 10.0
本书将与知识点、重点、难点和考点有关的典型题做全析全解,是具有解题题典性质的助学读物。但本书又优于解题题典,不仅展示解题过程,更详细地提供了解题思考过程和切入点的选择方法,教方法导引思路的功能更强。 学生要提高解题能力,必须具备两个条件:一是打好基础,二是能够运动所学知识分析问题和解决问题。本书用例题解析解说知识点、重点、难点和考点,同时提供解题思考过程,在打基础中激活能力,在解题实......一起来看看 《八年级数学(华东师大版)-解题升级-解题快速反应一本通(新课标)》 这本书的介绍吧!