SylixOS 经得起检验的国产操作系统 (三)
??????? 本篇文章將介紹SylixOS軟件框架以及POSIX標準。歡迎大家造訪SylixOS官網:http://www.sylixos.com。
軟件框架介紹
?????? SylixOS使用微內核設計,內核簡潔高效,運行穩定快速,操作系統本身支持編譯時裁剪。同時由于SylixOS是實時操作系統中少有的支持進程與動態裝載的操作系統,所以整個系統支持運行時可裁剪。
?????? SylixOS系統框架圖如下圖所示。
?????? 如上圖所示,SylixOS內核(longwing)小巧,本身只提供基本的操作系統服務,例如:線程管理,基本的線程間通信,事件管理,中斷管理,內存管理,多核實時調度器等,同時SylixOS內核包含一個基礎的C++運行時庫,所以SylixOS內核模塊支持不帶有異常處理和運行時類型識別功能的C++程序。
?????? 內核上層所有服務均為可裁剪服務,例如I/O系統,標準設備,網絡協議棧,POSIX兼容層等等。
?????? 接下來的章節會詳細介紹SylixOS各個功能組建的功能與特點。
POSIX標準
?????? 在介紹SylixOS各個功能組件前,這里必須首先說明什么是POSIX系統。POSIX是IEEE為了要在各種UNIX操作系統上運行的軟件,而定義API的一系列互相關聯的標準的總稱,其正式稱呼為IEEE 1003,而國際標準名稱為ISO/IEC 9945。此標準源于一個大約開始于1985年的項目。POSIX這個名稱是由理查德·斯托曼應IEEE的要求而提議的一個易于記憶的名稱。它基本上是PortableOperating System Interface(可移植操作系統接口)的縮寫,而X則表明其對Unix API的傳承。
?????? 其中POSIX對實時操作系統有一個子協議稱作1003.1b,它定義了標準實時操作系統的基本行為,SylixOS符合此協議要求。
?????? 當前的POSIX主要分為四個部分:Base Definitions、System Interfaces、Shell and Utilities和Rationale。SylixOS兼容這四部分的絕大多數API。
?????? 目前符合POSIX的操作系統有:UNIX、BSD、LINUX、iOS、Android、SylixOS、VxWorks、RTEMS等等,由于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>??????????? ?????? 非局部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>????????????????????? 時間跟蹤
?
(本篇結束)
總結
以上是生活随笔為你收集整理的SylixOS 经得起检验的国产操作系统 (三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASW3410设计说明|双通道 2切1/
- 下一篇: 以哥德尔命名的哥德尔数——哥德尔拆解汉译