|
|
发表于 2004-10-21 22:48:13
|
显示全部楼层
re:楼主
先学学操作系统的课程吧.看看也行,至少要有点概念,知道你对Linux的热情.但也不应在自己还很无知的情况下抱怨不该抱怨的事啊.
CPU执行的是机器语言的程序,现代的操作系统都具有并行性,就是要把多个程序同时装到内存里执行,通过计算机的定时器中断,为每个进程(即处在运行状态的程序)分配时间片运行,这叫做进程调度.不同的操作系统进程调度的方法是不同的,一个程序要告诉操作系统他有什么要求,它有什么属性,比如它想占用多大内存等,这些信息都要储存在程序的二进制文件里,所以实际的程序并不是完全的机器语言,由于这种附加信息在不同的操作系统里组织的方式不同,所以不同操作系统的可执行代码并不兼容.
但是由于程序执行的主体都是机器语言代码,所以可以通过某种模拟的方法实现兼容.
Wine就是这样一个程序,它可以使你在Linux下运得Windows下的.exe文件.记着几年前Wine就可以兼容90%以上的Windows程序了.
但是一些涉及直接操作硬件的程序,比如QQ要操作网络,Wine就不能实现完美兼容.这时可以采用"逆向工程"的方法,即根据要实现的功能,重写代码以实现不能真接用Wine模拟的程序.但这样毕竟不如原程序那样完美.
你知道吗?虽然Linux有办法执行Windows程序,但Windows还没有能力执行Linux程序.微软说要在它的下一代操作系统中实现兼容Linux程序,不过这起码要等个一两年.
说Linux能实现Windows的功能,并不是说Windows程序可以直接在Linux下运行.而是说,只要有人做,比如QQ,只要他的开发人员愿意支持Linux,则Linux下的QQ完全可以做到和Windows一样.但事实上,想在Linux下用QQ,靠的是Linux支持者们在没有源代码的情况下重新编码做到的,每当QQ增加新功能,新协议,OpenQ小组要做的工作量比腾讯的开发人员的工作量要大很多.
所以,如果楼主同志认为你还无知的话,请不要在这里胡乱指责,这让人觉得莫名其妙. |
|