Board logo

标题: DOS的进一步发展需要内核级的开发 [打印本页]

作者: brglng     时间: 2008-10-2 19:13    标题: DOS的进一步发展需要内核级的开发

看看现在的DOS联盟,已经如此萧条,一天到晚只是讨论着一些陈旧不变的话题和一些过时的技术。特别是这个开发版块,旧帖子时不时被顶上来,新帖子却很少出现。

与此同时,FreeDOS的发展也是异常缓慢,毫无生气与活力。

不知道是什么时候看到过的一句话:一个缺少开发者支持的系统是一个没有未来的系统(大意)。

稍有DOS使用的经验者都知道,DOS可谓限制多多,使用很不方便。其根本在于16位的内核。虽然现在通过DPMI和DOS扩展器可以使用32位程序,但是像我们经常使用的各种驱动程序、中文系统等等都还是16位的TSR程序(这些程序必须是16位TSR),虽然可以通过XMS利用更多的内存来交换数据,但程序本身的活动空间仍被限制在1M的空间以内。这无疑严重阻碍了DOS的发展。

这个问题是DOS的硬伤,我认为只要不解决这个问题,DOS就不可能有更好的发展。事实上,目前的DOS除了在一些与硬件非常接近的底层工作中以及嵌入式等领域能有一些用处之外,别的地方基本毫无用处,特别是桌面领域。

我们先来看看Win9x,它是一个运行在DOS上的操作系统。当然也有人认为它只是DOS上的一个程序。这我不讨论。无论如何,我们可以看到,Win9x可以实现真正的多任务,甚至它的驱动程序也都是32位的,当然也可以让一个程序后台运行(而且这样的后台运行完全不同于TSR,是32位的多任务机制,不受1M内存限制)。这使我联想,我们应该可以在DOS上开发一个kernel,在这个kernel上写程序,这样就可以完全突破16位的限制,开发纯32位的鼠标驱动、IFS驱动、中文系统等等,彻底抛弃TSR,不再为内存限制问题烦恼。

于是这里有两条路可走:1、兼容Win32 API,就好像现在的HX Extender所做的一样,这样开发相对会得到更多的用户支持,而且有大量软件支持,但是由于Win32 API是封闭的,而且很复杂,所以开发难度比较大,很难完全兼容。2、完全独立开发。这样开发会比较容易,但是没有在它之上运行的现成的程序,所有软件都必须重新开发。至少需要重新编译。当然我们仍然可以在这个新kernel上开发用于兼容win32 API的软件(就像Linux上的wine)。

不过我们还有第三条路,就是开发纯32位内核的DOS系统。如果它可以实现对硬件的完全直接访问,并能很好地兼容现有的各种DOS程序,当然可以称得上是一个DOS系统。目前来说,若要走这条路,参与FreeDOS-32是最佳选择(FreeDOS-32已经停滞3年多了)。

以上三条路,无论选择哪一条,都需要很高水平的底层开发,即使是前两条路,事实上也跟开发一个操作系统kernel没什么区别。而具体哪条路最好最容易成功,我不好说,但是这三条路中至少有一条是正确的道路,因为只有跨向32位才会有未来。

另外,对于DOS的国际化,也需要我们中国人的参与。中文也是国际重要语言之一啊!而若突破了16位限制,我们就可以为DOS引入Unicode,让它不仅仅支持中文,而是全世界的语言。而文字的显示需要GUI方面的技术,我们可以开发类似于Linux上X Server的东西来支持图形,而若在16位环境中,开发这样的程序是几乎不可能的。

以上个人拙见,欢迎大家讨论!但若此贴渐渐下沉,我会感到悲哀,因为那预示着DOS的真正衰落——没有人再愿意为DOS做开发。

[ Last edited by brglng on 2008-10-2 at 20:14 ]
作者: ysc     时间: 2008-10-4 00:14
FreeDOS-32
作者: netwinxp     时间: 2008-10-7 16:03
与其费力地开发32位,不如直接用linux,后者在成熟度、驱动支持等方面要好多了,而且还有很多源代码可以借鉴。
作者: brglng     时间: 2008-10-9 15:38


  Quote:
Originally posted by netwinxp at 2008-10-7 04:03 PM:
与其费力地开发32位,不如直接用linux,后者在成熟度、驱动支持等方面要好多了,而且还有很多源代码可以借鉴。

这个问题我也想过。Linux当然很好,我自己也把Linux作为我的桌面系统。但是我觉得DOS之所以至今仍然存在,必有其不可替代的地方,比如它对硬件是直接无限制的访问,这在很多方面是有很大用处的。而在学习微机原理还有汇编等的时候,往往离不开DOS,它对我们研究计算机也是很有用的。而谁又知道转变为32位以后不能发现更多新的用途呢?一切只有靠事实来说话,我们没有去开发,没有用过,又怎么知道它到底好不好?

事实上我认为DOS目前的衰落更主要的不是它本身不够先进,而是由于微软的垄断、封闭和它对DOS的放弃支持。事实上Win9x已经很大程度地扩展了原有的DOS功能,假如它开放源代码,一定能有很大的发展。而微软不支持DOS,最终投向NT,而且也没有去开发32位DOS,由于其处于垄断地位,DOS就因此被抛弃了。

据我所知,unix最早也是一个16位操作系统,是在32位处理器出现以后才有了32位的unix。而这个时候微软并没有去开发32位DOS,而是投向了OS/2和NT,DOS的源代码也不公开,DOS因此而衰落了。

[ Last edited by brglng on 2008-10-9 at 15:48 ]
作者: netwinxp     时间: 2008-10-9 21:52
我想问一个问题,现在我们用DOS都用了它那些功能?
图形?基本靠直接写屏。
内存?没有DOS的话能访问更多,而且想让谁驻留就让谁驻留,一点麻烦都没有。
磁盘?现在对FAT/FAT32的访问基本不需要靠DOS了。
说句实在话想要自由度,直接用引导程序调用你的BIN程序更方便,而且保护模式与实模式的切换变得简单多了,还更不容易冲突和关键数据段重入。DOS其实主要也就INT 21H而已,而它现在几乎没用。
linux你可以让你的程序运行在KRNL里面,等于没有限制的32位甚至是64位系统,还有许多源代码可以“抄袭”,比windows的"堆积木"更有成就感。
PS:随着内存突破4G、硬盘即将达到2T以上(传统的分区表架构已经面临被GPT取代),使用64位系统的必要性越来越迫切,32位DOS就算开发出来,也马上面临淘汰的境界。

[ Last edited by netwinxp on 2008-10-9 at 22:09 ]
作者: xugaohui     时间: 2008-10-10 01:36


  Quote:
Originally posted by brglng 别的地方基本毫无用处,特别是桌面领域。

恰好桌面领域需要用dos,用这个环境升级刷新主板bios,包括服务器主板。现在也用在windows下升级bios的,但在dos下升级主板bios的更多一些,不太会用dos的也是在dos下升级主板bios。如果以后的主板无法在dos下升级bios了。那dos将真正的淘汰。
作者: brglng     时间: 2008-10-11 12:32
关于64位,我也有过考虑。很有可能在不久的未来,处理器不再支持16位,那现今的DOS就真正灭亡了。
可是,别看DOS在国内不受关注,在国外还是有相当的人(当然不可能够Linux这么多)在为DOS做开发。另外像Linux上面也有DOSBOX这种模拟软件。这就说明DOS还是有很多用处。
我始终觉得,DOS至今仍未完全消失,肯定有其不可替代的地方。就像楼上所说的升级BIOS。这只是一个例子。
况且DOS也曾是常用的桌面系统,就说明使用DOS作为桌面系统并不是不可能。
对于64位,我觉得只要开发出了32位,开发64位也不是不可能。
最后我还是想强调,你没有用过32位的DOS,怎么就能知道它到底好不好?就好像只用Win从来没有用过Linux的人也不会知道Linux比Windows先进在哪里。
作者: ecurb2006     时间: 2008-10-11 13:56
>而文字的显示需要GUI方面的技术,我们可以开发类似于Linux上X Server的东西来支持图形,而若在16位环境中,开发这样的程序是几乎不可能的。

