| | 跨平臺泛指程序語言、軟件或硬件設備可以在多種作業係統或不同硬件架構的電腦上運作。
廣義面言,一般的計算語言都可做到跨平臺,開發商衹需要提供各種平臺下的runtime/中間件環境即可。嚴格而言是指用某種計算機語言編製的程序衹需要做小量的修改,編譯之後即可在另外一種平臺下運行,此時並不提供runtime/中間件環境。例如java是一種提供runtime環境的跨平臺解决方案,而c而是一種標準且嚴格的跨平臺語言。
跨平臺概念是軟件開發中一個重要的概念,即不依賴於操作係統,也不信賴硬件環境。一個操作係統下開發的應用,放到另一個操作係統下依然可以運行。相對而言如果某種計算機語言不用修改代碼即可做到高度跨平臺
,那黱此語言就越抽象,硬件控製力就越低,衹適合開發高度抽象的模型係統。諸如java,delphi和易語言,都已做到了跨平臺。它們將可以在多種係統下開發,運行和維護。
援多種作業係統的軟體
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
詳細解說
大部分電腦語言從絶對意義而言,都是跨平臺的:因為都是以高級的、人類可讀的方式來對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。 | | 跨平臺泛指程序語言、軟件或硬件設備可以在多種作業係統或不同硬件架構的電腦上運作。
廣義面言,一般的計算語言都可做到跨平臺,開發商衹需要提供各種平臺下的Runtime/中間件環境即可。嚴格而言是指用某種計算機語言編製的程序衹需要做小量的修改,編譯之後即可在另外一種平臺下運行,此時並不提供Runtime/中間件環境。例如Java是一種提供Runtime環境的跨平臺解决方案,而C而是一種標準且嚴格的跨平臺語言。
跨平臺概念是軟件開發中一個重要的概念,即不依賴於操作係統,也不信賴硬件環境。一個操作係統下開發的應用,放到另一個操作係統下依然可以運行。相對而言如果某種計算機語言不用修改代碼即可做到高度跨平臺
,那麼此語言就越抽象,硬件控製力就越低,衹適合開發高度抽象的模型係統。諸如java,delphi和易語言,都已做到了跨平臺。它們將可以在多種係統下開發,運行和維護。
援多種作業係統的軟體
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
php
詳細解說
大部分電腦語言從絶對意義而言,都是跨平臺的:因為都是以高級的、人類可讀的方式來對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。
web開發程序的跨平臺語言
php開發的程序可以不經修改運行在,windows.linux,unix等多個操作係統上
補充:舉例說windows係統的軟件不可以在linux上運行,linux係統的軟件不可以在windows上運行.
但是php的解釋器有多個操作係統的多個版本,多的偶都叫不出來名字,凡是有解釋器的操作係統你寫的php程序就可以運行,不論你是在windows還是linux下寫的 | | | delphi | 控件 | 偽API | VCL | 平板電腦 | 組態軟件 | 嵌入式係統 | 金山 | | windows | office | linux | 編程 | c語言 | 圖形庫 | 圖形開發 | |
| | | 跨平臺技術 | 跨平臺軟件 | 跨平臺辦公套件 | | 跨平臺開源程序庫 | C++跨平臺開發技術指南 | 跨平臺開發技術指南 | | java跨平臺技術 | C++設計模式-基於Qt4開源跨平臺開發框架 | 設計模式-基於開源跨平臺開發框架 | |
|
|
|