Board logo

标题: dos与嵌入式设备 [打印本页]

作者: cdl     时间: 2004-9-29 00:00    标题: dos与嵌入式设备

在dos论坛上很少有人把dos和嵌入式设备联系在一起,好像dos只是个过时的办公操作系统,人们往往把它和WIN9x、UNIX和WINXP来比,而忽略了它在嵌入式领域的应用。如今许多嵌入式操作系统如VXWORK和NUCLEUS等,虽说功能比较强大,但是价格非常昂贵,NUCLEUS内核+TCP/IP协议站+CADUL(开发工具)就需要二十几万RMB,许多小公司都是购买不起,更不用说个人了,而且开发难度也比较高开发周期长。别的不说TCP/IP协议栈和CADUL就存在一些问题,没碰到算运气好,一旦遇到非一般高手可以搞定的。相比之下dos倒是个很好的嵌入式操作系统,它大大降低的产品的开发费用和开发周期,不知各位对这点有何不同意见?希望大家谈谈dos在嵌入式领域的应用和发展!
作者: cdl     时间: 2004-9-30 00:00
没人有兴趣吗?自己顶一下。
作者: aria     时间: 2004-9-30 00:00
赞!但是一般认为Dos是单任务的,实模式的似乎很难做复杂的应用
作者: wchong     时间: 2004-10-1 00:00
那倒未必!
作者: Wengier     时间: 2004-10-1 00:00
DOS代表着自由开放与发展,什么只是个过时的办公操作系统?DOS的功能和用途都非常多,而嵌入式领域只是其众多的用途之一,虽然可以讨论,但并没有必要突出强调这点。
作者: aria     时间: 2004-10-1 00:00


  Quote:
以下是引用wchong在2004-10-1 7:35:49的发言:
那倒未必!

呵呵
说说你的想法吧
btw:论坛巨慢

[此贴子已经被作者于2004-10-1 13:15:34编辑过]



作者: cdl     时间: 2004-10-1 00:00


  Quote:
以下是引用aria在2004-9-30 16:24:59的发言:

赞!
但是一般认为Dos是单任务的,实模式的
似乎很难做复杂的应用

虽然dos本身是单任务的,但是基于dos的多任务操作系统也有一些,而且还非常可靠,如eRTOS等,它不但实现了任务调度机制和任务通信机制而且做了大量的网络和IO的应用,如http、web、SIO等。dos是实模式的,这点不假,但是许多嵌入式系统用386保护模式只是用它的平板模式,任务切换和保护机制并不常用。dos真正的弱点是不能直接访问大于1M的内存,但是可以通过扩展内存规范存取大于1M的内存,只要程序不大于1M就没问题。
作者: aria     时间: 2004-10-1 00:00
不能访问大于1M的内存确实是一个很大的缺点但如果使用扩展内存规范就进入了保护模式.保护模式的运行速度小于实模式的据说以前有loadall指令(286-486)可以在实模式下访问1M以上的内存,现在的cpu就不知道用什么方法了
作者: cdl     时间: 2004-10-1 00:00
386以上的CPU都有保护模式和实模式之分。实际上实模式是保护模式的一个实例,在实模式下段的属性是不能改变的,如段的大小是64KB,这个限制在保护模式下就可以改变,有时候需要在dos下访问4GB的内存范围,也是可以实现的,但需要先进入保护模式修改段的属性,把段大小限制改掉,再退到实模式下,这样在实模式下就可以访问到4GB的内存范围了。但是需要比较高的技巧,因为保护模式下是32位指令,而实模式下是16位指令,如果没保护好环境很容易死机。
作者: cdl     时间: 2004-10-1 00:00


  Quote:
以下是引用Wengier在2004-10-1 9:09:27的发言:
DOS代表着自由开放与发展,什么只是个过时的办公操作系统?DOS的功能和用途都非常多,而嵌入式领域只是其众多的用途之一,虽然可以讨论,但并没有必要突出强调这点。

dos是个过时的办公操作系统是个事实,不承认都不行。有多少人现在还用dos操作系统来办公呢?在国内大部分人用的都是xp和98,其实国外也不例外。而linux和unix在服务器上用的稍微多些,但是dos几乎就见不到了,会用dos的人也是越来越少了,这点我也不愿意看到啊。dos万岁!

