---
title: 40年前のRTOSはなぜ今も動くのか？  osdev-jp
tags: 
author: [Noboru T](https://www.docswell.com/user/noborutkhs)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/G75M4L1D74.jpg?width=480
description: 40年前のRTOSはなぜ今も動くのか？  osdev-jp by Noboru T
published: August 02, 26
canonical: https://www.docswell.com/s/noborutkhs/KY8GX7-2026-08-02-155220
---
# Page. 1

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

バー ジョン 1.0
40年前のRTOSはなぜ今も動くのか？
@noborutkhs 2026/08/02
osdev-jp
https://note.com/noborutkhs
https://medium.com/@noborutakahashi


# Page. 2

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

@noborutkhs
-
1980s
リアルタイムOS～商社向け通信システム開発
-
1990s
Graphic Creatives Photo/Word Mosaic
-
2000s
Smart Phone OS開発
-
2010s～現在
組込み向けHMIツール
UX PMOとして
展示会デモ開発


# Page. 3

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

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


# Page. 4

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

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


# Page. 5

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

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


# Page. 6

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

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


# Page. 7

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

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


# Page. 8

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

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


# Page. 9

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

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


# Page. 10

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

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


# Page. 11

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

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


# Page. 12

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

コンペ
会社
vs
町工場
Kxx子会社
CPU
68000
80186
方式
イベント駆動
ポーリング中心
（RTOS）
（割り込み＋ポーリング）


# Page. 13

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

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


# Page. 14

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

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


# Page. 15

![Page Image](https://bcdn.docswell.com/page/2EVV5PVREQ.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/57GL6PL6EL.jpg)

40年前のRTOSを現代に動かす


# Page. 17

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

1980s の host-target構造
-
host : SUN-2
68010
target: 68000
-
CPUの互換性を利用し、両方で動かした
-
90%のコードをSUN-2でデバッグ
-
host側はプリエンプティブ処理を実装しないことで簡略化


# Page. 18

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

2026 の host-target構造
-
host : Apple Silicon Mac
草案
target: Raspberry Pi Pico
-
ARM同志で共通化！
-
と最初は思ったが調べていくと差が大きすぎたのでボツ


# Page. 19

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

2026 の host-target構造
-
host : POSIX
-
ホストはWindows + wsl2でOK
-
-
target: Raspberry Pi Pico
AI Agentが適用しやすい
runtime として WebAssemblyも追加
-
Canvasでグラフィックスが描画できる


# Page. 20

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

1980s - 2026 の host-target構造比較
1980s
2026
host
SUN-2 (68010)
POSIX
target
68000
Raspberry Pi Pico
runtime
–
Web Assembly + Canvas
「まず host上で動かし、最後にtargetに載せる」のは４０年前と同じ


# Page. 21

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

デモ
-
中で動いているのは40年前のRTOS
- track demo
- Comm App


# Page. 22

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

なぜ40年前のRTOSが2026で動かせたか？
-
アセンブラ化されずCのままだった
-
アセンブラで最適化の想定はあったが、パフォーマンス十分でコンペよ
り速かったので見送られた
-
Whitesmiths スタイルで書かれていた
-
typedef int VOID;
-
のような抽象型で書かれていた
この時代はまだ普及していなかった


# Page. 23

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

Whitesmiths C
std.h
https://github.com/hansake/Whitesmit
hs-Ccompiler/blob/main/c_compiler_v22_sr
c/hdrs/std.h


# Page. 24

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

そして今、実機へ


# Page. 25

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

Raspberry Pi Picoへの移植開始
1986年と同じ手順で移植を開始
POSIX版
CPU非依存部分 (Queue / Event )
Raspberry Pi Pico
CPU依存部分
（割り込み・コンテキストスイッチ）


# Page. 26

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

最初のカーネルコードがpicoで動作
実機で確認できたこと
●
●
●
q_insert()
n_delete()
q_delete()
を CHARM-II由来のコードそのまま 実行
●
●
USBシリアル経由で動作確認
Primitive Queueテスト PASS
次のステップ
●
●
●
タイマ割込み
コンテキストスイッチ
タスクスケジューラ


# Page. 27

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

情報発信～フィードバック
-
reddit 海外掲示板
英語
-
r/osdev, r/retrocomputing, r/embedded, r/raspberrypipico
-
母数が多いのでフィードバック来やすい
-
AI出しすぎると露骨なディスりも来る
-
Medium
-
note
-
osdev-jp discordも活用したい！
英語
日本語
slop, slopper, Death to AI
https://medium.com/@noborutakahashi
https://note.com/noborutkhs


# Page. 28

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

今後の進め方
-
Raspberry Pi Picoでの実装
-
-
POSIX, WebAssemblyで動かしているので、直接Picoやるより早いはず！
ライセンスクリーン化
-
現代版仕様で全体を書き直し
-
github公開
-
グラフィックスをどうするか？
-
picoに直接ディスプレイをつなぐと、解像度低い＆小さい
-
シリアルでPCに情報を送ってWASMで表示させる方法も検討