不是不可能啦,呵呵。我们已经做出来了。
作者: tangtai     时间: 2008-10-11 14:14
可惜不会编程,只能期待,,,,
作者: xiaoyunwang     时间: 2008-10-11 15:39
ms-dos 6.22 不是有源代码吗/,微软连 Windows 的源代码都给了北京政府呢/,那位黑客把它弄出来。

[ Last edited by xiaoyunwang on 2008-10-11 at 15:41 ]
作者: netwinxp     时间: 2008-10-13 00:05


  Quote:
Originally posted by brglng at 2008-10-11 12:32:
关于64位,我也有过考虑。很有可能在不久的未来,处理器不再支持16位,那现今的DOS就真正灭亡了。
可是,别看DOS在国内不受关注,在国外还是有相 ...

目前的桌面型CPU,是AMD64(X86-64兼容它的标准),它本身就兼容64/32/16位,那个啥都不兼容的IA64就不提了。
32位DOS是不是要用保护模式?那保护模式里面运行DOS程序该用8086虚拟模式吧,很可惜的是它对I/O等特权指令有很大的限制,于是所谓的可以直接访问硬件的方便没了,另外原来实模式的BIOS中断服务,现在可没法直接使用了...等等等等都会令原来的方便全没了,那这样还应该叫DOS32吗?
其实LZ的设想绝大部分都已经在WIN9X里面有了,当然它对硬件访问也作了稍微的限制。一个功能强大且比较稳定的系统必然会导致更多的限制,比如我们用I/O级的程序基本上全由程序作主,几乎没有限制;用居于BIOS中断的程序就需要遵守BIOS中断调用的规定;用DOS连内存的安排都得由DOS来,别搞得常规内存不足运行不了,编个中断还得防止重入问题......

[ Last edited by netwinxp on 2008-10-13 at 00:06 ]
作者: brglng     时间: 2008-10-29 13:06
我顶
作者: brglng     时间: 2008-11-8 13:17
我顶
作者: zyjailww     时间: 2008-11-12 15:57
与其费力地开发32位,不如直接用linux,后者在成熟度、驱动支持等方面要好多了,而且还有很多源代码可以借鉴。
作者: lofe811     时间: 2008-11-16 22:41
论坛的确很少有帖子了,哎
作者: brglng     时间: 2008-11-20 17:02
DOS即将没落
作者: windowsvesta     时间: 2008-11-20 18:40
公元1995年WIN95推出时,大家都说DOS很快就要进入坟墓,但直到13年后的2008年今天,还是有这么多的网友在关注DOS,包括你自己!

做人可不能“吮着奶骂娘”

    DOS最基本的生命力来源于“高校”,每一位计算机专业学生都必须学习“汇编语言”,不在DOS平台下学汇编编程,还能在哪个平台上学?所以再过50年,DOS仍然不会死,我们每一位都比DOS同志要先躺进棺材里!

    所有版本的Windows都有一个叫“Command”或“cmd”程序,这不正好说明微软将DOS升级为Windows的一个子集吗?只要有Windows的存在,就肯定有DOS的存在,只不过DOS换了衣裳而已。DOS与WINDOWS是一对孪生兄弟,DOS的死亡之时,也就是微软帝国的倾覆之日!

  学好DOS,也是学好Windows的一部份!一个完全不懂DOS操作的人,不会在命令行中来一下“ping”命令,能说他精通了Windows/UNIX吗?

[ Last edited by windowsvesta on 2008-11-20 at 19:09 ]
作者: netwinxp     时间: 2008-11-29 10:31
命令行模式并不等同于DOS,unix、linux、PE、NT内核控制台均有命令行模式,如果LS的认为这也是DOS的话,那只能说概念不清!50年对于计算机来说不知有多大的翻天覆地的变化,不知LS的凭什么断定还会存在DOS呢?手机也有操作系统,LS也断定手机会有DOS乎?
作者: windowsvesta     时间: 2008-11-29 10:51    标题: 我有不同意见



  Quote:
