Slide 1

Slide 1 text

NetBSDの解説と NetBSD/luna68kの歴史と ついでにPC-6001展示 オープンソースカンファレンス 2025 Tokyo/Spring 関西ではいつも展示してるんですが関東は初登場? Izumi Tsutsui tsutsui@NetBSD.org Twitter: @tsutsuii Mastodon: @tsutsuii@social.mikutter.hachune.net

Slide 2

Slide 2 text

今回のスライドの大半は 昨年のOSC京都および 今年1月のOSC大阪 他の スライドを流用してます

Slide 3

Slide 3 text

いつものように OSCのページの セミナーセッション情報 を見ると、今回は……

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

ということで、 十分に濃い方が 聞きに来られている という前提(?)で お話しします

Slide 7

Slide 7 text

●聴講者が全員PC-6001を知ってる ●セミナー後にPC-6001ソフト開発 の思い出を語る方 ●展示ブースで Z80マシン語の話 が始まる ……みたいな感じでした なお、昨年 11/9 の大阪南港ATC 関西オープンフォーラムでは

Slide 8

Slide 8 text

昨年のOSC愛媛で 「NetBSDのご紹介」 に沿ったスライドを 書いたので 今回も再放送から

Slide 9

Slide 9 text

BSDとは? ●Berkeley Software Distribution ●カリフォルニア大学バークレー校 で開発されたUNIX系OS ●’70年代 UNIX研究として開発開始 ●’80年代 ネットワーク機能、 仮想記憶など現代のOSの 基礎を築く ●UNIXの進化と普及に貢献

Slide 10

Slide 10 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases

Slide 11

Slide 11 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases 1BSD 1978年3月 PDP-11

Slide 12

Slide 12 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases 2BSD 1979年5月 viエディタ

Slide 13

Slide 13 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases 3BSD 1980年3月 VAX 仮想記憶

Slide 14

Slide 14 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases 4.0BSD 1980年10月 signal機構

Slide 15

Slide 15 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases 4.1BSD 1981年7月 性能強化

Slide 16

Slide 16 text

BSD timeline (1) https://github.com/FabioLolix/BSD-Timeline/releases 4.2BSD 1983年8月 TCP/IP

Slide 17

Slide 17 text

BSD timeline (2) https://github.com/FabioLolix/BSD-Timeline/releases 4.3BSD 1986年4月 VAX以外の 複数機種対応

Slide 18

Slide 18 text

BSD timeline (2) https://github.com/FabioLolix/BSD-Timeline/releases 4.3BSD Net/2 1991年6月 80386対応

Slide 19

Slide 19 text

BSD timeline (2) https://github.com/FabioLolix/BSD-Timeline/releases 386BSD 0.0 1992年2月 IBM-PC用

Slide 20

Slide 20 text

●Intel 80386プロセッサ向け ●初のオープンソースUNIX系OS? ●4.3BSD Net/2ベース ●企業や大学が主だった UNIX系OSが一般(?)の ユーザでも利用可能に ●実は趣味プロジェクト だった、という話 386BSD

Slide 21

Slide 21 text

●いずれも386BSDをベースとした パッチ集として開始  FreeBSD ➔ 性能重視、x86 PCをターゲット  NetBSD ➔ 設計重視、全CPUをターゲット NetBSD, FreeBSD

Slide 22

Slide 22 text

●“Of course, it runs NetBSD” ➔特定の機種に依存しない設計 ●“Reasonable Goal” ➔性能より「理にかなった」設計 ●仮想記憶やデバイスドライバ等の 一貫性を持つインタフェース設計 NetBSDの特長 

Slide 23

Slide 23 text

●いろんなCPUやデバイスで動く ➔組み込み系での採用例が多い NetBSDの特長 

Slide 24

Slide 24 text

NetBSD 10.1でのサポート機種 トップページはいったんこれだけ 変なマシンばっかり載せてると 「NetBSDって古いマシンでしか動かないんですよね?」 とか言われるのが嫌、という一部の中の人の主張が…… https://www.netbsd.org/

Slide 25

Slide 25 text

NetBSD 10.1でのサポート機種 トップページはいったんこれだけ 変なマシンばっかり載せてると 「NetBSDって古いマシンでしか動かないんですよね?」 とか言われるのが嫌、という一部の中の人の主張が…… https://www.netbsd.org/ 本題(?)は ここを クリック

Slide 26

Slide 26 text

NetBSD 10.1でのサポート機種 “Tier I”機種 まあ、これも一部古いですが…… https://wiki.netbsd.org/ports/

Slide 27

Slide 27 text

NetBSD 10.1でのサポート機種 “Tier II”機種 一応これだけのリリースバイナリがあります https://wiki.netbsd.org/ports/

Slide 28

Slide 28 text

NetBSD port maintainer  私 (tsutsui@NetBSD.org) の担当分

Slide 29

Slide 29 text

NetBSDの特長  FreeBSD Press No.12「NetBSDとMI構造」 ●「どんなマシンでも動かせるような   実装になっている」  ということが本質 ●「いろんなマシンで動く」  というのは  「どのマシンに対しても   適用できるよう実装する」  ということの結果に過ぎない

