SylixOS 經得起檢驗的國產作業系統 (三)
本篇文章將介紹SylixOS軟體框架以及POSIX標準。歡迎大家造訪SylixOS官網:http://www.sylixos.com。
軟體框架介紹
SylixOS使用微核心設計,核心簡潔高效,執行穩定快速,作業系統本身支援編譯時裁剪。同時由於SylixOS是實時作業系統中少有的支援程序與動態裝載的作業系統,所以整個系統支援執行時可裁剪。
SylixOS系統框架圖如下圖所示。
如上圖所示,SylixOS核心(longwing)小巧,本身只提供基本的作業系統服務,例如:執行緒管理,基本的執行緒間通訊,事件管理,中斷管理,記憶體管理,多核實時排程器等,同時SylixOS
核心上層所有服務均為可裁剪服務,例如I/O系統,標準裝置,網路協議棧,POSIX相容層等等。
接下來的章節會詳細介紹SylixOS各個功能組建的功能與特點。
POSIX標準
在介紹SylixOS各個功能元件前,這裡必須首先說明什麼是POSIX系統。POSIX是IEEE為了要在各種UNIX作業系統上執行的軟體,而定義API的一系列互相關聯的標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。此標準源於一個大約開始於1985年的專案。POSIX這個名稱是由理查德·
其中POSIX對實時作業系統有一個子協議稱作1003.1b,它定義了標準實時作業系統的基本行為,SylixOS符合此協議要求。
當前的POSIX主要分為四個部分:Base Definitions、System Interfaces、Shell and Utilities和Rationale。SylixOS相容這四部分的絕大多數API。
目前符合POSIX的作業系統有:UNIX、BSD、LINUX、iOS
POSIX對作業系統基本行為做出了較為嚴格的規定,這些規定以API形式給出。同時提供了對標準API引用的標頭檔案。這些標頭檔案分為四組,分別稱作:ISO C標準標頭檔案、POSIX必須標頭檔案、POSIX XSI擴充套件標頭檔案、POSIX實時標準標頭檔案。
這些標頭檔案分別是:
ISO C標準標頭檔案
<assert.h> 驗證程式斷言(SylixOS支援)
<complex.h> 支援複數算術運算(libm支援)
<ctype.h> 字元型別(SylixOS支援)
<errno.h> 出錯碼(SylixOS支援)
<fenv.h> 浮點環境(libm支援)
<float.h> 浮點常量(gcc支援)
<inttypes.h> 整型格式轉換(SylixOS支援)
<iso646.h> 替代關係操作符巨集(gcc支援)
<limits.h> 實現常量(SylixOS支援)
<locale.h> 區域性類別(SylixOS支援)
<math.h> 數學常量(libm支援)
<setjmp.h> 非區域性goto(SylixOS支援)
<signal.h> 訊號(SylixOS支援)
<stdarg.h> 可變引數表(SylixOS支援)
<stdbool.h> 布林型別和值(gcc支援)
<stddef.h> 標準定義(gcc支援)
<stdint.h> 整型(SylixOS支援)
<stdio.h> 標準I/O庫(SylixOS支援)
<stdlib.h> 實用程式庫函式(SylixOS支援)
<string.h> 字串操作(SylixOS支援)
<tgmath.h> 通用型別數學巨集(libm支援)
<time.h> 時間和日期(SylixOS支援)
<wchar.h> 擴充套件的多位元組和寬字元支援(SylixOS支援)
<wctype.h> 寬字元分類和對映支援(SylixOS支援)
POSIX必須標頭檔案
<dirent.h> 目錄項(SylixOS支援)
<fcntl.h> 檔案控制(SylixOS支援)
<fnmatch.h> 檔名匹配型別(SylixOS支援)
<glob.h> 路徑名模式匹配型別(SylixOS支援)
<grp.h> 組檔案(SylixOS支援)
<netdb.h> 網路資料庫操作(SylixOS支援)
<pwd.h> 口令檔案(SylixOS支援)
<regex.h> 正則表示式(SylixOS支援)
<tar.h> tar歸檔值(SylixOS支援)
<termios.h> 終端I/O(SylixOS支援)
<unistd.h> 符號常量(SylixOS支援)
<utime.h> 檔案時間(SylixOS支援)
<wordexp.h> 字擴充套件型別(SylixOS支援)
<arpa/inet.h> Internet定義(SylixOS支援)
<net/if.h> 套接字本地介面(SylixOS支援)
<netinet/in.h> Internet地址族(SylixOS支援)
<netinet/tcp.h> 傳輸控制協議定義(SylixOS支援)
<sys/mman.h> 記憶體管理宣告(SylixOS支援)
<sys/select.h> select函式(SylixOS支援)
<sys/socket.h> 套接字介面(SylixOS支援)
<sys/stat.h> 檔案狀態(SylixOS支援)
<sys/times.h> 程序時間(SylixOS支援)
<sys/types.h> 基本系統資料型別(SylixOS支援)
<sys/un.h> UNIX域套接字定義(SylixOS支援)
<sys/utsname.h> 系統名(SylixOS支援)
<sys/wait.h> 程序控制(SylixOS支援)
POSIX XSI擴充套件標頭檔案
<cpio.h> cpio歸檔值(SylixOS支援)
<dlfcn.h> 動態連結(SylixOS支援)
<fmtmsg.h> 訊息顯示結構(SylixOS支援)
<ftw.h> 檔案樹漫遊(SylixOS支援)
<iconv.h> 程式碼集轉換實用程式(SylixOS支援)
<langinfo.h> 語言資訊常量(SylixOS支援)
<libgen.h> 模式匹配函式定義(SylixOS支援)
<monetary.h> 貨幣型別(SylixOS支援)
<ndbm.h> 資料庫操作(SylixOS支援)
<nl_types.h> 訊息類別(SylixOS支援)
<poll.h> 輪詢函式(SylixOS支援)
<search.h> 搜尋表(SylixOS支援)
<strings.h> 字串操作(SylixOS支援)
<syslog.h> 系統出錯日誌記錄(SylixOS支援)
<ucontext.h> 使用者上下文
<ulimit.h> 使用者限制(SylixOS支援)
<utmpx.h> 使用者帳戶資料庫(SylixOS支援)
<sys/ipc.h> IPC(使用1003.1b標準)
<sys/msg.h> 訊息佇列(使用1003.1b標準)
<sys/resource.h> 資源操作(SylixOS支援)
<sys/sem.h> 訊號量(使用1003.1b標準)
<sys/shm.h> 共享儲存(SylixOS支援)
<sys/statvfs.h> 檔案系統資訊(SylixOS支援)
<sys/time.h> 時間型別(SylixOS支援)
<sys/timeb.h> 附加的日期和時間定義(SylixOS支援)
<sys/uio.h> 向量I/O操作(SylixOS支援)
POSIX實時標準標頭檔案
<aio.h> 非同步I/O(SylixOS支援)
<mqueue.h> 訊息佇列(SylixOS支援)
<pthread.h> 執行緒(SylixOS支援)
<sched.h> 執行排程(SylixOS支援)
<semaphore.h> 訊號量(SylixOS支援)
<spawn.h> 實時spawn介面(SylixOS支援)
<stropts.h> XSI STREAMS介面
<trace.h> 時間跟蹤
(本篇結束)