Originally posted by netwinxp at 2008-11-29 10:31 AM:
命令行模式并不等同于DOS,unix、linux、PE、NT内核控制台均有命令行模式,如果LS的认为这也是DOS的话,那只能说概念不清!50年对于计算机来说不知有 ...

对于Windows里面的命令行模式,它98%以上命令名字、命令参数、语法都与MS-DOS相同,我们的DOS程序不加任何修改,就可在命令行模式中运行,硬说微软完全将DOS丢入拉圾堆了,难有说服力。有这么多的相似性命令行模式难道不是DOS的“直系亲属”吗?况且微软从未说过放弃DOS,只说过不再为DOS单独发行版本。

  Windows命令行模式如果不叫DOS,那叫“仿DOS”,总有资格吧?

  总强调命令行模式与DOS的差异性,为什么不看一看他们之间的相似性呢?

  当然,你是从“内核代码实现、运行环境”上考虑WIN的命令行模式与DOS是风马牛不相及的东西,我是从“操作者应用”上考虑WIN的命令行模式等同于DOS。

   我从未听说过哪一款“手机”也有命令行模式。

   如果其它的操作系统的命令行模式也有“DIR、COPY、XCOPY、FDISK、FORMAT、EDIT”,即使它不是DOS,那也是受DOS深刻恪印的命令行模式!是为了迎合熟悉DOS操作的人群而设计的该操作系统的命令行模式!

[ Last edited by windowsvesta on 2008-11-29 at 11:23 ]
作者: netwinxp     时间: 2008-12-1 10:11
DOS里面很多命令和unix相同,把DOS目录中的"\"改成"/"就和unix差不多了(internet网址就采用和unix路径差不多的格式),是不是DOS也可以称为unix?命令行的FTP里面也有很多命令也和DOS差不多,是不是FTP也可以叫DOS?
如果命令行好用的话,DOS很多程序就不需要图形界面了,windows的出现也就没有多少必要了,linux也不必煞费苦心滴搞诸如X-windows的桌面了。
从易用性的角度出发,图形界面肯定强于命令行。手机之所以老少皆会用就是因为其简单的界面,如果也搞命令行的话,那只会有少数人会用。
在讨论LZ的论题之前,建议先搞清楚LZ所提的DOS的含义。

[ Last edited by netwinxp on 2008-12-1 at 10:19 ]
作者: windowsvesta     时间: 2008-12-1 12:47
人类与大猩猩的DNA的相似性是98%,人类与鸡的DNA相似性是60%(百分比数字并非权威数字),
如果WIN的命令行模式为“人”,那么您认为的DOS就是大猩猩,UNIX冲其量只能是鸡!

可以这样说:
  DOS与WIN的命令行模式是“相似性大于差弃性”
  DOS与UNIX的命令行模式是“差异性大于相似性”

我敢打赌下面的三个情况:
   1:一个熟悉DOS操作的人,不用任何学习,就能熟悉WIN的命令行操作
   2:一个熟悉WIN命令行操作的人,大多数都熟悉DOS操作
   3:一个熟悉DOS操作的人,没有系统学习UNIX的命令,在装有UNIX的显示器和键盘面前简直就是瞎子与文盲,反之易然!


     WIN的命令模式早在WIN31、WIN95、WIN97、WIN98年代就已经出现,从应用上说,我不清楚WinXP的命令行模式与WIN95的命令行有什么区别,从微软的WINDOWS发展历程来看,命令行模式是基本没有多少变化的。

[ Last edited by windowsvesta on 2008-12-1 at 13:20 ]
作者: windowsvesta     时间: 2008-12-1 13:12
是不是有这样的事实
  1:DOS是不是在微软的手上发扬广大的?
  2:DOS的源代码是不是微软公司的程序员完善的?
  3:WIN的命令行模式是不是微软的程序员完成的?这些程序员有没有可能就是开发DOS的那批程序员?
  4:是否有可能DOS7.0的源代码与WIN的命令行模式的程序源代码是由同一批程序员完成的?
  5:该程序员有没有可能将DOS的程序源代码在改变很少的情况下就将它移值到WIN的命令行模式使用?



    大家完全没有必要老是喜欢将“DOS”与“WIN的命令行模式”作一个脱胎换骨般的“切割”,将他们之间的联系转变成一个“斯大林式的阶级斗争”!要用“存异求同”的眼光来看!

