---
title: Linux以前： 40年前のRTOSをAIで読み解く
tags: 
author: [noborutkhs](https://www.docswell.com/user/1701852)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/L73W1MMD75.jpg?width=480
description: Interface2026年5月号「Linuxとハードウェア」オフ会＠東京 のLT資料。
published: April 25, 26
canonical: https://www.docswell.com/s/1701852/KJW9Y3-2026-04-24-214734
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/L73W1MMD75.jpg)

バージョン 1.0
Linux以前：
40年前のRTOSをAIで読み解く
@noborutkhs 2026/04/24


# Page. 2

![Page Image](https://bcdn.docswell.com/page/87DKX662JG.jpg)

発見
ギリギリ「昭和」 1986 - 1988


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJPKPYYLE8.jpg)

Spec
-
CPU :
68000
開発ホスト:
Sun-2 Unix 4.2BSD
コンパイラ:Whitesmiths C
ICE
アンリツ MC-4501A
ソース管理:
SCCS
サイズ
約4.5 KBytes


# Page. 4

![Page Image](https://bcdn.docswell.com/page/2EVV2GG6EQ.jpg)

参照環境（情報源）
1986頃
-
リアルタイムシステムの教科書
-
先輩のコード（カーネルとアプリが未分離）
-
OSSなし
-
インターネットなし
-
商用RTOSドキュメントのみ (VRTX / pSOS)


# Page. 5

![Page Image](https://bcdn.docswell.com/page/57GLR882EL.jpg)

教科書
-
STEPHEN SAVITZKY
-
Zilog Inc.
-
1985
-
Chapter 8に一部ソース
が載っていた


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4EQYV999JP.jpg)

CHARM-II
-
本棚から発掘
-
教科書のコード
↓
VRTX, pSOSの仕様
↓
実用RTOS


# Page. 7

![Page Image](https://bcdn.docswell.com/page/KJ4WWRRR71.jpg)

ソースファイル一覧
User’s Guideより


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LE1YYQQV7G.jpg)

プロセススイッチ
-
教科書にも具体的に書かれていない
-
先輩のコードを参考にした
-
68000で動作実績あり
-
68000で何をやる必要があるかを読み解いた


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GEWGGMM3J2.jpg)

アプリ開発
-- 商社向け国際通信システム
国際通信網
専用線
受信
送信
モデム x 5
ドットプリンタ
モデム
電話網
プリンタ以外は全て RS-232C


# Page. 10

![Page Image](https://bcdn.docswell.com/page/47ZLLQQGJ3.jpg)

アプリ構造
-
Polling handler
TX
Modem1
Modem2
RX
Modem3
Printer
…
Multi-process
State machine
Message passing


# Page. 11

![Page Image](https://bcdn.docswell.com/page/YJ6WW66QJV.jpg)

コンペ
会社
町工場
CPU
68000
80186
方式
イベント駆動
（RTOS）
ポーリング中心
（割り込み＋ポーリング）
応答速度
数十mS
数百mS
vs
速い
１桁
■ 結果は総合評価で引き分け
Kxx子会社


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GJ5MM662J4.jpg)

No Tuning
-
特別な最適化をしていない。
-
アセンブラはプロセススイッチと割り込みエントリのみ
-
Cのコードは遅くならないようには気をつけていた
-
-
当時のコンパイラはほぼオプティマイズほぼなし
それでも速かったのは、構造の影響が大きい


# Page. 13

![Page Image](https://bcdn.docswell.com/page/9E299MM17R.jpg)

Sun-２ Debug
-
Sun-2: 68010 / ターゲット: 68000
-
Unixのプロセスの中にRTOSを疑似的に実装
-
今で言うマルチスレッド的に動かし、Sun-2で大部分をデバッグ


# Page. 14

![Page Image](https://bcdn.docswell.com/page/D7Y44XX4EM.jpg)

Low frequency bug
-
一番大変だったのは再現しないバグ
-
原因特定に時間がかかる
-
当時の解析はプロトコルアナライザ
↓
-
今ならAIでソース解析とかできそう


# Page. 15

![Page Image](https://bcdn.docswell.com/page/VENYY116J8.jpg)

AI解析: Queue-centric / Event-driven
PROCESS
(状態管理)
Application
(通信アプリ
/FSM群)
メッセージ
/ イベント
EVENTBOX
(イベント)
EXCHANGE
(通信)
TIMER
(timeout)
QUEUE
(中核構造)
MEMORY
(free管理)
READY
QUEUE
INTERRUPT
(最小処理のみ)
メッセージ投入
PROCESS起床


# Page. 16

![Page Image](https://bcdn.docswell.com/page/Y79PP55RE3.jpg)

AI解析: 教科書 vs CHARM-II
教科書 (Chapter 8)
QUEUE
Application
TIMER
SERVICE
（それぞれ独立）


# Page. 17

![Page Image](https://bcdn.docswell.com/page/G78DDYYG7D.jpg)

AI解析: Interrupt → Message
-
割り込みで処理せず、メッセージでプロセスに渡している
INTERRUPT
メッセージ投入
PROCESS起床


# Page. 18

![Page Image](https://bcdn.docswell.com/page/L7LMM44XJR.jpg)

AI解析: iTRON(1987)との比較 (1/2)
共通点
1.
2.
3.
4.
プロセスモデル 状態を持つタスク（プロセス）
通信モデル
メッセージで同期する
同期・イベント イベントで起きる
割り込みとの関係 割り込みで完結しない


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4EMYYKK3EW.jpg)

AI解析: iTRON(1987)との比較 (2/2)
違い
1.
2.
3.
CHARM-II
レベル
汎用性
構造の中心
iTRON
実装
設計仕様
特定用途（通信システム） 汎用組込みOS
queue中心
タスク中心
当時はiTRONの実装を参照できる状態ではなかったが、構造はかなり近い


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PER99XXRJ9.jpg)

AI解析: 自分のコードを AIで読む
-
40年前の自分のコードを、
今になってAIと一緒に読み解いている感じ。
当時は意識していなかった構造が見えてくる。
「自分が書いたコードなのに、AIに解説してもらって理解し直してる」


# Page. 21

![Page Image](https://bcdn.docswell.com/page/P7XQQ66YEX.jpg)

次回予告
- 80s
RTOS
- 90s
Graphics （プログラミング利用）


# Page. 22

![Page Image](https://bcdn.docswell.com/page/37K991147D.jpg)

付録：システムコール
User’s Guideより


# Page. 23

![Page Image](https://bcdn.docswell.com/page/LJ3WWQQDJ5.jpg)

付録：プロセス状態遷移図
User’s Guideより


