`
grandry
  • 浏览: 9174 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

跨平台含义

阅读更多

一直不理解所谓的跨平台是啥意思,百度下,这是非常清晰的解释。

 

跨平台泛指程序语言、软件或硬件设备可以在多种作业系统或不同硬件架构的电脑上运作。
  广义面言,一般的计算语言都可做到跨平台,开发商只需要提供各种平台下的Runtime/中间件环境即可。严格而言是指用某种计算机语言编制的程序只需要做小量的修改,编译之後即可在另外一种平台下运行,此时并不提供Runtime/中间件环境。例如Java是一种提供Runtime环境的跨平台解决方案,而C而是一种标准且严格的跨平台语言。
  跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台
,那麼此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统。诸如java,delphi和易语言,都已做到了跨平台。它们将可以在多种系统下开发,运行和维护。
  大部分电脑语言从绝对意义而言,都是跨平台的:因为都是以高级的、人类可读的方式来对CPU发号指令,这样也就没必要依赖於任何作业系统。但如果要用系统的部件工具箱,来新建用户图形界面(GUI),就可能会用到开发员特定系统中的API函数或库类。虽然C++是跨平台的,但Windows下用到Win32 API的C++程式,一般就不能在Unix机器上编译。不同编译器对语言规范的解释也有所差异。这样的话,在针对不同系统进行构建之前,程式就得加以考虑。
  一些如Java这样的语言,从一开始就意识到要在各个平台下运行,所以跨平台在其平台的本地语言环境中已经实现。例如,Java可以跨平台使用,正是由於Swing库在许多平台下的实现。类似的,能进行跨平台的文件存取,是因为有各自平台下文件存取的库。以此类推,各种跨平台问题,都需要各自的本地库来解决。wxWidgets框架就是这样的一个跨平台库,根据不同的跨平台问题,提供了许多不同的解决方案;类似的库有许多,可以根据不同语言的跨平台开发,而采用相应的库。
  针对每种作业系统、CPU,而提供并测试各自的编译版本,这种做法的可行性很小;开源软体则允许用户自己来编译目的码(object code),这样在跨平台方面更好一些。类似的,那些解释型语言,或者需要虚拟机的语言,也更加符合跨平台的要求,因为用户也要自己进行编译。Sun公司的Java虚拟机Hotspot,只针对几种而不是全部平台,提供编译好的二进位文件。例如,Sun对於GNU/Linux,只支持i386平台,但如果谁在PowerPC或者SPARC电脑上运行Linux,就只好自己编译本地的机器码(machinecode),或者使用第三方软体,才能运行Java程式。
  许多API(应用程式介面)依赖於平台。OpenGL可以看作是跨平台的,因为其不依赖於任何特定的作业系统、CPU构架或者某个牌子的图形设备。特定平台的API可以在其他系统上作为兼容层而新建,例如WINE的库,Windows程式就可以在UNIX系统上运行。
  另外许多程式语言还有跨平台的扩展以及中间件,这样程式设计师对於同样的原始码,只要进行一点小修改,就可以在不同平台下编译/运行,例如Qt和wxWidgets。

支持多种作业系统的软体

1. 资料库管理系统(DBMS):

MySQL:Solaris、Linux、Windows、FreeBSD 
Oracle:Solaris、Linux、Windows 
2. 网站伺服器、应用程式伺服器:

Apache:Solaris、Linux、Windows、FreeBSD 
Tomcat:Linux、Windows、FreeBSD 
3. 网际网路浏览器:

Mozilla Firefox:Linux、FreeBSD、Solaris、AIX、Windows、 

可在不同作业系统上进行软体开发的程式语言

C语言、C++、Java 
Perl、Tcl、Erlang 
Python、Delphi+Kylix、REALbasic

分享到:
评论

相关推荐

    Mercury:一个简单的跨平台的内置P2P文件传输工具

    一个简单跨平台的预设P2P文件传输工具,目前支持Windows / Linux / OS X 用法 当本机作为客户端时: mercury -t client -p path -i serverIP [-P port -T threadnum -b buffer -n blocksize] 当本机作服务器为时...

    ametal:芯片级裸机软件包,定义了一系列常用外设(如:UART、IIC、SPI、ADC等)的通用接口,基于通用接口的应用可以跨平台复用

    AMetal是芯片级的裸机软件包,定义了跨平台的通用接口(使得基于AMetal的应用程序可以和具体硬件完全分离,实现跨平台复用),并提供了一系列驱动及常用的软件服务。 在MCU产业快速发展的今天,芯片厂商推出了越来越...

    迷你计算机视觉,含义有双重,第一重含义是:一个迷你的CV库;第二重含义是:可用于迷你计算机(如嵌入式计算机)的视觉库

    跨平台迷你计算视觉库,可裸奔在免操作系统的单片机上,集成了近150个demo,并附带测试视频以便大家使用参考。它是ymkv-2.0版本(可移植任意平台),平台从codeblocks迁移到vs,并经过一些架构调整和算法优化,取消了...

    pyclean:纯Python跨平台pyclean。 清理您的Python字节码

    在任何平台上。 Firenze 2019的。等待! 什么是字节码? 字节码是操作码。 - 使困惑? 如果您想深入探讨该主题,请观看Larry Hastings的2013 EuroPython演讲“ All Singing All Dancing Python Bytecode” 。 否则...

    Vim中特殊字符的读写详解

    最近在工作中遇到一个文章,在跨平台工作的时候由于不同编辑器处理换行和空白字符风格不一致, 常常在Vim下会看到一些特殊字符。这些特殊字符的含义可通过digraph-table查询, 也可根据digraph-table或Unicode/ASCII...

    亲试过可以通过cygwin编译发布cocos2d-x几种中文乱码解决方案

    现在的网络情况就是N个网站同一个资源搜来搜去,让人越发焦虑。...自己编译那个iconv好像也难,用jni回调后java转码似乎又违背了跨平台的真正含义。还有好多未知的系统接口调用,如果都这样干,那不如直接实现得了。

    java基础知识思考题+答案(个人整理)

    2、 解释Java语言跨平台的技术基础。 因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成...

    MBBSEmu:MajorBBS仿真项目是一个开放源代码,跨平台的仿真器,可轻松运行MajorBBS和Worldgroup模块

    此外,它还支持x86和ARM平台,例如Raspberry Pi。 它是根据条款获得。 入门 将MBBSEmu提取到目标文件夹 将您的编辑为所需的设置 如果要运行多个模块,请创建一个文件 使用所需的启动MBBSEmu 而已! :) MBBSEmu是否...

    Python编程语言设计开发的C语言学习及考试信息管理系统.zip

    Python还具有跨平台支持,可以在多种操作系统上运行,包括Windows、Mac OS、Linux等,这使得开发者无需考虑不同平台之间的差异,可以轻松地实现跨平台部署。 Python是一种面向对象编程语言,可以进行抽象和封装。...

    01_Java语言发展史.flv

    理解Java语言的跨平台实现原理 理解JDK和JRE的组成和作用 能够配置环境变量JAVA_HOME 能够编写HelloWorld程序编译并执行 理解关键字的含义 理解标识符的含义 能够定义出所有类型的常量 理解Java中的基本数据类型分类...

    [正则表达式入门经典].(美)瓦特.扫描版

     通过逐章地讲解如何在流行的Windows平台的软件——包括数据库、跨平台的脚本语言和编程语言中使用正则表达式,你将学习到如何有效地驾驭正则表达式所提供的强大功能,并且全面理解正则表达式的高度灵活性和无限...

    ASP.NET复习提纲有答案版

    1. Xml在.NET中使用有利于跨平台传输数据。 2. 母版页Common存放位置,他的优点?P83应用程序中的根目录, 1. 有利于站点维护和修改,降低开发人员的工作强度 2. 提供高效的内容整合能力 3. 有利于实现页面布局 4...

    JAVA 语言基础学习

    跨平台的实现原理JDK与JREJDK的下载和安装Path和Classpath环境变量开发工具关键字关键字的含义关键字的特点关键字的注意事项标识符组成规则注意事项命名规则注释变量数据类型的转换运算符算术运算符赋值运算符比较...

    Java程序设计基础:Java语言概述.pptx

    Java语言概述 Java开发基础--Java语言概述 Java语言概述 了解Java语言历史和特点 理解Java语言规范 能够区分API、JDK的含义 ...跨平台:Java引进虚拟机(JVM)原理。 Java虚拟机是Java语言的运行环境,用来运

    python能做什么 python的含义

    Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 Python是一款流行...

    从0开始学Java第一天-Java学习资料-源码基础-Java源码-总结

    第一天了解Java语言发展史,Java是一门具有面向对象思想,并且支持跨平台,并且支持泛型的高级编程语言。1.学习并掌握如何从0搭建Java环境(JDK的下载,安装,卸载);2.学会HelloWorld案例编写,知道如何解释该程序...

    hprose:高性能远程对象服务引擎

    它是一种现代,轻便,跨语言,跨平台,面向对象,高性能,远程动态通信中间件。 它不仅易于使用,而且功能强大。 您只需要一点时间来学习,然后就可以使用它轻松地构建跨语言跨平台的分布式应用程序系统。 它包含...

    java成长之路(2020.3.1)

    java基础学习大纲 爱的传递,希望能帮到更多的人。 文章目录java基础学习大纲每章小结:第一章:第二章:第三章:第... 跨平台是靠JVM(虚拟机)实现的。 Java各版本的含义: JavaSE(Java Standard Edition)标准版,定

    systemshock:Shockolate-同样出色的系统震撼力,新的出色品味

    Shockolate-系统震动,但跨平台! 基于Night Dive Studios,Incorporated发布的PowerPC的源代码。 一般注意事项 Shockolate是使用SDL2的System Shock的跨平台源端口。 目前,它可以在OSX,Linux和Windows上很好地...

    正则表达式入门经典.[美]Andrew Watt(带详细书签)

     通过逐章地讲解如何在流行的Windows平台的软件——包括数据库、跨平台的脚本语言和编程语言中使用正则表达式,你将学习到如何有效地驾驭正则表达式所提供的强大功能,并且全面理解正则表达式的高度灵活性和无限...

Global site tag (gtag.js) - Google Analytics