[ Last edited by windowsvesta on 2008-12-1 at 13:36 ]
作者: windowsvesta     时间: 2008-12-1 14:28


  Quote:
在讨论LZ的论题之前,建议先搞清楚LZ所提的DOS的含义。

站在“初学操作者”的角度,与“程序、内核、内部实现”无关!

对于LZ的命题,既不支持,也不反对。



    任何操作系统作了内核的重大升级,必然导致“编译器”的重大升级,可惜优秀的编译器基本上被“微软”和“BORLAND”公司所垄断。LINUX之所以不能吸引广大的程序员为它“添砖加瓦”(相对于WINDOWS而言),正是由于它没有诱人的编译器出现。

    真如LZ所愿实现了内核升级,难道DOS程序要用汇编语言写程序不成?倒不如先写一个“实模式的32位C++编译器”,写一个32位的Debug.Com程序实在一些!

[ Last edited by windowsvesta on 2008-12-1 at 19:15 ]
作者: netwinxp     时间: 2008-12-2 13:05
实模式的32位?建议LS的先搞清楚什么是实模式和保护模式。
搞命令行模式就是为了那可怜的几个有限支持的命令?或者为懂得若干DOS命令的人拉风用?如果从用户的角度出发,图形界面比命令行界面更易用的结论是毋庸置疑的,简简单单应用的话,用WINDOWS比DOS强多了。搞DOS的目的是什么?绝不是为了什么命令行,为的是更方便地访问硬件,NT内核的命令行等同于DOS吗?很可惜,很多与硬件紧密相关的DOS软件根本没办法在它下面正常运行。
讨论这些问题,并不是为了切割DOS与命令行的异同,为的是确定目的是什么?不要单看表面,舍本求末!如果仅仅是为了兼容所谓的DOS命令,把一些linux的命令改改名也可以做到八九不离十的相似。在实践上可以得出结论——图形界面远比命令行易用,如果单从用户考虑,完全没必要使用命令行模式,一个仅仅懂得几条DOS命令的人未必就比不懂得这些命令的人高明多少。
PS:linux程序员比WINDOWS程序员少,并不在于编译器,而在于操作系统的流行程度!!!

[ Last edited by netwinxp on 2008-12-2 at 13:17 ]
作者: windowsvesta     时间: 2008-12-2 19:15


  Quote:
PS:linux程序员比WINDOWS程序员少,并不在于编译器,而在于操作系统的流行程度!!!

你说得不错,但这只是现象,而不是本质。

WINDOWS的风靡一时是以WIN95的推成为标志,

LINUX的出现是在1991年,WIN95的出现是1995年,后来者反而走在前头!为什么?
  原因有以下几点
  (1)不知多少年前,微软最早有BASIC语言编译器
  (2)在DOS年代,微软有Micrsoft C for DOS语言编译器
  (3)微软借鉴MAC操作系统和拉拢了MAC的GUI开发人员
  (4)微软推出了“重量级”的Microsoft C for windows
   (5)微软推出了“重量级”的Visual C++和Visual Basic等等
  (6)WINDOWS是“中央集权式”开发,LINUX是“分散游击”式开发
  (7)其它


    微软是“编译器”的重大推出者和改革者,不遗余力地为自己的操作系统“添码加瓦”。如此多的因素加起来造就了WINDOWS登上桌面操作系统的“执政位置”,使微软成为名副其实的“执政党”,LINUX也就只能做“在野党”了,只能迎望着WINDOWS大哥的鼻孔发发牢骚而已!


  所以不要小看“编译器引出的蝴碟效应”!

  开发新的操作系统要有“军马未到,粮草先行”的策略才行!

[ Last edited by windowsvesta on 2008-12-2 at 19:39 ]
作者: netwinxp     时间: 2008-12-3 00:15
什么是本质,什么是现象,作为开发者,为那种平台开发根据的恐怕是该平台的流行程度而不是其开发工具的多寡吧?
作者: alchemist     时间: 2008-12-4 11:45


  Quote:
Originally posted by windowsvesta at 2008-11-29 10:51:


     ...  ... 等同于DOS。

   我从未听说过哪一款“手机”也有命令行模式。

   如果其它的操作系统的命令行模式也有“DIR、 ...

PSP游戏机上也有DOSBox,完整的内部命令
作者: hdst     时间: 2008-12-10 17:31
继续讨论下去,这讨论很有意思。各位有没有考虑为国产的“龙芯”开发一个类dos系统,留出一些API,做一个JAVA解释器,这样就能做一个JAVA虚拟机,跑一些现成的程序了。可以仿照linux的模式,重要的是要有丰富的帮助文挡,谁又能说不能发展下去。当然可兼容x86。linux很好,但这并不防碍我们再作一个。

[ Last edited by hdst on 2008-12-10 at 18:26 ]
作者: hdst     时间: 2008-12-10 17:39
未来的计算机大多将运行在网络上,网络是每个系统必需的组件。重做dos或者说作一个kernel,是个有意义的工作。linux虽然越来强大,但他多余的东西也越来越多,他太过庞大了,以至于每个人无法了解其运行的细节。
作者: hdst     时间: 2008-12-10 17:44
有了网络,还有了一个叫“云计算”的东东,在未来一个简单的系统,并非没有生存的条件,只不过也需要与时俱进,重新作一个内核是必要的,而且最好是64位的。
作者: windowsvesta     时间: 2008-12-10 17:50
唐僧师徒一路上靠“向老百姓化缘”才能到达西天取得真经,政党需要党员交党费才能长期运作。

   “军马未到,粮草先行”,问一问“楼上”,如何筹集资金?
作者: hdst     时间: 2008-12-10 18:14
钱——的确是个问题!!现代人怎能一瓶一钵足矣。真不知道,linus是怎么做到的。
除了业余创作,还有一个途径那就是大学生。只是现在的中国大学生恐怕不太愿意作这样的事@_@。
作者: mxl800     时间: 2008-12-14 20:06
支持DOS,更支持发现DOS!
作者: aovi     时间: 2008-12-21 12:32
dos不会消亡,只会发展缓慢而已.他是最简单最有用的操作系统.有些东西越是原始基本越有生命力.请各位慢慢体会我的这句话!!!
作者: alphatruly     时间: 2009-1-19 13:49
说实话,看了各位的讨论,我实在是没了方向.......

开始说DOS的内核发展,怎么发展呢?
扩展到保护模式么?这和CPU的架构有很大联系,就像有人说的,很多BIOS中断不能用了,就算有V86,

后来自己想了想,一个操作系统的发展离不开两个东西,CPU和操作系统的制作理念,CPU是硬道理,虽然我听别人说过,如果CPU不提供CALL指令,那也能用JMP,但是若提供了就更好。但现在的问题是,要发展DOS内核,是不是要跟上CPU架构和新机制,虽然软件的影响很深,比如在保护模式里的DPMI,亦或是IA64架构不兼容问题让AMD64大放异彩,......

可是,我们不能奢求一个专门的CPU,一个为DOS的CPU(也许可能),INTEL在IA64架构的发展上,可以说是要“重新做人”,INTEL自己也表示X86架构虽然经典,但仍不是完美的。尽管他们像人们展示IA64架构是多么的优秀,可微软却犹豫了,在XP大红大紫的时候,微软首先考虑到的是软件的移植,从市面上来看,面向32位windows的X86架构的软件数不胜数,更何况其在桌面领域的霸主地位,一旦改向IA64,软件也得重制,这代价是巨大的!!!微软不看好IA64,而向下兼容恰好让AMD打了漂亮的一仗。

你说是CPU重要,还是OS重要????
如果可以的话,人们根本上看重的是OS,CPU对大部分人来说,一个替代因素就是“速度”,选CPU就选快的就行了,但是如果你想用linux的系统,“没听说过,这里买电脑的都用win98 ”这是2000年自己刚买电脑的时候最常听到的话。
可以说人们第一个接触到的软件就是操作系统.从编程的角度看,它很好的掩盖了硬件,我们不是玩CPU的,我们是做软件的,但就是这样一个软件,我们根本不能无视CPU的存在,我们的理念很大程度上受到CPU的限制.所以说软件不是万能的,没有又是万万不能的.........

