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

不同视角、不同观点、深度探讨,禁止人品和道德攻击
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

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

#1

帖子 ving » 2007-09-01 22:23

为什么PC没有厂商能垄断,原因在于PC的标准是开放的,大家都可以生产与之兼容的机器。
而操作系统为什么被微软垄断,原因在于微软把持了windows的API,没人能够生产兼容的系统。
只有迫使微软开放API,才能给所有厂商一个公平的竞争环境,才能打破垄断。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#2

帖子 猛将兄 » 2007-09-01 22:39

win32 api msdn说的很清楚。可有什么用?楼主似乎不知所云
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

#3

帖子 ving » 2007-09-01 22:48

-_-
公开API的用法并不表示API是开放的,何况微软也没有公开所有API的用法,另外如果我没记错的话,在其他操作系统中使用windows API构成侵权。
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

#4

帖子 ving » 2007-09-01 22:55

如果开放了API,这意味着其他操作系统上可以原生态运行windows下的软件。
windows的垄断优势也将不复存在。
PhoenixJ
帖子: 1492
注册时间: 2007-08-09 3:33
系统: Windows 12.04

#5

帖子 PhoenixJ » 2007-09-01 23:00

什么叫原生态?
计算机学科里面没有这个术语。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#6

帖子 猛将兄 » 2007-09-01 23:18

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

理论上,如果wine能把所有win32的api都实现,win32的二进制程序99%可以运行于wine上,剩下的1%就是所谓的调用了非公开的api的程序拉
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

不好意思,用词不当了

#7

帖子 ving » 2007-09-01 23:21

直接运行,不需要其他软件或虚拟化技术。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#8

帖子 猛将兄 » 2007-09-01 23:26

ReactOS就是你所谓的直接运行了。其实exe是PE格式的,微软的msdn又把每个API解释的很详细,如果有另外一拨人去开发一个OS完全兼容微软的描述,是完全可以做到的。问题是这事一项巨大的工程,在微软没有开放源代码的情况下,很难完成。所以ReactOS的人很可爱。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#9

帖子 猛将兄 » 2007-09-01 23:29

还有,wine也不是虚拟化技术
我想楼主可能不太懂可执行文件是怎么回事。其实现代操作系统支持的可执行文件,都是一个中间介质,不包含直接的机器码。由OS解释之后执行。微软用的是PE格式,Unix是ELF格式。格式都是公开的,就看你拿到之后怎么执行了
wine也只是负责把微软的PE解释出来,调用linux的系统调用而已,工作量巨大,所以wine的开发人员都很牛
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

#10

帖子 ving » 2007-09-01 23:56

ReactOS的人的确很可爱。所有的支持着开源软件的人也都很可爱。
PE格式我的确没有系统学习。在我的原先的理解中,可执行文件除了API外就是机器码了。
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#11

帖子 iblicf » 2007-09-04 12:59

ls 你知道什么是 API 吧?
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#12

帖子 BigSnake.NET » 2007-09-04 13:01

ving 写了:-_-
公开API的用法并不表示API是开放的,何况微软也没有公开所有API的用法,另外如果我没记错的话,在其他操作系统中使用windows API构成侵权。
什么叫做"在其他操作系统中使用win API"..
"其他操作系统"怎么会有Win的API?
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
ving
帖子: 3741
注册时间: 2007-07-29 16:47
来自: 地精魔法学院

#13

帖子 ving » 2007-09-04 17:35

iblicf 写了:ls 你知道什么是 API 吧?
很有意思的问题哟
BigSnake.NET 写了:
ving 写了:-_-
公开API的用法并不表示API是开放的,何况微软也没有公开所有API的用法,另外如果我没记错的话,在其他操作系统中使用windows API构成侵权。
什么叫做"在其他操作系统中使用win API"..
"其他操作系统"怎么会有Win的API?
6楼呢?
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#14

帖子 bones7456 » 2007-09-04 17:43

你这么说,还不如直接让他开源算了~~
关注我的blog: ε==3
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#15

帖子 猛将兄 » 2007-09-04 17:45

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