当前位置:Linux教程 - Linux - 关于操作系统的理论基础

关于操作系统的理论基础

操作系统的理论牵涉的几个方面,每一方面都很深奥.我大致先说说我个人在大方向上的看法:

1.作为一个现代的OS应该是基于微内核结构的,微内核机构把OS最基本的功能放入内核中,这使内核的代码简洁,受保护的内核将使OS更稳定,,另外将一些OS功能放在内核之外,使得定制OS成为可能,可以根据需要组合不同的功能模块,比如:对一个客户终端来说,文件系统应该在服务器端,它本身不需要文件系统,对一些固定功能的终端来说,甚至图形界面都是多余的.

2.OS应是基于客户端的,我们不是开发一个高性能''并行的服务器OS,有LINUX就够了.我们的OS是灵巧的,小的.和WINDOWS相反,我们的OS启动迅速,身躯小巧,运行稳定,安全.

3.OS是多层结构的客户端,目前PC上的许多功能应该移到应用服务器

3。以某种操作系统为基础,做一些试验,比如把MINIX的文件系统去掉,把它作为客户OS挂在LINUX端。

见解一:

我认为没有那一个操作系统能满足所有用户的要求,大企业用户,小企业 用户,家庭用户的要求各不相同,将来不可能只存在一种操作系统,无论是WINDOWS,还是UNIX,LINUX都无法一统天下.那么目前缺少那一种OS呢?我个人认为随着计算机产业的发展,PC变得越来越强大,以至于常常被作为服务器来使用,而作为客户端使用的机器是用不着这么强大的,实际上PC复杂的功能,反而使许多用户无所适从.WINDOWS就是一个典型的例子,在它作为一个业务终端时,由于它庞大的身躯,启动缓慢,管理复杂,对硬件要求高等等.注定了它不适合作为一个业务终端,有意思的是,它却是用的最广的业务终端OS,这只能说明能替代它的OS还没有出现,SUN的JAVA OS,CITRIX的WINDOWS终端,以及NC都是一种可能,但离成熟还很远.目前,是我们开发这种OS的好机会。尽管我们中国的技术储备还不够。但只要发扬我们中国人的钻研精神,我们是有机会的。我建议开发这样一个OS,它有如下特征:

1。建立在x86芯片上。

2。内核简洁,短小,是rtos.

3.有与众不同的图形界面系统,耗用的系统资源少。

4。具有良好的可伸缩性,既可以作为嵌入式OS也可以作为网络终端OS。

5。在SERVER端有丰富的程序,可以和LINUX,UNIX组成多层体系系统,应用逻辑在应用服务器上运行,本机只完成业务程序的显示和一些简单的逻辑。

见解二:

 我个人认为开发一个新的OS有几个好处:

1。作为一个中国的电脑爱好者,自己开发的操作系统显然从头到尾都是支持中文的,如果真的成功的话,那么对广大的中国人来说那就是一个大福音了。这样的话,向其他多字节内码语言的转换也就比较容易了。

2。从Linux操作系统本身而言,应该说他并不是一个以技术领先的操作系统,它的成功完全是一种新的软件开发模式的胜利。如果自己从头写OS的话,我认为可以摆脱这种低技术成分的束缚,完全去实现一种崭新的,支持新技术的操作系统。但是,要写一个完整的操作系统显然不是那么容易的:

Linux从一开始显然不是像现在这样复杂的,但是毕竟Linus使它跑起来了,这就为后续的逐渐完善与发展打下了基础。这一步显然很重要,在目前的国内,我还没有听说有这样的操作系统。
如果说有一小部分人首先写了一个能跑的操作系统,那么必须在一开始就考虑一些用于实现新的OS理论的安排。不然的话,按照Linux 那种开发模式进行下去,充其量成为“Linux第二“,这显然就没有意思了。

