Slide 1

Slide 1 text

OSC展示とLUNAとNetBSD オープンソース カンファレンス2024京都 久しぶりのセミナーです Izumi Tsutsui [email protected] X (Twitter): @tsutsuii Mastodon: @[email protected]

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

OSC京都展示まとめ  今年で12回目 ●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とか

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

● (LUNA88Kの写真を撮っていた方に LUNA-IIを勧めたところ)  「こっちは会社にあるからいいや」 ● 「今年はLUNAないかと思ったらあった」 ● 「おーなつかしいのが置いてあるなあ」 「6001ですか、LUNAですか」 「いや、LUNAなんですけど」 LUNAユーザの方②

Slide 19

Slide 19 text

しかし、コロナ禍で 2020年〜2022年の OSC開催は オンラインのみに……

Slide 20

Slide 20 text

2023年は ようやく 展示のみ復活

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

● 「LUNAをどうやって   液晶につないでいるのか?」 →これ、去年(2023年)にも質問されました ● 「NEWSも見たいです!」 → 今年(2024年)はNEWSも持ってきました! ディープな方々

Slide 23

Slide 23 text

今年2024年は セミナーもある ということなので 適当にスライド 作りました

Slide 24

Slide 24 text

NetBSD 10.0  今回もリリースまで時間かかりました…… ●2024年 3月28日リリース なおnetbsd-10ブランチ作成は 2022年12月16日 ●18回目のメジャーリリース ●Aarch64 サポート等を書かれた 「清水了さんに捧げる」とされています Dedication NetBSD 10.0 is dedicated to the memory of Ryo Shimizu, who passed before it could be released. ryo@'s contributions to NetBSD, to our community, to ARM and networking (and indeed, to this release) were beyond immense. We are all deeply saddened at the loss of an excellent technical contributor and good friend. https://www.netbsd.org/releases/formal-10/NetBSD-10.0.html

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

LUNAの SubCPU PSG PAMを使った audio サポートについては 2018年に @moveccrさんが セミナーで解説をされていますが、 NetBSD 10.0で正式に入ったので あらためてざっくり紹介します

Slide 27

Slide 27 text

前提知識 https://x.com/tsutsuii/status/802351863836250112

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

OSC2016広島展示 https://x.com/tsutsuii/status/802686385987538944 サブCPU PSG で PCM音声再生

Slide 30

Slide 30 text

OSC京都2018セミナーでの @moveccr さんのスライドより  展示相乗効果? ●「すごく面白そう」 ●「でももっときれいな音が出るはず!」 ●音質が悪い原因 →LUNAのH/W回路の問題 ●「PSG PAM方式」により解決 ●NetBSDのaudioドライバ改良をされた @isaki68kさんとともにaudioドライバ化 https://www.slideshare.net/slideshow/luna-108741757/108741757

Slide 31

Slide 31 text

OSC京都2018セミナーでの @moveccr さんのスライドより https://www.slideshare.net/slideshow/luna-108741757/108741757

Slide 32

Slide 32 text

OSC京都2018セミナーでの @moveccr さんのスライドより https://www.slideshare.net/slideshow/luna-108741757/108741757

Slide 33

Slide 33 text

これは絶対に NetBSD 10.0 に入れなくては! と思いつつサボってしまっていたのですが netbsd-10がブランチされる前に ということで OSC2022京都前に ソースコードを整備してもらい 2022年6月に NetBSD本家にコミットしました

Slide 34

Slide 34 text

バリバリ開発作業をした年は 作ったものをそのまま展示するだけ と思いつつ、 展示デモを準備するだけでも いろいろ大変だったりするので どんな感じなのかをざっくり紹介

Slide 35

Slide 35 text

OSC京都 2024年  初代LUNAでmastodon + PSG PAM演奏  おまけのNWS-3260 https://x.com/tsutsuii/status/1816853922222604604

Slide 36

Slide 36 text

展示準備① NetBSD OS更新  備えあれば憂いなし? ●LUNAは NetBSD 10.0が出た直後の4月に  アップグレードしてました ただし、だいたい一晩はかかります ● NWS-3260はしばらく作業できておらず  3日前の 7月23日に NetBSD 9.4 に更新 こちらはもう少し速かったような 10.0_RC2のときはなんか動きが変だったのでまた調べます

Slide 37

Slide 37 text

展示準備② 展示デモ ネタだし  昔Twitter 今は Mastodon/Misskey ●「SNSのタイムラインを流す」デモ ●コンテンツ用意が不要という利点 ●遅マシン用クライアントもあります ● sayaka : CUI Misskeyクライアント ●nanotodon: CUI Mastodonクライアント ●PSG PAMは…… audioplay(1)で適当に  wav音楽ファイル再生で考える