Slide 30

Slide 30 text

●抽象化されたインタフェース実装 NetBSDの特長  https://social.mikutter.hachune.net/@osa_k/112066453265169340

Slide 31

Slide 31 text

NetBSD/news68kは 「プログラミング わからん」 と言いながら 約半年で 移植できました

Slide 32

Slide 32 text

NetBSDサポート機種数の推移 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 0 10 20 30 40 50 60 5 4 3 3 1 4 4 9 12 7 1 2 1 2 1 0 0 0 1 NetBSD ports removed merged kept added YEAR Number of Ports

Slide 33

Slide 33 text

NetBSD移植バブル期 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 0 10 20 30 40 50 60 5 4 3 3 1 4 4 9 12 7 1 2 1 2 1 0 0 0 1 NetBSD ports removed merged kept added YEAR Number of Ports

Slide 34

Slide 34 text

NetBSD全盛期  手段(移植)のためには目的(機種)を選ばない ●「どんなマシンにも適用できる設計」 bus_space, bus_dma, wscons, newconfig 等々の機種に依存しないデバイス実装API ・独自ベンダーH/Wの隆盛と淘汰 PC以外のマシンもそこそこ入手可能に 「このマシンでもNetBSD動くんじゃね?」

Slide 35

Slide 35 text

かつての NetBSD 移植バブル  20数年前の全盛期のNetBSD ・1997年 bebox ・1998年 newsmips macppc next68k sparc64 ・1999年 mmeye evbsh3 hpcmips news68k From Japan From Japan From Japan From Japan From Japan From Japan From Japan

Slide 36

Slide 36 text

かつての NetBSD 移植バブル ・2000年 luna68k arc prep cobalt amigappc arm26 sgimips mipsco dreamcast ・2001年 hpcsh sandpoint hpcarm netwinder sun2 cesfic algor cats evbppc amd64 playstation2 evbarm From Japan From Japan From Japan From Japan From Japan From Japan

Slide 37

Slide 37 text

かつての NetBSD 移植バブル ・2000年 luna68k arc prep cobalt amigappc arm26 sgimips mipsco dreamcast ・2001年 hpcsh sandpoint hpcarm netwinder sun2 cesfic algor cats evbppc amd64 playstation2 evbarm From Japan From Japan From Japan From Japan From Japan From Japan

Slide 38

Slide 38 text

LUNAとは  よしだともこ先生のブロクより LUNAというのは、1980年代から1990年代 の初めごろにかけて、京都に本社を持つ オムロン株式会社が発売していた、 UNIXワークステーションの名前です (その当時、私はこの会社のUNIXワークス  テーション開発部門で働いていました) http://notredameningen.kyo2.jp/e422862.html

Slide 39

Slide 39 text

LUNAとBSD  4.4BSD/luna68k ●純正OSは 4.3BSDベースの UniOS-B SystemVベースの UniOS-Uもあり ●前述の4.4BSDには LUNAサポートの  ソースコードあり ➔「次はLUNAですね」と複数の開発者に 狙われたのは自然な流れでした

Slide 40

Slide 40 text

NetBSD/luna68kの歴史①  25番目(?)のNetBSDサポート機種 ●2000年1月5日に本家CVSコミット ●12月のNetBSD 1.5 で正式リリース ところが……

Slide 41

Slide 41 text

NetBSD/luna68kの歴史②  カーネル起動問題 ●LUNAの ROM上のファームウェアが  HDD上のファイルシステム上の  a.outバイナリカーネルを直接ロード ●2002年の NetBSD 1.6 において  バイナリが ELF形式に移行 ➔ NetBSD/luna68k 1.6 以降 「カーネルがロードできない」問題

Slide 42

Slide 42 text

NetBSD/luna68kの歴史③  動くマシンがなくても…… ●NetBSD 1.6 以降リリースバイナリは  クロスビルドで作成される ➔起動できなくてもサポートは続く ●以降、news68k他の m68k と合わせ  カーネルAPI変更やビルド維持などの  メンテを地味に継続

Slide 43

Slide 43 text

復活は OSC2011関西@京都  NetBSD/m68k Never die! ・元々は「MC68030 workstation コラボ展示」 ・ご当地ということで LUNAをサプライズネタに 詳細はこちら http://www.ceres.dti.ne.jp/tsutsui/osc2011kyoto/index.html

Slide 44

Slide 44 text

NetBSD/luna68k復活への道  勢いだけの展示ネタでした ●2011年4月のOSC神戸で m68kの  X68030 と ATARI TT030 を展示 ●「次は京都だからLUNAか」と、  過去MLで見かけた方にお願いして  LUNA実機を貸していただく ●ELF→a.outバイナリ変換を用意し、  SCSIドライババグを1つ修正して、  それだけで無事に復活!

Slide 45

Slide 45 text

 OMRON関係の方々に予想以上の反響 ・実行委員長のよしだともこ先生が大喜び ・2日目にLUNAグッズを持ってきてくれた方も http://twitpic.com/5qeizb http://movapic.com/ebijun/pic/3812352 OSC京都展示での反響

Slide 46

Slide 46 text

OSC京都展示まとめ  昨年の2024年で11回目 ●2011年 NetBSD/luna68k復活展示 ●2012年 LUNA-IIも復活しました展示 ●2013年 LUNA+mlterm-fb で Twitter ●2014年 LUNA-II mikutter「今年はカラーだ!」 ●2015年 LUNA88kとコラボ展示 ●2016年 LUNA SubCPUの PSG演奏 ●2017年 LUNA+PC-6001 PSGx2の6重和音演奏 ●2018年 @moveccrさん LUNA PSG PAM再生 ●2019年 LUNA-IIで Mastodon タイムライン ●2023年 X.org 256色サーバーとMPlayerとか ●2024年 LUNA + NWS-3260 SNS TLデモ

Slide 47

Slide 47 text

OSC京都 2012年 https://twitter.com/tsutsuii/status/232152205275324417  LUNA-II 寄贈お礼報告コラボ

Slide 48

Slide 48 text

OSC京都 2013年 https://twitter.com/tsutsuii/status/363490195179442176 mlterm + LUNAで Twitter / mikutter

Slide 49

Slide 49 text

OSC京都 2014年 https://twitter.com/tsutsuii/status/363490195179442176 「今年はカラーだ!!!」mlterm-fb

Slide 50

Slide 50 text

OSC京都 2015年 LUNA88K2 + LUNA-II 夢の共演

Slide 51

Slide 51 text

OSC京都 2016年 https://twitter.com/ebijun/status/758858671329726464 サブCPU Z80で P6ドライバPSG演奏

Slide 52

Slide 52 text

OSC京都 2017年 PC-6001+LUNA PSG×2台 6重和音演奏

Slide 53

Slide 53 text

OSC京都 2018年 @moveccrさんのLUNA PSG PCM再生

Slide 54

Slide 54 text

OSC京都 2019年 Mastodonタイムライン by nanotodon

Slide 55

Slide 55 text

2019年で9回目になり 「そろそろネタ切れ」 「LUNAでいいのか」 などと思いつつ、 展示ブース準備で netstat コマンドで ネット接続確認 をしていたところ……

Slide 56

Slide 56 text

ユーザーの方の声 “LUNAが  IPv6の表示を出している のを見るというのは 感慨深いです” ありがとうございます! うれしくて急遽スライド作って翌日セミナーで話しました これからも続けたいと思いました!

Slide 57

Slide 57 text

OSC京都 2023年 X.org 256色サーバーで MPlayerとか

Slide 58

Slide 58 text

過去に LUNA展示で 頂いた 他のコメント

Slide 59

Slide 59 text

● なつかしい ● LUNAでTwitterできるんですか! ● LUNA88K使ってました ● LUNA-IIに ICEつなげて いろいろやってました ● 「今年はカラーなんですね」 LUNAユーザの方

Slide 60

Slide 60 text

● 「LUNAをどうやって   液晶につないでいるのか?」 →これ、4回くらい質問されてます ● 「これはフレームバッファに  直接書いてるんですか?」 →これも2回くらい質問されました ● 「このフォントはNEWSのフォント」 →展示デモで jiskan24.pcf を使ってたので……  次の年からはLUNAフォントを準備しました ディープな方々

Slide 61

Slide 61 text

過去のOSC東京での NeXT station展示や ATARI TT030展示でも わりと濃いコメントを いただいていたので 楽しんでいただければ

Slide 62

Slide 62 text

NetBSD/luna68k 10.0 新機能一覧  OSC展示したものも OSC休止中作業のものも ●SubCPU PSG PAM audio (2018年展示) ●X.org 256色サーバー (2023年展示) ●フレームバッファコンソール高速化 ●キーボードのLED制御とBEEP音制御 昨年12月に NetBSD 10.1 も出ました 地味ながらもまだまだ頑張っています

Slide 63

Slide 63 text

最後にむりやり LUNAと PSGと PC-6001

Slide 64

Slide 64 text

前提知識

Slide 65

Slide 65 text

OSC2016京都展示(再掲) https://twitter.com/ebijun/status/758858671329726464 サブCPU Z80で P6ドライバPSG演奏

Slide 66

Slide 66 text

https://www.nicovideo.jp/watch/sm31979305 OSC2017京都 PC6001+LUNA

Slide 67

Slide 67 text

PC-6001マスタ・LUNAスレーブ ●PSG演奏ドライバは2ms割り込み駆動 ●割り込みでジョイスティックポートに 外部駆動信号を出力 ●それをLUNAのシリアルポートに接続 ●LUNAサブCPUのシリアル割り込みで LUNAのPSG楽曲を同期演奏 ……という誰にもわからない デモ展示をやってたのでした

Slide 68

Slide 68 text

というわけで NetBSDとは 直接関係なく遊んでいた PC-6001デモも持ってきました

Slide 69

Slide 69 text

●「どんなマシンでも動く設計」 ●「移植のためには機種を選ばない」 ●LUNAを始めとしたマイナー機種も  個人レベルでメンテ可能 ●イベント駆動開発 ➔展示のためにネタを考えると  いろいろとがんばれます まとめ