1. 程式人生 > >SylixOS 經得起檢驗的國產作業系統 (三)

SylixOS 經得起檢驗的國產作業系統 (三)

        本篇文章將介紹SylixOS軟體框架以及POSIX標準。歡迎大家造訪SylixOS官網:http://www.sylixos.com

軟體框架介紹

       SylixOS使用微核心設計,核心簡潔高效,執行穩定快速,作業系統本身支援編譯時裁剪。同時由於SylixOS是實時作業系統中少有的支援程序與動態裝載的作業系統,所以整個系統支援執行時可裁剪。

       SylixOS系統框架圖如下圖所示。

如上圖所示,SylixOS核心(longwing)小巧,本身只提供基本的作業系統服務,例如:執行緒管理,基本的執行緒間通訊,事件管理,中斷管理,記憶體管理,多核實時排程器等,同時SylixOS

核心包含一個基礎的C++執行時庫,所以SylixOS核心模組支援不帶有異常處理和執行時型別識別功能的C++程式。

核心上層所有服務均為可裁剪服務,例如I/O系統,標準裝置,網路協議棧,POSIX相容層等等。

接下來的章節會詳細介紹SylixOS各個功能組建的功能與特點。

POSIX標準

在介紹SylixOS各個功能元件前,這裡必須首先說明什麼是POSIX系統。POSIXIEEE為了要在各種UNIX作業系統上執行的軟體,而定義API的一系列互相關聯的標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。此標準源於一個大約開始於1985年的專案。POSIX這個名稱是由理查德·

斯托曼應IEEE的要求而提議的一個易於記憶的名稱。它基本上是PortableOperating System Interface(可移植作業系統介面)的縮寫,而X則表明其對Unix API的傳承。

其中POSIX對實時作業系統有一個子協議稱作1003.1b它定義了標準實時作業系統的基本行為,SylixOS符合此協議要求。

當前的POSIX主要分為四個部分:Base DefinitionsSystem InterfacesShell and UtilitiesRationaleSylixOS相容這四部分的絕大多數API

目前符合POSIX的作業系統有:UNIXBSDLINUXiOS

AndroidSylixOSVxWorksRTEMS等等,由於SylixOS支援POSIX所以SylixOS的應用在這些作業系統上非常好移植。

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>                   非區域性gotoSylixOS支援)

<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/OSylixOS支援)

<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/OSylixOS支援)

<mqueue.h>                 訊息佇列SylixOS支援)

<pthread.h>                  執行緒SylixOS支援)

<sched.h>                     執行排程SylixOS支援)

<semaphore.h>             訊號量SylixOS支援)

<spawn.h>                    實時spawn介面SylixOS支援)

<stropts.h>                   XSI STREAMS介面

<trace.h>                      時間跟蹤

(本篇結束)