Slide 38

Slide 38 text

sayaka  CUI Misskey クライアント https://github.com/isaki68k/sayaka ターミナルに特化したMisskey ストリームクライアントです。 元々はTwitterクライアントと して開発されていましたが、 2023年Twitter APIサポート終了 とともにMisskeyクライアントとして生まれ変わりました。 ターミナルでのsixelグラフィック表示をサポートするとともに、 「X68030/25MHz、メモリ12MHzでも快適(?)動作。」 と公式説明にある通り画像処理や減色処理についても軽量動作す るよう工夫が凝らされています。

Slide 39

Slide 39 text

nanotodon  CUI Masotdonクライアント https://github.com/taka-tuos/nanotodon 「OSCでの謎マシンデモで  使えるように」 というコンセプトで開発された、 C99実装のテキストベース 軽量Mastodonクライアントです。 バージョン 0.3.1までは ncursesを使っていましたが、 新バージョン 0.4.0では「OSC京都展示用に」と、 sixelグラフィックスサポートに向けて ncursesを使わない実装に変更され、 sixelグラフィックスの実験的サポートも追加されています

Slide 40

Slide 40 text

展示準備③ デモ用パッケージバイナリビルド  「何をするにも遅すぎる」問題 ●LUNA (68030 20MHz 16MB)でビルドすると  永遠に終わらない? ●NetBSDは m68kマシンはすべてバイナリ互換 ●「速くて大容量メモリNetBSD/m68kマシン」 ➔2017年までは LUNA-II (68040 25MHz 64MB, SSD SATA→IDE→SCSI変換)  2018年〜は ATARI互換機 Milan (68040 25MHz 128MB, PCI-IDE付き)

Slide 41

Slide 41 text

展示準備③ デモ用パッケージバイナリビルド  MC68040 25MHz 128MB でもこれくらいかかります ●Perl-5.38.2: 2日+9時間 (各種ビルドツールで必要) ●curl-8.5.0: 10時間 (nanotodonで必要) ●nanotodon は 20分くらいで優しい ●sayaka は C++17なので 128MBはやや苦しく 4時間くらい 気を使っていただいてます⇒ ●cmake-3.28.1: 10日23時間 今どきのツールがツラい

Slide 42

Slide 42 text

nanotodon on LUNA 問題  ビルド後の nanotodon 0.4.0 テスト ●Sun3/60 (MC68020 20MHz 24MB)では  X.org上でも問題なくタイムライン表示可能 ●初代LUNA (MC68030 20MHz 16MB) + mlterm では  いつまでもタイムラインが出ない?  ……と思ったら5〜7時間後に出ている ●RAM 8MBの差はあるが、Xなしでもダメなの?

Slide 43

Slide 43 text

nanotodon on LUNA 問題  2013年 OSC 「LUNAでTwitter」のスライドより 11年前のこれが頭をよぎったり

Slide 44

Slide 44 text

nanotodon on LUNA 問題  調査の結果 ●wiresharkでモニタ調査等したが、  実はTLS1.3認証でも問題はなかった ✔タイムアウト300秒に対して 40秒くらい ✔なおタイムアウトが数秒だと RSAでないと無理 ●ビルドが遅いので後回しにしていたが、  進行状況ログを入れたところ  起動時のタイムライン取得(20トゥート分)の  JSON処理が重くスラッシングしてると判明 ●nanotodonに「TL toot取得数制限option」を  追加してもらって解決!

Slide 45

Slide 45 text

展示準備③ デモ用パッケージバイナリビルド  NetBSD時間軸 ●展示の3か月くらい前にビルド開始しましょう ●NetBSD 10.0で gcc10になりまた遅くなった? ●NetBSD/m68k は 68040だと仮想アドレス 480MB制限があり、ビルドできないものも  →gnutlsなど。それらは 030 256MBのATARI TT030でビルド ●エラー時の修正はさらに大変 ●今だとエミュレータのほうが速いかも

Slide 46

Slide 46 text

 GIMPとLibreOfficeとかで ●モノクロ減色や16色減色スキル・ツールも必要 ●ステッカー作りの経験が役に立ったり ●展示説明資料はだいたい当日朝直前ですね…… (締め切り駆動) 展示準備④ デモ用壁紙とか 展示説明とか

Slide 47

Slide 47 text

●イベント駆動開発 ●イベント駆動ビルド・デバッグ ●展示を見て作ってくれる方 ●展示のために作ってくれる方 ●展示を見て喜んでくれる方 いつもありがとうございます! まとめ