COSCUP 2023

Tenok: 打造用於機器人控制的微型即時作業系統
2023-07-29, 15:30–16:00 (Asia/Taipei), TR 412-1
Language: Traditional Chinese (Taiwan)

Tenok (在阿美族語中意指 Kernel) 是一個支援 ARM Cortex-M 架構、6000行左右、目標應用為機器人控制 (Robotics) 以及物聯網 (Internet of Things) 的實驗型微型即時作業系統。本專案是由講者所開發之專案,希望與聽眾分享關於作業系統開發的細節以及經驗。


Tenok 一詞在阿美族語中表示核心 (Kernel),其啟發自成大資工系師生於2013年所創作的 rtenv / rtenv+,後者被用於成大資工嵌入式系統系列課程中作為教材。原先 Tenok 只是用於學習及重現 rtenv,但目前已強化了部分 rtenv 設計,可視為另一個作業系統開發的參考案例。

Tenok 亦參考了 mini-arm-os 以及 FreeRTOS,相較 rtenv 有較完整的資源管理功能,且檔案系統基於 inode 邏輯,更加貼近於真實作業系統的設計。另外也包含了一個支援自動補齊、歷史檢索以及數個快捷鍵功能的 Shell 文字互動界面。

以下為 Tenok 的主要特徵以及功能:

  • POSIX 風格的 API
  • 同步機制: Spinlock, Mutex, Semaphore
  • 行程間通訊 (IPC): FIFO (Named pipe), Message Queue
  • 支援浮點數運算單元 (Floating-point Unit, FPU)
  • 內建 Shell 的使用者文字互動介面
  • 簡單的 rootfs 及 romfs 的檔案系統實做
  • 可用 Metalanguage 定義除錯封包 (Debug messaging) 並進行即時資料繪圖 (Real-time plotting)
  • 整合 MAVLink 通訊協議連接既有的 Open-source 軟體生態

GitHub 連結: https://github.com/shengwen-tw/tenok


Difficulty

中階

Target Audience

對嵌入式系統、作業系統有興趣的聽眾,建議對作業系統及計算機組織有基礎認知

畢業自陽明交通大學 (機器人碩士學程,2021年) 及靜宜大學 (資訊工程系,2019年),主要興趣為機器人系統、嵌入式系統以及即時作業系統。曾參與開源四軸飛行器韌體開發 (UrsusPilot,因主要成員創業,已轉為閉源) 及小型實驗型自駕車系統設計 (Puyuma,基於電腦視覺及 Real-time Linux),熟悉機器人控制以及導航,更詳細的介紹可見: http://wiki.csie.ncku.edu.tw/User/shengwen