分页: 1 / 3

要解决操作系统的垄断问题,首先要开放API

发表于 : 2007-09-01 22:23
ving
为什么PC没有厂商能垄断,原因在于PC的标准是开放的,大家都可以生产与之兼容的机器。
而操作系统为什么被微软垄断,原因在于微软把持了windows的API,没人能够生产兼容的系统。
只有迫使微软开放API,才能给所有厂商一个公平的竞争环境,才能打破垄断。

发表于 : 2007-09-01 22:39
猛将兄
win32 api msdn说的很清楚。可有什么用?楼主似乎不知所云

发表于 : 2007-09-01 22:48
ving
-_-
公开API的用法并不表示API是开放的,何况微软也没有公开所有API的用法,另外如果我没记错的话,在其他操作系统中使用windows API构成侵权。

发表于 : 2007-09-01 22:55
ving
如果开放了API,这意味着其他操作系统上可以原生态运行windows下的软件。
windows的垄断优势也将不复存在。

发表于 : 2007-09-01 23:00
PhoenixJ
什么叫原生态?
计算机学科里面没有这个术语。

发表于 : 2007-09-01 23:18
猛将兄
楼主,你大概不知道ReactOS。不公开的API绝大多数开发者无法调用,并不会对二进制直接运行有任何影响,如果有一个OS能完全模拟出Win32懂得API的话

理论上,如果wine能把所有win32的api都实现,win32的二进制程序99%可以运行于wine上,剩下的1%就是所谓的调用了非公开的api的程序拉

不好意思,用词不当了

发表于 : 2007-09-01 23:21
ving
直接运行,不需要其他软件或虚拟化技术。

发表于 : 2007-09-01 23:26
猛将兄
ReactOS就是你所谓的直接运行了。其实exe是PE格式的,微软的msdn又把每个API解释的很详细,如果有另外一拨人去开发一个OS完全兼容微软的描述,是完全可以做到的。问题是这事一项巨大的工程,在微软没有开放源代码的情况下,很难完成。所以ReactOS的人很可爱。

发表于 : 2007-09-01 23:29
猛将兄
还有,wine也不是虚拟化技术
我想楼主可能不太懂可执行文件是怎么回事。其实现代操作系统支持的可执行文件,都是一个中间介质,不包含直接的机器码。由OS解释之后执行。微软用的是PE格式,Unix是ELF格式。格式都是公开的,就看你拿到之后怎么执行了
wine也只是负责把微软的PE解释出来,调用linux的系统调用而已,工作量巨大,所以wine的开发人员都很牛

发表于 : 2007-09-01 23:56
ving
ReactOS的人的确很可爱。所有的支持着开源软件的人也都很可爱。
PE格式我的确没有系统学习。在我的原先的理解中,可执行文件除了API外就是机器码了。

发表于 : 2007-09-04 12:59
iblicf
ls 你知道什么是 API 吧?

发表于 : 2007-09-04 13:01
BigSnake.NET
ving 写了:-_-
公开API的用法并不表示API是开放的,何况微软也没有公开所有API的用法,另外如果我没记错的话,在其他操作系统中使用windows API构成侵权。
什么叫做"在其他操作系统中使用win API"..
"其他操作系统"怎么会有Win的API?

发表于 : 2007-09-04 17:35
ving
iblicf 写了:ls 你知道什么是 API 吧?
很有意思的问题哟
BigSnake.NET 写了:
ving 写了:-_-
公开API的用法并不表示API是开放的,何况微软也没有公开所有API的用法,另外如果我没记错的话,在其他操作系统中使用windows API构成侵权。
什么叫做"在其他操作系统中使用win API"..
"其他操作系统"怎么会有Win的API?
6楼呢?

发表于 : 2007-09-04 17:43
bones7456
你这么说,还不如直接让他开源算了~~

发表于 : 2007-09-04 17:45
猛将兄
??楼主什么都没说。开放API??微软不是开放了么,不然我们怎么在上面写程序??
EXE的格式也是开放的PE格式,又没有锁死
只是,说在Linux里面直接系统调用里面增加windows的系统调用就荒谬了。linux就100多个系统调用,为了兼容windows,得增加300多个系统调用,有必要么?
有wine就好了。直接翻译PE格式的EXE成linux的系统调用。只是现在性能还一般般了。理论上做到90%以上甚至120%的性能都是可以的