⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preparing-goal_1.htm

📁 编写自己的操作系统
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0059)http://www.huihoo.com/gnu_linux/own_os/preparing-goal_1.htm -->
<HTML><HEAD><TITLE></TITLE><!-- saved from url=(0076)http://pagoda-ooos.51.net/os_book/preparing-whats_your_goal_and_plan_0_1.htm -->
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><BASEFONT face="times new roman backslanted" size=2><FONT 
face="times new roman" size=4>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
lang=EN-US><FONT face="Times New Roman" size=6><SPAN 
style="mso-tab-count: 1"><STRONG>0.1 What's Your Goal &amp; 
Plan?</STRONG></SPAN></FONT></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
lang=EN-US><FONT face="Times New Roman" size=6><SPAN 
style="mso-tab-count: 1"><STRONG></STRONG></SPAN></FONT></SPAN><SPAN 
lang=EN-US><FONT face="Times New Roman" size=5><SPAN 
style="mso-tab-count: 1"><FONT 
size=3></FONT></SPAN></FONT></SPAN></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><SPAN 
lang=EN-US><FONT face="Times New Roman" size=5><SPAN 
style="mso-tab-count: 1"><FONT size=3>[</FONT><A 
href="index.htm" 
tppabs="http://pagoda-ooos.51.net/os_book/index.htm"><FONT 
size=3>Home</FONT></A><FONT size=3>]&nbsp; [</FONT><A 
href="preparing.htm" 
tppabs="http://pagoda-ooos.51.net/os_book/preparing.htm"><FONT 
size=3>Top</FONT></A><FONT size=3>]&nbsp;&nbsp;</FONT><FONT size=3> [</FONT><A 
href="preparing-tools_2.htm" 
tppabs="http://pagoda-ooos.51.net/os_book/prepare/preparing-tools_2.htm"><FONT 
size=3>Next</FONT></A><FONT size=3>]</FONT></P>
<P><STRONG>
<P>
<HR width="100%" SIZE=2>

