系統之間差異
AIX,HP-UNIX,SunOS,Linux,Windows等,作業系統繁多,如果不對各個系統差異比較清楚,不僅作業系統運用方面缺乏,同時在應用程式開發與移植會比較困難,所以這篇文章為本人對系統之間差異進行學習總結,隨時都可能更新.
[@more@]一.1.語言差異
在Unix系統和Windows系統中整數20000在記憶體中的情況。
十六進位制表示 0x00004E20
Windows記憶體表示 20 4E 00 00
Unix記憶體表示 00 00 4E 20
這種差異帶來的問題,主要體現在以下幾個方面:
網路通訊時,當Windows和Unix之間發生網路資料傳輸
檔案儲存和讀取時,
解決這個問題的方法就是互動的雙方採用一種相同的資料編碼標準,
就是資料在傳輸和儲存的時候採用什麼方法進行編碼,具體的做法有一下幾種:
1. 數字轉換成字元傳進行互動
2. 協商一個同意的位元組順序,根據自己平臺的位元組順序還原資料
3. 採用其他標準的編碼方式,如ASN1編碼
32位系統和64位系統的差異也會出現這樣的問題。
2.變數作用域的差異
在不同的系統下,由於編譯器的不同,對變數作用域的實現機制也有所不同。
3.全域性物件的初始化
CMyObject g_Object;
系統中(SCO Unix),透過顯式建立物件的方法解決:CMyObject* g_pObject = new CMyObject;
CMyObject& g_Object = *(new CMyObject);
4. 語法檢查的差異
二.
作業系統差異
不同的作業系統中都存在一些系統的限制,如開啟檔案控制程式碼數的限制、Socket等待
佇列的限制、程式和執行緒堆疊大小的限制等.
1.檔案描述符的限制
在32為的Solaris程式中,使用標準輸入輸出函式(stdio)進行檔案的操作,最大的檔案描述符不能超過256。
2.程式和執行緒的限制
對於程式和執行緒的棧空間大小的限制,主要是執行緒棧空間的問題
3.網路通訊能力的限制
系統為了提高網路通訊的效能,提供了很多輔助的技術,其中等待佇列就是其中之一。
下面列出了幾個作業系統的最大等待佇列的大小:
作業系統 最大等待佇列
Windows 2000 Server 200
Windows XP Home 5
Solaris E250 128
4.容錯性的影響
Windows平臺的程式分配記憶體的時候,一般都會多分出一些位元組用於對齊,如果緩衝區溢位的不是太多,就不回對記憶體中其他變數的值造成影響
5.併發處理
在Solaris下面的本地執行緒庫,是一組以thr_開頭的函式,而POSIX的執行緒函式一般都已pthread_開頭。
為了程式的可移植性,建議採用POSIX的執行緒庫。
6.網路通訊
三
基本開發流程
1.程式碼的編寫
有一點值得注意,Windows下文字里面的回車符包含兩個字元‘n’和‘r’,而
Unix下的文字里面的回車符只包含一個字元‘n’。
2.編譯
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22630256/viewspace-1028091/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用多重 SOA 來消除企業系統之間的差異
- Bootstrap和Tailwind CSS之間的差異?bootAICSS
- 工作流和BPM之間的差異
- Git比對檔案之間的差異Git
- 程式、會話、連線之間的差異會話
- js中split,splice,slice方法之間的差異。JS
- SQL Server 2017 各版本之間的差異SQLServer
- For Update操作分析——不同Oracle版本之間的差異研究Oracle
- 網路虛擬化、NFV和SDN之間的差異
- 對於 JavaScript 中迴圈之間的技術差異概述JavaScript
- 國內外的ERP系統存在顯著的差異,差在哪?
- 談談MES系統差異產生的主要方式
- Spark和Hadoop之間的主要技術差異和選擇SparkHadoop
- 國內ERP系統和SAP系統架構存在哪些差異?架構
- 從四方面分析數字展廳與傳統展廳之間的差異
- Linux系統中Ubuntu和Redhat的差異有哪些?LinuxUbuntuRedhat
- 企微SCRM和CRM系統的差異有哪些呢
- [AlwaysOn] AlwaysOn可用性組的可用性模式之間的差異模式
- 示例解讀 Python 2 和 Python 3 之間的主要差異Python
- Golang 中如何獲取當前路徑,它們之間有啥差異Golang
- 碼農和程式設計師之間的5個關鍵差異程式設計師
- Scala與Java差異(三)之函式Java函式
- 技術分享|SQL和 NoSQL資料庫之間的差異:MySQL(VS)MongoDB資料庫MySqlMongoDB
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(五)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(三)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(一)筆記SQLOracle函式
- ERP差異來源和差異處理
- UI vs UX:使用者介面和使用者體驗之間的差異UIUX
- Scala與Java差異(五)之Map與TupleJava
- ChromeDriver版本差異Chrome
- 中西IT差異論
- 人工智慧和機器學習之間的差異及其重要性,一定要分清楚人工智慧機器學習
- module.exports、exports 、export default之間的差異區別及與require、import的使用ExportUIImport
- [譯] 測試原生,Flutter 和 React Native 移動開發之間的效能差異FlutterReact Native移動開發
- 非易失性儲存器Flash和EEPROM之間的差異與優缺點
- 資訊系統專案規劃和產品規劃的差異
- JavaScript計算兩個時間點之間的時間差JavaScript
- Material Design 實戰 之 第六彈 —— 可摺疊式標題欄(CollapsingToolbarLayout) & 系統差異型的功能實現(充分利用系統狀態列空間)...Material Design