作者: Wengier     时间: 2004-10-1 00:00
aria: DOS下通过扩展内存规范访问1MB以上的内存是实模式的,而不是保护模式的!也就是说,当只加载HIMEM.SYS提供以存取XMS内存时DOS仍是实模式的,而不是保护模式。另外,现在许多较新的BIOS已提供了DOS Flat mode的功能,以在实模式下直接存取超过1MB的内存,而不需XMS或EMS之类的,这样就更方便了。cdl: 关于DOS的操作系统地位看该怎么说,比如说用DOS上面的Win9x GUI平台也可以认为正在用DOS操作系统,就像许多人并不是在用Linux的命令行界面而是用上面的X-WIN GUI平台但仍被认为是在使用Linux操作系统一样,虽然DOS和Linux本身都是命令行方式的操作系统。
作者: cdl     时间: 2004-10-1 00:00


  Quote:
以下是引用Wengier在2004-10-1 20:38:47的发言:

aria: DOS下通过扩展内存规范访问1MB以上的内存是实模式的,而不是保护模式的!也就是说,当只加载HIMEM.SYS提供以存取XMS内存时DOS仍是实模式的,而不是保护模式。
另外,现在许多较新的BIOS已提供了DOS Flat mode的功能,以在实模式下直接存取超过1MB的内存,而不需XMS或EMS之类的,这样就更方便了。
"dos Flat mode"实际上就是我上面说到的先到保护模式下修改段大小限制,在退到实模式下用32位寻址来实现的。这跟dos没任何关系,dos访问超过1MB的内存的标准用法还是要通过扩展内存规范去实现的,即INT 17。如RAM盘的实现还是需要用dos的调用INT 17去实现。
cdl: 关于DOS的操作系统地位看该怎么说,比如说用DOS上面的Win9x GUI平台也可以认为正在用DOS操作系统,就像许多人并不是在用Linux的命令行界面而是用上面的X-WIN GUI平台但仍被认为是在使用Linux操作系统一样,虽然DOS和Linux本身都是命令行方式的操作系统。我们常用的win98和winxp不是dos的GUI,这不光是界面问题,保护模式的指令和实模式的指令是不同的,实现的机制也完全不同。win98或winxp和dos的GUI已经是不能相提并论了。  


作者: Wengier     时间: 2004-10-2 00:00
DOS下訪問1MB以上的內存當然還是以XMS內存為主了,這是實模式方式的。關於DOS flat mode我衹是點到為止,並不想多說什麼。然而不應忘記,DOS下訪問保護模式是有好幾種實現規範的,其中用的最多的是DPMI(即“DOS保護模式接口”規範),如CWSDPMI等等驅動程序都是提供這個的,所以DOS可以隨時從默認的實模式調用保護模式驅動來進入保護模式來運行保護模式的DOS程序,也就是說,保護模式和實模式一樣,兩者都是DOS環境的一部分(雖然實模式是DOS的默認模式)。現在保護模式的DOS程序多的是,如DJGPP等編譯出來的DOS程序都是保護模式的,而不是實模式的,如著名的Seal、Qube等DOS下的GUI程序(注意:實模式和保護模式並不是你所說的DOS和非DOS的分界線,難道說這些保護模式的DOS程序都不是DOS程序??這是非常可笑的“白馬非馬”論)。而Win3.x/9x GUI也正是保護模式的DOS GUI程序(Win3.x的“386增強模式”就是一種386保護模式的DOS方式,不能在實模式下運行;而Win3.x本身是DOS下的程序這一點是連微軟自己都說明了的,這已不必爭論;而Win9x/4.x是Win3.x的昇級版本)。
作者: aria     时间: 2004-10-2 00:00
哈学到了不少谢谢大家!
作者: aria     时间: 2004-10-2 00:00

我觉得分歧就在这一点上
段的保护是不是分界线
Win3.x等有段的保护吗?
win9x确实是升级版本,但是它有什么改进?虚拟机技术算是改进吗
启动Win9x,Dos应该是必要的,可是微软宣传的时候,却说它(们)完全脱离了Dos
作者: cdl     时间: 2004-10-3 00:00


  Quote:
以下是引用Wengier在2004-10-2 4:32:56的发言:

DOS下訪問1MB以上的內存當然還是以XMS內存為主了,這是實模式方式的。關於DOS flat mode我衹是點到為止,並不想多說什麼。
然而不應忘記,DOS下訪問保護模式是有好幾種實現規範的,其中用的最多的是DPMI(即“DOS保護模式接口”規範),如CWSDPMI等等驅動程序都是提供這個的,所以DOS可以隨時從默認的實模式調用保護模式驅動來進入保護模式來運行保護模式的DOS程序,也就是說,保護模式和實模式一樣,兩者都是DOS環境的一部分(雖然實模式是DOS的默認模式)。現在保護模式的DOS程序多的是,如DJGPP等編譯出來的DOS程序都是保護模式的,而不是實模式的,如著名的Seal、Qube等DOS下的GUI程序(注意:實模式和保護模式並不是你所說的DOS和非DOS的分界線,難道說這些保護模式的DOS程序都不是DOS程序??這是非常可笑的“白馬非馬”論)。而Win3.x/9x GUI也正是保護模式的DOS GUI程序(Win3.x的“386增強模式”就是一種386保護模式的DOS方式,不能在實模式下運行;而Win3.x本身是DOS下的程序這一點是連微軟自己都說明了的,這已不必爭論;而Win9x/4.x是Win3.x的昇級版本)。

Wengier坚持认为windows是dos的升级版或者是dos的GUI,不知是否包括win98和winxp。如果是这样的话,我不想再和你争论了,你还是自己去看书吧。
你自己提到DPMI是“DOS保護模式接口”规范,其实dos扩展规范远不止这个。这些东西有人称为“保护模式接口”,有的称为“保护模式驱动”甚至称为“保护模式服务器”,无论什么称呼都好,它们都不是dos本身的组成部分,开发这些程序的公司都不是dos操作系统的提供商。正是因为dos不具备这些功能,而市场又非常需要,在有利可图的情况下开发的,甚至想用这些工具来挽救dos。因为dos的这些缺陷开发dos下复杂应用程序非常痛苦,有的应用软件除了用dos的文件系统外,其他的dos功能都没用,而从头写代码,不是程序员不想调用而是不能调用,我自己都碰到过这种情况。
作者: Wengier     时间: 2004-10-3 00:00
cdl:我什么时候说过我认为Windows是DOS的升级版了?我是说Windows 9x(即Windows 4.x)是Windows3.x的升级版本,请你不要误解成我说WIN是DOS的升级版!既然微软自己都说过Win3.x(不管是“标准模式”还是“386增强模式”[即386保护模式])是运行于DOS操作系统下的GUI程序,这点已是公认的,而Win9x则是Win3.x的升级版本,所以Win9x也是DOS下的GUI程序。至于WinXP,当然与DOS无关了,而与OS/2、WinNT有关,请不要把Win98(即Win4.1)和WinXP(即WinNT 5.1)混为一谈都说成是DOS的GUI。前者是,后者不是。WinXP是基于WinNT内核的独立操作系统,完全不需要DOS内核的存在。如果你不清楚Win9x和WinXP的这些根本区别的话,我倒建议你去看看书。
DOS的扩展规范非常多这我当然知道,但这正说明了DOS的扩充性和灵活性非常强,很多规范虽然不直接包含在DOS内核中(但也可以包含在内核中,如FreeDOS 32就是一例;类似的,长文件名支持也包含在ROM-DOS 7.1 LFN版的内核中),但是可以随时加上,就有点像自定义的DOS内核,或者说就像一栋大楼似的,DOS内核是底层,然后各种驱动程序是二楼、三楼等等。举个例子,XMS扩展内存规范等其实也不是DOS内核本身的一部分,而是由HIMEM.SYS驱动程序提供的,但由于它的存在显然扩展了DOS内核本身,就好比这栋大楼的底层建筑为基础的上层建筑,但仍是DOS环境或这栋大楼的一部分。关于保护模式的问题,道理其实是类似的,我也举个例子吧,DOS下的多媒体播放器QuickView有两个模式的版本,分别是实模式的QuickView 1.x和保护模式的QuickView Pro 2.x(最新版是今天刚出的QuickView Pro 2.54版)。前者是实模式的DOS版本,而后者是保护模式的DOS版本,难道说后者就不是DOS程序了?既然是DOS程序,那就说明了在这种保护模式的情况下,仍然是DOS环境,不管保护模式驱动是不是包含在DOS内核本身中。你说“有的应用软件除了用dos的文件系统外,其他的dos功能都没用”,其实除了用DOS的文件系统外(其实仅此就可以证明它不是独立的系统了,因为还是需要DOS内核的底层建筑的),还用了DOS下的扩展规范(如DPMI,暂且不管它是“驱动程序”还是“服务器”,这个并不是重点)中的指令,是DOS环境或这栋大楼的更上层。如果否认大楼的下层建筑,就好比是空中楼阁,可见根本不是独立的系统。既然DOS环境好比一栋大楼,那么只要是基于这栋大楼的底层建筑并需要这个底层建筑(即内核)或它的上层建筑(即基于内核的各种驱动、服务器等)的,就是DOS环境的一部分,Win3.x/9x这些程序自然也不例外。


作者: Wengier     时间: 2004-10-3 00:00
...


作者: Wengier     时间: 2004-10-3 00:00
当然,如果觉得上面哪儿有错误或不妥的地方的话,可以提出来或指正,毕竟论坛就是讨论的地方,而不是个人演讲台之类的。只有讨论才有共同进步和提高。
作者: Wengier     时间: 2004-10-4 00:00
当然,如果觉得上面哪儿有错误或不妥的内容的话,可以提出来或指正,毕竟论坛就是讨论的地方,而不是个人演讲台之类的。只有讨论才有共同进步和提高。
作者: aria     时间: 2004-10-4 00:00
Qv 2.54!等了很长时间了一看Changes,只是改进了codec唉,还以为又支持什么新的格式呢
作者: cdl     时间: 2004-10-7 00:00
我发贴的初衷是想探讨一下dos在嵌入式领域的应用,而不是dos与windows的区别,但在这个论坛中似乎没有人对嵌入式领域感兴趣,真让人遗憾!我个人认为dos最有价值的发展方向是嵌入式领域。
作者: Wengier     时间: 2004-10-7 00:00
“但在这个论坛中似乎没有人对嵌入式领域感兴趣”我想的话这是自然的了,毕竟论坛中的用户主要都是一般的个人用户和DOS爱好者,而一般的个人用户和DOS爱好者是不会对嵌入式领域感兴趣的。
作者: yaly     时间: 2004-10-13 00:00
dos可以用在一些不用gui的地方==========================================msn:yaly163@hotmail.com
作者: cdl     时间: 2004-10-13 00:00
对嵌入式应用不需要特别漂亮的界面,许多用户用320x240的LCD显示,有简单的GUI库就够用了。但对成本敏感。
作者: yaly     时间: 2004-10-19 00:00
to cdl:      我认为dos在某些小型的应用场合比较适用。pos机。手持设备(pda),led的显示驱动,等等。机会很大。
作者: cdl     时间: 2004-10-19 00:00


  Quote:
以下是引用yaly在2004-10-19 16:25:28的发言:
to cdl:
      我认为dos在某些小型的应用场合比较适用。pos机。手持设备(pda),led的显示驱动,等等。机会很大。

是的,还有工控、通信等行业。我们是嵌入式平台的研发公司。在这些领域里都有客户。

[此贴子已经被作者于2004-10-19 16:56:10编辑过]



作者: yaly     时间: 2004-10-20 00:00
我曾用过WINCE开发过POS机。WINCE的最大问题是启动速度慢,硬件成本高,软件成本高。如果能用DOS或其他小型的OS代替WINCE的话,成本可以减少很多,但也有问题,如果应用过于简单的话,那么C51,CPLD,等单片机就会有很大的成本优势。总之,机会风险共存。
作者: cdl     时间: 2004-10-20 00:00
我们的下一款dos工控机定价将低于150元人民币。现在产品系列中价格是在300元人民币左右。CPU速度是86MIPS相当于486/66的水平。兼容性好,外设也比较全。