<P></P></STRONG></SPAN></FONT></SPAN>
<P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; tab-stops: list 21.0pt; mso-list: l5 level1 lfo3"><STRONG><FONT 
face="Times New Roman TUR" size=5>0.1.1 
Overview</FONT></STRONG></SPAN>&nbsp;</FONT></BASEFONT></P>
<P><FONT size=3><BASEFONT face="times new roman backslanted" size=2><FONT 
size=3>当你雄心勃勃的准备开始做一个<FONT 
face="Times New Roman TUR">OS</FONT>之前,你是否十分清楚你将面临着什么?——你做<FONT 
face="Times New Roman TUR">OS</FONT>的目的是什么?你要做一个什么样的<FONT 
face="Times New Roman TUR">OS</FONT>?你打算使用什么开发工具和开发环境?你准备使用多长时间来做这件事情?等等等等。</FONT></BASEFONT></FONT></P>
<P><FONT size=3><BASEFONT face="times new roman backslanted" size=2><FONT 
size=3>两年前,由于我在<FONT 
face="Times New Roman TUR">Minix</FONT>邮件讨论组比较活跃,一个朋友(当时我们完全陌生)给我发来一封<FONT 
face="Times New Roman TUR">Email</FONT>,问我是否有兴趣和他一块儿做一个面向对象的<FONT 
face="Times New Roman TUR">OS</FONT>,我当时给他回了一封邮件,邮件中问了他几个问题,邮件原文如下:</FONT></BASEFONT></FONT></P><FONT 
size=3><BASEFONT face="times new roman backslanted" size=2>
<DIV><FONT face=楷体_GB2312 size=3>你好!</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
我已经收到了你的关于面向对象的操作系统设计的想法,由于我对这方面的资料了解甚少,所以我无法马上给你任何有关于它的任何建议,不过我觉得这个想法确实是一个比较不错的想法。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
关于这项工作的意义和价值你已经论述的很清楚,但在做它之前,你是否考虑过以下几个问题:</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
1)你是否对面向对象的操作系统的几个特性有了充分的理解和认识,并且对如何实现它有了一个比较成熟的想法(关于面向对象操作系统的几个特性的实现方法)?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
2)你最多有多长的时间可以去做这个工作,同时这个工作需要的最短时间有多少?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 3)有多少人可以参与这个工作?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
4)是否有一定要做出来的决心和精力?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>这几点问题是关于这个工作成败的关键。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
我觉得这件事情本身是富有趣味性和挑战性的,如果你有关于这方面的电子版的资料,Mail 给我一份,我需要了解一些技术细节。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 
关于下载的问题,很不幸的就是我们公司的代理限制的更严,仅能访问有限的一些站点,并且速度奇慢。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3>&nbsp;&nbsp;&nbsp; 另外,关于C++编译器的问题,我认为如果你有Minix 
a.out 的文件格式,另外由于gc++编译器的源代码是开放的,我们可以将其修改为Minix下的C++编译器,有关问题我们可以请教 Al Woodhull 
及其他人员。当然如果有其他现成的编译器就更好了,可以Mail给 Al Woodhull问一下。</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3>他很快回了信,对我的问题一一作了回答:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3><BR>&gt;1)你是否对面向对象的操作系统的几个特性有了充分的理解和认识,并且对如何实现它有了一个比较成熟的想法(关于面向对象操作系统的几个特性的实现方法)?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3>事实上,一开始我们可以不要过多的考虑那几个特性,因为那是当我们有足够的实力,时间和经验时,才可以去考虑的事情。我现在的目的其实很简单,说白了就是希望将现有的系统全部用c++代码来代替掉,其实这已经意味着有很多工作要做了。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3>&gt;2)你最多有多长的时间可以去做这个工作,同时这个工作需要的最短时间有多少?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3>满打满算,我最多有1.5年来做这项工作,直到毕业(当然毕业以后也可以干)。<BR>这个工作需要的最短时间,我不敢预测,别见笑,确实不敢预测,我的想法是在毕业时,能拿出一些东西给别人看,就算没被干。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 size=3>&gt;3)有多少人可以参与这个工作?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3>你想在当前的中国,有几个人愿意跟你做操作系统,要不中国IT业也不致于这样衰。目前,前前后后张罗的人就本人一人,当然还可能争取过来几个,不过这要看运气了。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 size=3>&gt;4)是否有一定要做出来的决心和精力?</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3>首先精力是不成问题的,我就是专门做这个的。如果事情进展地顺利,我指的是如果编程方面没有了问题,同时能拉过几个人来,我就干定了,大不了不要这个学位了。<BR>&nbsp;<BR>&gt;我觉得这件事情本身是富有趣味性和挑战性的,如果你有关于这方面的电子版的资料,Mail 
给我一份,我需要了解一些技术细节。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 
size=3>说真的,我也没有这方面的电子版的资料,我的一些资料全是网上查找的。但由于现在忙着解决如何编程开发的问题,所以关于面向对象的操作系统的一些理论上的东西,我也没有多少了解(有关这个问题,我们可以专门找时间来切磋)。我个人觉得其实不需要太多的理论,只要能解决掉C++中关于操作系统相关性的部分(例如生成一个对象的new操作符,必须自己做,不能用编程系统提供的,因为这是系统相关的)。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 size=3>&gt;另外,关于C++编译器的问题,我认为如果你有Minix a.out 
的文件格式,另外由于gc++编译器的源代码是开放的,我们可以将其修改为Minix下的C++编译器,有关问题&gt;我们可以请教 Al Woodhull 
及其他人员。当然如果有其他现成的编译器就更好了,可以Mail给 Al Woodhull问一下。</FONT></DIV>
<DIV><FONT face=楷体_GB2312 size=3></FONT>&nbsp;</DIV>
<DIV><FONT face=楷体_GB2312 size=3>Minix 
a.out的文件格式不成问题,代码中有。但关于修改gcc为Minix下的C++编译器的事,我不敢瞎说,因为不怕你笑话,我是学数学出生的,没学过编译,对此我是门外汗(看了这句话,你不会不理我了吧!)。事实上,Minix2.0因为不支持虚拟内存,而C++编译器简直就是一个吃内存的大怪物,所以将gcc移植到Minix2.0上基本上是可以判死刑的---没戏!我在comp.os.minix新闻组上不止一次看到过类似的说法,好象Al 
Woodhull 大叔也这么说。现在你应该明白了为什么minix-vmd上可以移植gcc了吧,因为它支持虚拟内存。但我给Al 
Woodhull发过一个email,问他在minix-vmd上生成的可执行文件可不可以直接在minix2.0上运行,如果不行,有没有工具进行这方面的转化呢?结果他说,他也不太清楚,反正没回答到点子上,不过他说他把我的email转给了kees 
j.bot,但"酷人"kees J.bot至今仍是杳无音信,大概他不愿回答我们的“愚蠢”问题吧。(另:附件中有Al 
Woodhull给我的回信)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=3>这次通信的邮件就成了我们对计划设计和开发的<FONT 
face="Times New Roman TUR">OS</FONT>的目标定位和开发计划的说明,非常的模糊。更要命的是,当时我们对于制作<FONT 
face="Times New Roman TUR">OS</FONT>的方面的知识知之甚少,我们打算使用<FONT 
face="Times New Roman TUR">C++</FONT>来开发面向对象的<FONT 
face="Times New Roman TUR">OS</FONT>,而当时我们对<FONT 
face="Times New Roman TUR">C++</FONT>根本就不熟悉。但当时我们对于<FONT 
face="Times New Roman TUR">OS</FONT>都满怀着极大的热情,于是没有考虑更多的问题,就开始上路了。</FONT></DIV>
<DIV><FONT size=3></FONT>&nbsp;</DIV>
<DIV><FONT size=3>这中间我们还有幸结识了几位比我们两个在<FONT 
face="Times New Roman TUR">OS</FONT>方面有经验的多的国外的朋友,他们也加入了我们。我们建立了自己的<FONT 
face="Times New Roman TUR">Mailing List</FONT>,那段时间我们<FONT 
face="Times New Roman TUR">5</FONT>个人进行了大量的讨论,也尝试着开始做一些设计,并开始写相关代码。但由于最初所定的目标很模糊,我们花了更多的时间来争论——究竟是做成微内核的,还是做成整体内核的,是使用<FONT 
face="Times New Roman TUR">NASM</FONT>,还是使用<FONT 
face="Times New Roman TUR">AS...</FONT>等等类似的问题——逐渐有人开始对此感到厌倦,开始很少参与讨论,其实也就等于退出了小组,毕竟大家还有自己的工作。<FONT 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -