複製鏈接
請複製以下鏈接發送給好友

平台無關

鎖定
平台無關性就是一種語言在計算機上的運行不受平台的約束,一次編譯,到處執行 。
中文名
平台無關
外文名
platform independent
定    義
在計算機上的運行不受平台的約束
編程語言
C、C++、JAVA
分    類
源代碼級和目標代碼級
領    域
計算機領域

目錄

平台無關簡介

平台無關就是一種語言在計算機上的運行不受平台的約束,一次編譯,到處執行。 平台無關有兩種:源代碼級和目標代碼級。而C和C++具有一定程度的源代碼級平台無關,表明用C或C++寫的應用程序不用修改只需重新編譯就可以在不同平台上運行。而Java編譯出來的是字節碼,去到哪個平台都能用,只要有那個平台的JDK就可以運行,所以,Java程序的最大優勢就是平台無關。
影響平台無關性的因素: 首先影響的因素是程序平台的部署。第二個影響的因素是程序平台的版本。第三個因素是本地方法。第四個因素是非標準運行時庫。第五個因素是對虛擬機的依賴。最後一個和平台無關性的因素是對用户界面的依賴。

平台無關訪問控制

目前,多數操作系統訪問控制機制的不完善,是其容易被攻擊的根本原因,訪問控制機制的實施已成為各個操作系統的迫切需求。然而對訪問控制實施的研究一般針對單個系統,當需要對新的操作系統進行安全加固時,往往需要重新開發新的訪問控制模塊。不同的安全實現,致使各個系統的安全配置也大相徑庭,使得安全管理員的維護工作也相當繁瑣。為了提高訪問控制模塊的可移植性,減少在新系統上實施訪問控制時的重複工作,使不同操作系統具有相同的安全配置方法,必需設計一個可以方便的實施到不同操作系統中的訪問控制框架,也就是平台無關的訪問控制 [1] 
平台間差異
操作集合不同。每個平台的操作集不同,以文件系統的實現來例, Linux 類操作系統中虛擬文件系統涉及的操作,如 Superblock、Inode等操作是 Windows 不支持的; 同樣 Windows 系統有一些特色操作。故而各個平台 都需要自己定義操作集合,操作集合的不同影響到了OSHL的實現。
內核對象不同。以進程為例,在Linux中每個進程由一個 Task_ Struct 對象來描述,而在 Windows 中,每個進程由 Peprocess 結構來表示。而且不同的系統有特有內核對象,例如 Superblock 只會出現在 Linux 類系統中。 內核對象的差異使得必須為不同的平台定義不同的內核對象集合。
內核 API不同。由於安全機制一般被放在內核空間執行,安全機制需要使用時間、鎖、內存分配以及輸入輸出等操作,完成這些操作的 API在不同平台下有不同的實現,要使得安全機制不依賴於具體的平台,必須消除安全機制對內核 API 的依賴。
重要的系統資源不用。不同操作系統的實現具有很大差異,每種系統都有獨特的重要資源,比如 Linux 類的偽文件系統、 Windows下的註冊表等系統關鍵資源,應該受到安全機制保護。所以,在設計安全模塊時必須提供特定的機制保護這類資源 [1] 
PIFAC(平台無關的訪問控制)
PIFAC 將訪問控制的實現分為三層:操作系統 Hook 層(OSHL)、平台抽象層(PAL)以及核心安全服務器層(CSS)。OSHL 層的作用是截獲操作系統的關鍵操作後, 交給CSS進行安全判斷,然後根據 CSS返回的結果, 允許或者拒絕該操作。OSHL 層在不同的平台下有不 同的實現,起到系統監控的作用。PAL層的作用是為 CSS層提供平台抽象,使得設計CSS時不需要考慮各個平台的不同點;為 OSHL層提供安全對象管理等功能。CSS層的作用是實現動態多策略安全模型以使 CSS可以滿足多樣的安全需求。CSS接到 OSHL層的請求後,根據配置做出判斷並且將判斷結果返回給 OSHL層 [1] 
系統實現與分析
PIFAC 已經在 Windows、Linux以及 Rtems 系 統上實施,總結了在新平台上實施PIFAC的步驟:
(1) 選擇合適的安全對象,或者定義新的安全對象。
(2) 選擇合適的操作集合,實現新系統的 OSHL,並且在其中啓用 CSS。在新平台上實施 PIFAC,只需要添加新的 OSHL, 以及擴充PAL,無需對 CSS進行修改。CSS的設計支 持多個安全模型,目前已經支持RBAC、DTE等安全模型 [1] 

平台無關模型

在基於 MDA 的軟件開發過程中,平台無關模型( PIM) 扮演着核心角色,MDA 通過建立 PIM 來生成實際執行系統,也通過修改 PIM 來修改執行系統。但目前 PIM 的建模基本靠手工編寫代碼來實現,存在着效率低、易出錯、複用難、非專業人員難以掌握等問題。而可視化建模有如下的作用:能引導人們有效地建立正確的模型;可以有效避免重複性工作,縮短開發時間;提供了存儲和管理有關信息的機制和手段,具有保持信息一致性的能力;有助於用户生成和管理相關文檔;為複用提供方便。由此可見,如果能將 PIM 建模可視化,實現建模過程所見即所得,就可以很好地解決以上問題 [2] 
PIM 的可視化建模方法
模型驅動架構 (MDA) 是對象管理組織 (OMG) 為解決軟件開發危機提出的軟件開發架構,其基本思想是將模型作為軟件開發的核心產品,嚴格區分系統的功能規約與實現細節。MDA 的典型開發過程分為 3 步:首先對應用領域建模生成 PIM,然後將PIM轉換為一個或多個PSM,最後將PSM轉換成代碼。其中,PIM 在描述純粹關注技術的業務邏輯中扮演了中心角色,PIM的建模是至關重要的一步,關係着 MDA 開發的成敗。
MDA 的核心是PIM,它是一個軟件系統功能和結構的形式化規範,與具體實現技術和硬件環境無關,所以 PIM 的建模語言也應是平台無關的 [2] 
PIM 可視化建模框架的設計與實現
PIM 的 可 視 化 建 模 框 架 基 於 Visual Studio.NET平台,使用C # 作為編程語言開發完成。框架由VX形狀庫模塊,VX圖畫設計模塊,解析轉換模塊,DTD和Schema驗證模塊構成。
1.VX形狀庫
VX形狀庫模塊負責定義PIM建模所需的形狀,並按特定分類規則將形狀放入分類形狀庫,所有的分類形狀庫組合在一起就是形狀庫 [2] 
2.VX圖畫設計
VX圖畫設計模塊由工具箱組件、設計區組件和設計引擎組件組成,負責創建圖畫的可視化設計窗口和響應窗口中發生的各種事件。其中,工具箱組件提供和形狀庫模塊交互的接口,使用創建好的形狀庫來創建形狀工具箱,創建好工具箱後,用户就可以在工具箱中選擇形狀到設計區,進行圖畫的設計。設計區組件負責創建圖畫設計區,設計區是用户可視化地設計圖畫的區域。用户可以在設計區內設計新的圖畫,或導入已有的圖畫,也可以同時打開多個圖畫,相互間複用設計 [2] 
3.解析轉換
解析轉換模塊負責解析圖畫,轉換成 XML文檔;或解析XML文檔,轉換成圖畫。解析圖畫,實際就是解析圖畫中的形狀以及形狀之間的位置關係,生成對應的XML代碼。具體地説,在設計好的圖畫中,形狀的名稱、屬性和屬性值都已經定義好了,解析形狀時,只需讀取這些數據,就能得到PIM描述文檔中相應的XML元素的名稱、屬性和屬性值。形狀之間的平面位置關係也已確定,解讀這些位置關係,就能得到XML元素間的邏輯位置關係,如順序、包含等。如此,就生成了完整的XML描述文檔 [2] 
4.DTD和Schema驗證
生成 XML文檔後,除了語法驗證,還需要驗證其是否是“Validating XML (有效的XML文檔) ”,即驗證XML文檔中的元素、屬性、實體等是否符合DTD或Schema中的規定 [2] 
參考資料
  • 1.    胡大磊,周學海.平台無關的訪問控制框架研究與實現 [J].計算機系統應用, 2010 , 19 (3) :17-20
  • 2.    王斌,王麗芳,蔣澤軍,張英.平台無關模型可視化建模的研究與實現 [J].現代電子技術 , 2011 , 34 (8) :75-78