我各人觉得盖茨的眼光是不错的,他很能看出东西的本质,就拿DOS来说,这个系统最早不是微软的,是微软买下的。经过自己的完善后,更名叫MS-DOS。
就算到目前的VISTA,仍然有我们熟悉的DOS界面,虽然有些东西不一样了,
微软的开发者们认为,在时代的进步中,有些东西是要保留的,有些东西是留不住的.
所以MS-DOS被部分的保留了下来,这和那些DOS狂热份子没关系,也不是为那些底层工作者提供的。

DOS的最大特典就是简洁而全面,能作图形图像,能看影音,能上网,
但是缺点是,就现代操作系统来说,限制太多。
就发展内核来讲,我们如果要全部保留DOS的特性,那么,大部分DOS软件可以平滑的移植,但是如何与CPU进行配合呢,自己改写I/O接口和中断么,可是可以,不过太难太复杂

还有,既然是发展,如何适应多CPU呢,时下都是双核,3核,乃至4核,我们怎样让DOS去平衡CPU的工作,光靠TSR不是办法。

这些都是对与DOS发展要考虑的问题,FREEDOS-32的停滞,我想不是那么简单,因为还要有设备厂商愿意为你的操作系统写驱动,写程序,在某些经济利益的趋势下.......
太难了。
作者: brglng     时间: 2009-1-19 17:53
看到大家讨论热烈至少还是感到有所欣慰。

想到这个问题主要是看到现在DOS跟不上发展。很多新的硬件和新的功能在16位DOS下无法被开发,而目前DOS的32位又不能真正协调各个程序的工作。

如果要寻求最多的软硬件支持,其实我们可以走“兼容Win32 API”的道路。也许我们可以去支持HX Extender的开发,把它变成一个DOS下强大的32位扩展平台,这样就可以在HX的平台上用Win32的模式开发各种应用程序,甚至于兼容Win32的驱动程序。

这本质上相当于Win9x的工作。也就相当于把HX变成DOS上的一个子操作系统,所有16位DOS调用仍交给DOS内核去完成,而Win32调用由HX内核去完成。我们只是把Win9x的GUI给剥去了,并且可以给HX的开发注入更先进的理念。Win9x已经不被微软支持,而我们则可以用HX去支持最新的硬件和技术。

如果还要继续发展DOS,这可能是最可行的一条路了。
作者: aq2007     时间: 2009-2-5 02:35
今年,本业余小组,实现了在纯DOS 下.可以运行多任务.运行....

但是,目前只支持英文.
只要有高手写,就可以实现高速运行.
作者: aq2007     时间: 2009-2-5 02:36
目前是合作问题...
作者: brglng     时间: 2009-5-9 06:41
今天仔细看了下,FreeDOS-32的specifications,很有启发。
FreeDOS-32这个项目,虽然从05年停滞到现在,但我还是偶尔会关注一下。
那些specifications里提到DOS是non-kernel system(无内核系统?)。然后具体看了FreeDOS-32 kernel的设计思想,发现它允许用户程序运行在ring0~ring3、用户空间或者内核空间,不对程序实行任何保护,内存不分页。虽然内核是被设计成单任务单用户,但是这样的设计使得编写一个driver之类的程序来实现多任务成为可能,这样就既延续了DOS原来的特点,又可以支持新的技术。于是我突然觉得,把DOS做成一个无内核的系统倒是一个不错的想法。这样的设计甚至有可能通过wrapper之类的程序来兼容linux/windows的驱动。
看了些文档,大致了解了一下,FreeDOS-32是准备通过重写所有DOS中断和BIOS中断来实现对16位DOS程序和DPMI程序的兼容,而它的native程序调用的是FreeDOS-32自己的system call,而且可执行文件格式还是ELF的。
假如我有这个能力和精力,就想移植一套GNU到FreeDOS-32上面去,当然是native不是DPMI。然后再把HX Extender移植上去,兼容win32 console程序。
作者: netbenton     时间: 2009-5-9 09:29
不知道大家有没有试过windows休眠关机,然后重起动。
这种起动有点像以前dos起动一样,直入和快速。

