avros
ATMEL AVR CPU的Unix樣嵌入式微粒OS
用16K RAM在Atmega1284p上運行
特徵:
- 使用消息傳遞設施,大多數OS服務(“流程”管理,文件系統,設備驅動程序)的最小微粒由單獨的任務(服務器)與客戶(用戶任務)進行通信以及彼此通過消息傳遞實現
- 當前實現的OS實體類似於Unix,帶有熟悉的系統調用,OS實體主要由OS服務任務(服務器)定義
- 多個OS實體可以在同一CPU上共存,共享相同的微粒
- 基於合作和/或計時器中斷的先發製人多任務處理
- 帶有UNIX PIPES的虛擬文件系統 - (尚未實現文件名和文件夾 - 您必須使用其各自的設備/Inode Number Duets,例如語法:'2/1'引用每個文件)
- 設備驅動程序作為單獨的任務(線程)運行,包括管道設備
- 統一設備驅動程序界面
- 通過USARTS訪問Shell,可以在初始化時產生多個會話。
存儲庫
main.c:第一個任務和主函數 - OS首先執行此任務。它按順序創建服務器(TS,VFS,ES,PM,請參見下文),含義),設置設備,註冊可執行文件,然後最終分配“ INIT”,這是每個用戶任務的根任務。
內核:Microkernel和HAL(硬件抽象層)源代碼
- 基本功能:任務創建和調度(優先循環),消息傳遞,中斷處理,內存分配(內存管理器服務器正在開發中,請參見MISC/)
- idletask-沒有其他運行時運行 - 停止CPU,直到下一個中斷以節省電源
USR
src/apps.c:
- 蓋蒂
- 登入
- 迴聲
- 貓
- 上限(將較低的案例字母轉到首都,僅用於測試)
- 睡覺
- Xargs
- 重複(僅用於測試)
- 正常運行時間
- 統計
- grep(只有弦匹配,沒有通配符)
- Mknod
src/sh.c:shell
- 分別用'<'and'>'的stdin / stdout重定向到 /從文件。
- 用'|'的管道
- 帶有'&'的背景工作
- 具有';'的多個工作
- 評論“#”
- 忽略“ '前綴”下一個字符
src/init.c:init任務,重生會議
伺服器:
- PM:過程管理器 -
進程層次結構,殭屍進程,exit(),wait(),exec(),spawntask() - VFS:虛擬文件服務器 - 文件描述符,菲爾普表,inodes,open(),colles(),read(),write(),dup(),pipe(),mkdev(),mknod(),fstat(),fstat(),et eet等...
- SEMA:簡單的信號服務器(當前未使用)-P(),V()
- TS:時間服務器 - 計時器中斷處理程序,Sleep(),正常運行時間,實時時間
- 例如:executables服務器 - 寄存器運行的應用程序,並在任務調用exec()(AVR是哈佛架構CPU)時將其提供給PM
司機:
- TTY_USART0:USART 0設備的中斷驅動的TTY驅動器
- memfile:帶有Inode管理的內存驅動器設備
- Pipedev:管道設備(多閱讀,多織理)
文檔:文檔(與DIA查看:https://wiki.gnome.org/apps/dia/)
lib:src/queue.c:雙重鏈接列表