說到作業系統,先來列舉一些 unix 和 類unix 作業系統
分類作業系統
unix system v家族
a/ux、aix、hp-ux、irix、lynxos、sco openserver、tru64、xenix、solaris、os/2
bsd unix-386bsd家族
bsd/os、freebsd、netbsd、nextstep、mac os x、ios、openbsd、sun os、 opensolaris
unix-like
gnu、linux、android、debian、ubuntu、red hat、linux mint、minix、qnx、gnu/linux、gnu/hurd、debian gnu/hurd、gnu/kfreebsd、startos
其他dos、ms-dos、windows、react os
qnx是一種商用的分布式、嵌入式、可規模擴充套件、遵從posⅸ規範的類unix實時作業系統。
qnx是微核心架構,其核心僅提供4種服務,分別為:程序排程、程序間通訊、底層網路通訊和中斷處理。驅動程式、協議棧、檔案系統、應用程式等都在微核心之外記憶體受保護的安全的使用者空間內執行,元件之間能避免相互影響,在遇到故障時也能重啟。
下圖為qnx系統架構圖:
對許多依照posix1.003.1標準實現的實時執行程式來說,它們的執行時環境通常是單程序、多執行緒的模型,執行緒之間沒法做到記憶體保護,而這樣的環境只是posix假設的多程序模型的乙個子集,它不支援fork()函式。相比之下qnx neutrino利用mmu,在受保護的環境中實現了posix的執行緒模型。
針對記憶體保護,有以下幾種情況:
不提供記憶體保護:所有程式位於同乙個位址空間,應用程式可以訪問所有空間,效率較高,但是程式指標錯誤可能造成核心崩潰,典型的比如nuttx平板模式。
單核心os提供部分記憶體保護:使用者層和系統層進行了隔離,核心和各種驅動、協議棧在同乙個位址空間,應用程式在單獨空間。核心模組處於乙個保護空間,效率較高,應用程式無法訪問,系統的穩定性也得到提高。由於核心模組處於保護空間,除錯會比較困難。比如linux系統。
微核心os提供完整的記憶體保護:核心處於乙個被保護的位址空間,驅動程式、網路協議及應用程式等處於程式空間中。
通過posix執行緒建立原語提供的執行緒服務;
通過posix訊號原語提供的訊號服務;
訊息傳遞服務,微核心處理整個系統中所有執行緒之間的訊息路由;
通過posix執行緒同步原語提供的同步服務;
排程服務,微核心使用各種posix實時排程策略來排程執行緒執行;
定時器服務,微核心提供了豐富的posix定時器服務集;
程序管理服務,微核心與程序管理器一起組成乙個叫procnto的單元,程序管理器部分負責管理程序、記憶體,還有路徑名空間。與執行緒不同,微核心本身不會被排程執行。處理器只在微核心中執行系統呼叫、異常、硬體中斷響應等。
qnx neutrino作業系統的微核心,管理一組協作的程序,如下圖所示,這種結構不是一種層級的組織,更像是乙個團隊,因為不同的程序可以通過核心來協調互動。qnx neutrino充當乙個「軟體匯流排」的角色,可以在需要的時候動態的插入和移除系統模組。
華麗的圖形介面。
速度極快,其他作業系統沒有辦法和它相比。
系統非常安全:qnx上沒有計算機病毒,這是和linux一樣的,所以qnx rtp不存在被病毒破壞資料的危險,只有在微軟windows系統中才會有被病毒感染的噩夢。另外,qnx的使用者管理相當出色,它絕對不會讓乙個沒有輸入正確密碼的人闖入計算機系統中。
qnx有乙個最好的網頁瀏覽器:qnx裡的網頁瀏覽器叫做「voyager」,瀏覽網頁的速度快得象火箭。和voyager相比,微軟的ie和網景公司的nc瀏覽器簡直就是一輛破舊的老爺車。但是這個voyager瀏覽器目前還有些bug,qssl公司的軟體工程師正在改進它。
QNX作業系統簡介
說到作業系統,先來列舉一些 unix 和 類unix 作業系統 分類作業系統 unix system v家族 a ux aix hp ux irix lynxos sco openserver tru64 xenix solaris os 2 bsd unix 386bsd家族 bsd os fre...
qnx 映象檔案 QNX作業系統「自適應分割槽」
1 基本介紹 自適應分割槽是qnx嵌入式作業系統的乙個特色功能,應從兩方面理解 自適應和分割槽。分割槽是指作業系統採用 虛擬牆 將共享資源 例如cpu執行時間 記憶體 儲存空間等 以一定的比例劃分,以確保每個分割槽都有一組經過工程設計的資源。每個分區內可以執行乙個或多個執行緒 程序。自適應是指作業系...
作業系統 作業系統介面
介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...