如果摆脱了Linux,也就失去了Linux的软件框架,在这种情况下,所有软件工程方面的问题就需要更多的考虑了。不然,一个稳定的OS 是不可能产生的。
Linux在目前的小小成功具有更多其他的因素。开发一个完全崭新的操作系统不能保证它一定能够获得支持,而那些完全依靠个人兴趣编写程序的Programmer如果不能得到一定的肯定的话,我想有很多人是会退出的。Allen wing 的见解
在此说几句, 首先照目前的状况看,似乎开发小组尚未达到正式启动项目的技术储备要求,既然如此我建议先把工作重点放在充实开发小组实力上.

据我所知国内能参与OS开发过程的人还是不少的,但由于业界的学术氛围和市场导向以及相关资料缺乏问题因而大多不够全面.拉上一批高手立马出活儿恐怕不太容易.同时这样也不利于培养中国自己的Free OS群体.所以我想本站是否应该先以搜集整理相关资料,培养骨干为主,通过我们自己的努力形成持续攻关能力,而后导入正式项目,才能保证水到渠成不致虎头蛇尾.
另外不知站长注意到没有,一个成功的OS设计并非只要别人有的我都有就大功告成了,而是一定要有自己的特色-即针对某些方面的优化.尤其是在当今多种通用已经瓜分了整个业界的状况下再力图一次性开发一个大而全的新OS恐怕就不是一个襁褓中的民间技术团体的最佳选择了,因为潜在的用户与期望的业界关注都不甚乐观.因此我的建议是先专后全,即:

1.先将CODING人员分为两组,一组继续实验系统的开发,主要探索INTEL处理器的指令系统,保护模式环境建立,以及编译代码优化等(不是一般的运用就可以了,若有谁认为他已经吃透了我倒愿意出题考考他);另一组人精读LINUX及BSD源码,将其中的作业调度和内存管理等核心部件的实现搞熟(建议将结果用完全结构化伪代码归档,以利组内发布).

2.在此基础上可以尝试开发简化版的类linux或类BSD专用OS,我目前能想到的较好选择是应用网关,例如Access controller,Packagemonitor,simple firewall,以及异质主机接入和数据库接入,这样感兴趣的测试者肯定不会缺乏,命令集和人机界面可相对简单,而大量人力资源可被投入对核心算法逐个逐步的改进尝试.此时可参考单盘LINUX,QNX.
3.而后当技术储备雄厚,人才又齐全时,我们可以做一个大家伙了,这时恐怕需要不少建模高手和统计专家,他们负责根据上述专用OS项目的反馈与结论进行模型设计,基线建立及模拟应用环境,同时参考其他成熟
的OS,吸取它们的优点,针对它们的弱点,设计优化的全功能内核,这是一个认认真真的OS系统所必不可少的.
4.当核够硬的时候,包上友好,丰富的SHELL,我想这个新生儿就可以进入他的生命周期了.

上是我的一些浅见,贻笑大方了,但我想兵马未动,粮草先行这个道理还
是对的.循序渐进的策略也是实际的.谨供诸位参考.

和Allen wing 探讨(xuas)

Allen wing 的建议我基本赞同.
我想国内是很有一些高手,如果能参与本项目,则本项目大有希望,目前的情况看,参与项目的高手还是不多.我想项目的发展是要经过一个过程的,项目的初期,需要几个关键的人物努力推动,项目的成败也在于这几个人.我想对他们的要求是高的,具备一定的素质,并且有毅力承担工作.我坚信,只要我坚持下去,我是能够等到他们的.我不指望拉上一批高手立马出活儿,所以Allen wing所说的目前以搜集整理相关资料,培养骨干为主,我非常赞同,我曾经说过项目的发展是一个较长的过程.短期内,我们是不可能出成果的.虎头往往就意味着蛇尾,所以,我们还是从最基本,最简单的工作开始,一步一步的前进.
Allen wing所说的先专后全,我也很赞同,并且我还要说先简单后复杂,也是我们的原则.
Allen wing说""CODING人员分为两组,一组继续实验系统的开发,主要探索INTEL处理器的指令系统,保护模式环境建立,以及编译代码优化等(不是一般的运用就可以了,若有谁认为他已经吃透了我倒愿意出题考考他);另一组人精读LINUX及BSD源码,将其中的作业调度和内存管理等核心部件的实现搞熟(建议将结果用完全结构化伪代码归档,以利组内发布).""
关于这个我想提出我的看法,试验操作系统是用来积累经验的,只要必要我们就继续开发,精读LINUX及BSD源码的工作,已经有人在作了,我知道就是这样一个组织,我想我们完全可以和他们合作,这部分工作,他们比我们作更合适,顺便提一下,目前,我们国内的自由组合的学习团体,应该充分合作,要:三个中国人也是一条龙
简化版的linux已经有几个版本,比如monkey linux,porket linux.我发现一些网络设备,比如交换机的操作系统,就是使用的freebsd. 我想直接通过在他们上面开发软件,是个方案,但是我想我们更应该学习的是他们的设计方法,设计经验,和宝贵的指导思想.他们的经验就是我们的基础.我们怎样组织文档,作准备工作,就是下一步的工作,可惜,目前为止,还没有人愿意分担这个重要的工作,真希望实干的人早些出现.


希望和Allen wing及大家进一步交流,许多问题不是一次两次交流能解决的,我相信深入细致的交流是理想走向计划,计划走向现实的唯一途径.






表示赞同并提出问题 作者: onehacker [11/6/1999,11:37 (2023 byte)]
我很欣赏大家的想法。也愿意做出我的贡献。
我想我们大家讨论这个问题是有共同的愿望的。但我们是没有共同的目标的。

首先,我们要开发操作系统。然后就是我们的目标系统是一个什么样子。我们必须”很快“的建立一个”共同的目标“。我看到了.xuas的这句话:”注定了它不适合作为一个业务终端“。(我的话可能有些尖锐)。.xuas说”SUN的JAVA OS,CITRIX的WINDOWS终端,以及NC都是一种可能,但离成熟还很远“。我想.xuas首先是要做一个终端OS,其次要从服务器端对其进行支持。我们从LINUX的历史来看从开始它经历的4、5年才到达现在的水平。如果我们从现在开始也需要4、5年的时间。如果要做曾成一个终端OS就有一种商业味道。目标是商用终端(我觉得)。我们知道LINUX到现在还没有完全被大型企业接受。操作系统要有人用要有人做。LINUX是用的人做、做的人用。SUN也是这样。如果我们做一个终端OS谁要用谁会参与做这是一个很重要的问题。DOS属于微软做其他人用。这个模式我们不能肯定无法采用。我想我们只能采取LINUX模式。如果大家还有什么模式可以提出来讨论。

以下是我的几点考虑:

开发模式:LINUX

硬件平台:PC

操作系统特征:微内核、并行

在LINUS开始做LINUX是他并没有想要占领市场的空隙。他是要自己写一个能用的MINIX。我觉得我们 的态度也应该这样。不求很好只求能用。先做些什么(这也是论坛中大家一直的观点)。为什么要选择并行这一特征呢?我曾经看过一篇关于LINUX的报道:作者在早期是如何发现LINUX呢?是因为他有一个并行处理的项目。需要找到一个操作系统原型。他发现了LINUX。但后来没有使用LINUX。是因为当时LINUX什么都不能做,只能输入AAA打印BBB。我想这给我们一个启示:有很多人在寻找并行操作系统。有很多人在编写并行操作系统。这正是LINUX模式的基础。

还有,我们观察LINUX成功的过程。其中如果没有MINIX和GNU他是不可能成功的。MINIX是LINUX的核心基础。GNU是它外围的主要应用软件。我认为我们必须也依靠这两个事物(这里有些问题,我对操作系统不是很了解。MINIX不是微内核。)。我认为我们应该找到微内核的操作系统原型在其基础上发展。如果没有微内核系统的源代码,或资料不全。我认为我们必须放弃微内核。我们没有能力去研究原理。我们只能实现。我们应使我们的系统在GPL下。我们应移植GNU的一些软件如GCC。

操作系统与编译器是密不可分的。我们应该有自己的编译器。

我目前只想到这里。希望大家给予批评指正。 

见解之一:
我认为没有那一个操作系统能满足所有用户的要求,大企业用户,小企业 用户,家庭用户的要求各不相同,将来不可能只存在一种操作系统,无论是WINDOWS,还是UNIX,LINUX都无法一统天下.那么目前缺少那一种OS呢?我个人认为随着计算机产业的发展,PC变得越来越强大,以至于常常被作为服务器来使用,而作为客户端使用的机器是用不着这么强大的,实际上PC复杂的功能,反而使许多用户无所适从.WINDOWS就是一个典型的例子,在它作为一个业务终端时,由于它庞大的身躯,启动缓慢,管理复杂,对硬件要求高等等.注定了它不适合作为一个业务终端,有意思的是,它却是用的最广的业务终端OS,这只能说明能替代它的OS还没有出现,SUN的JAVA OS,CITRIX的WINDOWS终端,以及NC都是一种可能,但离成熟还很远.目前,是我们开发这种OS的好机会。尽管我们中国的技术储备还不够。但只要发扬我们中国人的钻研精神,我们是有机会的。我建议开发这样一个OS,它有如下特征:

1。建立在x86芯片上。

2。内核简洁,短小,是rtos.

3.有与众不同的图形界面系统,耗用的系统资源少。

4。具有良好的可伸缩性,既可以作为嵌入式OS也可以作为网络终端OS。

5。在SERVER端有丰富的程序,可以和LINUX,UNIX组成多层体系系统,应用逻辑在应用服务器上运行,本机只完成业务程序的显示和一些简单的逻辑。

见解之二:
我个人认为开发一个新的OS有几个好处:
1。作为一个中国的电脑爱好者,自己开发的操作系统显然从头到尾都是支持中文的,如果真的成功的话,那么对广大的中国人来说那就是一个大福音了。这样的话,向其他多字节内码语言的转换也就比较容易了。

2。从Linux操作系统本身而言,应该说他并不是一个以技术领先的操作系统,它的成功完全是一种新的软件开发模式的胜利。如果自己从头写OS的话,我认为可以摆脱这种低技术成分的束缚,完全去实现一种崭新的,支持新技术的操作系统。但是,要写一个完整的操作系统显然不是那么容易的:

1)Linux从一开始显然不是像现在这样复杂的,但是毕竟Linus使它跑起来了,这就为后续的逐渐完善与发展打下了基础。这一步显然很重要,在目前的国内,我还没有听说有这样的操作系统。

2)如果说有一小部分人首先写了一个能跑的操作系统,那么必须在一开始就考虑一些用于实现新的OS理论的安排。不然的话,按照Linux 那种开发模式进行下去,充其量成为“Linux第二“,这显然就没有意思了。

3)如果摆脱了Linux,也就失去了Linux的软件框架,在这种情况下,所有软件工程方面的问题就需要更多的考虑了。不然,一个稳定的OS是不可能产生的。

4)Linux在目前的小小成功具有更多其他的因素。开发一个完全崭新的操作系统不能保证它一定能够获得支持,而那些完全依靠个人兴趣编写程序的Programmer如果不能得到一定的肯定的话,我想有很多人是会退出的。

目前写一个崭新系统的想法还不成熟,我认为。

--ober

 

我的一些看法
作者:姚飞[11/6/1999,21:21 (1249 byte)]

这个话题注意了几天,这个网站也看了看,说一点个人的看法.

徐毅发起的这个活动,看上去动机似乎很吸引人,内容目的也都挺""符合时代节拍"" ,我认为就这个提议本身而言是很不错的,我个人也很感兴趣.不过,从所有目前能看到的有关这个项目的言论来看,有几个具体问题:

1.确切的动机,或者说是项目来源.不清楚,似乎是出于一时的冲动,看不出任何经过深思熟虑的痕迹.

2.具体的目标.无论是长期的,还是短期的,都不明确.简单地说""我们要开发一个OS""是远远不够的.

3.项目实现的可行性分析.因为没有目标,所以这个目前还谈不上.

4.目前已经具备的条件,包括技术条件,物质条件,理论基础,这些都是第3点中要详细研究的,目前看来只有热情.毕竟XUAS自已说对386的保护模式还搞不太清楚.

5.现有技术的分析.从网站上给出的一些文献上看,对现有的一些系统倒底是怎么回事,还没有完全弄明白.特别是Linux, GNU的开发模式,还仅仅停留于报纸上介绍的那些内容.做任何技术工作,这几点都是要首先解决的,尤其是项目发起人,更是责无旁待.我本人从事的某新型号卫星设计工作,在这些问题上就花了很大精力.单有热情是不够的,人有多大胆,地并不会也有多大产.

话可能尖刻了一些,一时难以接受.不过最好还是冷静地考虑考虑,别一下子就给自己提太高的目标,希望越大失望也就越大的.这个项目我们应该去做,但现在并不是最好的时机.

对""我的一些看法""的回答 作者:XUAS

你的话并不尖刻,而是坦率,你说这似乎是出于一时冲动,看不出深思熟虑得痕迹,

嘿嘿,的确没有深思熟虑,但也不是一时冲动,我没有打算由我来给大家安排方向等基础性的东西,那不是一个人能决定的,我一直以为愿意参与的人会很少,也许只有2,3人,即便剩我一个人,我也将坚持下去.没有想到会有这么多朋友.大家的失望和期盼,我能理解,可惜的是,没有目标和低水平的状态还会持续一段时间,直到我们改变了它.目前具备的条件,嘿嘿,同样很少,网站初创,几乎一无所有阿!

至于时机,我想总要有人去做铺路石吧.

对第五条,我已粗粗了解了不同的OS,不久我会有一个报告提交给大家.作为项目发起人,我会对工作负责的,但有些工作的确不是一个人能完成的,让我们共同努力吧! 

姚飞wrote 的 见解:

同意姚大侠的看法.我也曾提过几点意见.因为我的linux中文上贴子时还不太好用,意见是用邮件发出去的.在这里再说一下.

我觉得现在比较可行的是先着手分析一下各个比较成功的操作系统,比如gnu/linux gnu/hurd等等把其他操作系统的优缺点先弄清楚了.同时也可以提高我们的水平.毕竟我国的计算机应用水平跟USA还差很远.连GNU都花了很大力气才做出现在这个局面,我们更应该脚踏实地.

其次,兼容性也是个问题.一个光杆操作系统是没用的.所以至少应该在代码上兼容开放源代码软件.最后,我觉得是否可以从GNU的HURD开始HURD应用了比较新的技术,而且已经做出来了.我们可以以它为样本,做成从内核支持中文的.而且还能加强与GNU的联系,获得技术上的帮助.

微内核的想法很好,实现起来很有问题.微内核只包含进程管理和内存管理,还有进程通信,其他的象文件系统等都是用户空间的服务进程.微软的NT曾经号称是微内核.我买了一本<< Inside Windows NT>> (好贵),没有看完.因为从它的设计过程看,越来越多的妥协加了进去.内核简单了,可是用户空间却负责多了.Service Server的复杂的相互通信很容易导致Race Condition.我凭直觉断定,NT的性能不会好,会很不稳定.NT 4.0就把GUI驱动放进了内核,因为微软也意识到了微内核的弱点.NT还有一些其他的改动,现在已经不是微内核了,即使如果微软要这样宣传.微内核技术应用于小型设备的嵌入式操作系统则有很大的优势.因为功能相对要简单多了,service server数量会非常少,微内核的弱点就不明显.

Faith 写到::

Minix用的是微内核. Linux也不是以MINIX为核心.

所以领导MINIX的Tanenbaum教授才攻击Linux使用落后的技术呢。

lark 说:

要开发OS,应该在学校里做这些事.而且,我觉得没有理论的指导,没有自己的好的想法,是不可能开发出好的OS的.

 
目前要做的工作。
1。展开理论探讨。

2。培养中国的OS爱好者,我一向认为中国人是很有潜力的,必须承认除了国家的研究机构和一些大学外(他们的研究环境较好,要么对民间的开发没有兴趣,要么就是专著于理论),我们缺少合作者和宝贵的经验,INTERNET为我们提供了学习的机会,经过一段时间后,我们会成长起来的。