新的dos是不是要支持图形呢?新的dos是不是要支持鼠标呢?
新的dos是不是也要支持多进程呢?多个进程又如果与用户交互呢?

如果不能实现上面的技术的话,新dos就算开发现来,使用者不会有几个
如果实现了上面的技术的话,它又貌似w......了!
作者: netwinxp     时间: 2009-5-9 10:13
39楼的意思我明白,就是要32位线性地址无分页,所有程序运行于RING0,酱紫的系统需要做到——
1、抛弃BIOS(其实NT、linux都抛弃了BIOS),使用居于驱动来管理硬件。考虑到硬件厂商不太可能特意为我们编写驱程,只能参照linux驱动自己编撰。
2、单任务,多任务的话定时中断没法保证及时响应。
3、由于不保护,所以一个程序就可以搞坏整个系统,基本认定对一般用户没用。
4、纯32位(或64位),并且抛弃BIOS,所以和原来的DOS程序基本没有兼容性可言。

就上述4点来说你认为会有多大的前途?win、linux设计之初为何会选用多层的保护模式呢?这主要就是为了避免“一个坏程序影响一个系统的稳定性”。

至于很多楼前的所谓的命令行兼容,那就根本不算什么,用Java虚拟机说不定也能搞定。

[ Last edited by netwinxp on 2009-5-9 at 10:15 ]
作者: brglng     时间: 2009-5-19 11:40
32位的DOS内核只是在默认状态下32位线性地址无分页、所有程序运行于ring0、单任务,但是由于对硬件的访问没有限制,一定可以开发出driver之类的程序实现多任务、并对程序行为实行保护,到时候无分页、ring0这些都可以改变的。一旦做出多任务的driver程序,它肯定不会允许程序有直接访问硬件的权限,也不会产生“一个坏程序影响一个系统的稳定性”的情况。实际上这就相当于在这个32位DOS上实现了一个内核。我认为FreeDOS-32如果开发出来,理论上来讲Linux内核、NT内核都可以在它上面运行。
至于对16位兼容,可以通过虚拟机解决,就像win那样。

[ Last edited by brglng on 2009-5-19 at 11:42 ]
作者: netwinxp     时间: 2009-5-21 13:50


  Quote:
32位线性地址无分页、所有程序运行于ring0、单任务,但是由于对硬件的访问没有限制...

既然都在Ring0,空间和硬件都可以访问,那么

  Quote:
一定可以开发出driver之类的程序实现多任务、并对程序行为实行保护

这个就一定实现不了。所有程序均在Ring0,那它就有能力访问和修改内存任何地方,有意或者无心(指针出错)修改关键内存数据或代码的情况就无法避免。windows是通过CPU来实现关键数据和代码的保护,也就留几个权限切换的陷阱门,就已经被屡屡突破权限限制。
ps:如果你不让程序运行在Ring0,那么所谓的方便访问硬件的优势就没有了,和win、 linux比较就没有优势可言。

[ Last edited by netwinxp on 2009-5-21 at 13:58 ]
作者: aq2007     时间: 2009-10-15 19:51
本业余小组,已经运行了,既然是多任务的.
则,肯定是对程序行为实行保护的,欢迎DOS朋友参与.
看网址:
http://blog.tianya.cn/blogger/view_blog.asp?BlogName=xie2005
里面有图片,下次发动态图片.或  http://xie2005.tianyablog.com

如果你明白了,古老机器都可以实现多任务.   2009-10-15

[ Last edited by aq2007 on 2009-10-18 at 17:13 ]
作者: aq2007     时间: 2009-10-15 19:55
主要是在dos下开发的.

[ Last edited by aq2007 on 2009-10-18 at 17:11 ]
作者: aq2007     时间: 2009-10-15 20:23
ding.........

[ Last edited by aq2007 on 2009-10-18 at 17:11 ]
作者: guanmao348     时间: 2010-9-22 12:34    标题: 顶!

为了编程开发的发展,顶!