不同层次的跨平台(OS)

      Perl,Python脚本语言, 从解释性脚本语言层次上,利用解释器的来实现跨平台
      C++语言, 从高级语言层次上,使用不同OS的编译器来实现跨平台。但是C++语言往往直接调用OS提供的API函数,造成了对OS的强依赖,从而无法实现跨平台。解决办法是使用跨平台的库,例如标准C/C++库、Qt库、Boost库等,避免直接调用OS的API。
      Java语言和.NET技术, 从中间语言层次,采用虚拟机的技术来实现跨平台。但是只有Java同时提供了完整跨平台库,.NET只有在Windows下支持的好,Linux下只有个MONO项目来支持.NET。
      COM技术, 从二进制可执行层次上建立标准,实现了同一平台下的跨语言重用。即其编译得到的二进制可执行文件,可以被多种语言包括脚本语言所调用。COM技术并不是为跨平台而创建的,它在跨平台问题上好像一直没有很好的支持;CORBA技术, 同样从二进制可执行层次上,却实现了跨平台,还有CORBA/DCOM bridge在Windows下去迎合DCOM。
      到了CPU机器码层次,实际不存在跨平台问题了。

      实际上,跨平台问题是由于有众多OS造成的。而形成众多OS,除了有历史原因、商业原因外,还有就是有不同的应用场合,例如除了电脑外,还有手机需要OS。目前看,Java虚拟机在不同平台下支持的最好。支持跨平台使用的手段,本质上都是 引入中间间接层,并标准化它们,来屏蔽不同OS的不同。例如上面提到了解释器,编译器加通用库,中间语言加虚拟机等等,都是一种中间层。
      如果把中间语言在CPU中实现,则强制所有OS实现在中间语言层次上,跨平台问题才能彻底消失。这样好像CPU成了OS真正的实现者了,在现实中,这可能只是 痴人说梦
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值