跳轉到

1976 - VRTX 誕生(把多工變成可以買的元件)#

案件摘要#

1976 年,美國加州的 Hunter & Ready 公司推出 VRTX(Versatile Real-Time Executive)—— 史上第一個商業即時作業系統核心:只有幾 KB,賣給嵌入 VLSI 開發系統的廠商。 從此嵌入式多工從「每個專案自己寫一個超級迴圈」變成「買一個現成核心」——RTOS 從此成為一個產業。

前因 -- 為什麼會有這個案子#

  • 前後台超級迴圈的缺陷:早期嵌入式程式是一個 while(1) 大迴圈加中斷——回應時間不可預測、無法分模組。
  • VLSI 開發的硬體契機:Hunter & Ready 替晶片廠開發 VLSI 測試設備,需要決定性的多工——學硬體逼出了 RTOS。
  • Multics 的反面教材:主機級 OS 動輒數百萬行——嵌入式世界需要的是幾 KB 的最小核心。

線索與推理 -- VRTX 的技術面貌(1976)#

技術 VRTX 狀態 彌補的缺陷
行程 優先級搶佔式多工(最多 255 級) 超級迴圈回應不可預測
通訊 信號量、訊息佇列、事件旗標 中斷旗標輪詢的混亂
記憶體 無 MMU、共用位址空間 微控制器根本沒有 MMU
footprint 約 4–8 KB ROM 主機 OS 的 1/1000
授權 商用授權(royalty) 開源 RTOS 要等 27 年

C 範例:前後台超級迴圈 vs RTOS 排班#

/* 以前:前後台超級迴圈——回應時間取決於迴圈位置 */
while (1) {
    if (flag_sensor) read_sensor();   /* 排在後面就慢 */
    if (flag_uart)   handle_uart();
}

/* VRTX(1976):優先級搶佔——高優先級永遠先跑 */
task A(priority = 1) {  /* 最緊急的感測任務 */
    while (1) { wait(SENSOR_SEM); read_sensor(); }
}
(決定性 = 最壞情況可計算——即時排程理論的工程實現。)

Shell 範例:VRTX 時代的開發流程#

# 1976 年:交叉編譯 + 燒 ROM
$ cc68 -O -o app.bin app.c      # 在開發機上交叉編譯
$ burnrom app.bin 0x0000        # 燒進 EPROM
$ # 沒有螢幕、沒有 shell——除錯靠 LED 和示波器

結案 -- 後果與影響#

  • VRTX 被授權給 Motorola 等廠商,成為 1980 年代工業控制的標準核心。
  • 徒弟出走創業潮:Ready Systems(VRTX 的兄弟 VRTX32)、Accelerated Technology、Wind River(VxWorks)——RTOS 產業成型。
  • 1980 年代後期 IEEE 開始制定 POSIX 1003.4(即時擴充)——API 碎片化逼出標準(見 1993 年案件)。
  • 歷史教訓:元件化(把 OS 當零件賣)= 嵌入式產業的第一步。

關鍵人物與文獻#

  • J. Hunter / L. Ready:VRTX (1976)。
  • D. L. Parnas:模組化與資訊隱藏(1972)——RTOS 元件化的理論基礎。
  • 相關案件:1982-QNX微核心與訊息傳遞.md、1993-VxWorks與POSIX即時標準.md。