Upgrade to Pro — share decks privately, control downloads, hide ads and more …

digital VAX, NetBSD/vaxの歴史と VAXstation 3100/m30...

digital VAX, NetBSD/vaxの歴史と VAXstation 3100/m30 展示 / OSC2024Osaka

OSC2024 大阪 の NetBSDセミナーで発表した『digital VAX, NetBSD/vaxの歴史と VAXstation 3100/m30 展示 / OSC2024Osaka』のスライドです。
発表時のものから一部体裁と誤字その他を修正しています。

Izumi Tsutsui

January 27, 2024
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. VAX 11/780  1977年 …ボイジャー1号打ち上げの年 •メモリ空間 512MB! •実メモリも 8MB 搭載

    •5MHz 2KBキャッシュ •NECワンボードマイコン TK80が出たのは1976年 Joe Mabel, CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=7469039 による
  2. VAXの歴史  OSのVMSユーザーが多かった? •1985年 MicroVAX II •1987年 VAXstation 3100 •1991年

    VAXstation 4000 •1999年にEOLアナウンス https://web.archive.org/web/20000815201016/http://www.compaq.com/alphaserver/vax/vax_letter_final.html/
  3. NetBSD/vaxの歴史  もちろん 4.4BSD由来です •1994年8月 NetBSD本家にマージ VAX 11/750 のみサポート •1995年1月

    MicroVAX サポート •1996年 VAXstation 2000,3100サポート •1998年 VAXstation 4000/60サポート •2000年6月 VAX8200 SMPサポート! https://www.netbsd.org/ports/vax/history.html VAX 11/750 Retro-Computing Society of Rhode Island - 投稿者自身による著作物, CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=4894062 による
  4. フレームバッファドライバ 「だいたい同じ構造」なら共通化されてる NetBSDだと rasops や wscons ドライバがある •文字表示、カーソル描画 •行内編集 つまり部分的横スクロール

    •右端での折り返しと下端での縦スクロール •描画のためのVRAMの読み書き •画面消去やエスケープシーケンス等の 特殊描画や表示文字切り替え 一般的なVRAM構成であれば VRAMアドレス、画面サイズ、bpp 等の個別パラメータだけ渡せば rasopsドライバが全部やってくれる VT100のような端末エミュレータの 表示処理は wsconsドライバが全部 やってくれる
  5. VAXモノクロフレームバッファ問題  「幅8ドットのフォントしか使えない?」 • かつてのPC-9801などを含め、 1bpp つまり 1ドット=1ビットのVRAMでは 「1バイトのMSB側ビットが画面の左側のドット」 「1バイトの

    LSB側ビットが画面の右側のドット」 というのが普通 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |0 1 1 1 1 1 1 1|1 0 0 0 0 0 1 0|0 1 1 1 1 0 0 0|0 1 1 1 1 1 1 1|0 0 0 0 0 0 0 0| MSB LSB MSB LSB MSB LSB MSB LSB MSB LSB 7F 82 78 7F 00
  6. | | | | | | | | | |

    | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |1 1 1 1 1 1 1 0|0 1 0 0 0 0 0 1|0 0 0 1 1 1 1 0|1 1 1 1 1 1 1 0|0 0 0 0 0 0 0 0| MSB LSB MSB LSB MSB LSB MSB LSB MSB LSB FE 41 1E FE 00  「LSB First!」 • VAX(というかDEC?)のマシンでは 1bpp つまり 1ドット=1ビットのVRAMでは 「1バイトの LSB側ビットが画面の左側のドット」 「1バイトのMSB側ビットが画面の右側のドット」 というハードウェア接続になっている VAXモノクロフレームバッファ問題 •しかし、バイト列は「 (演算上の) MSBバイトが左」のまま
  7. 次はX.orgサーバー?  展示デモで日本語を出すために •Xサーバーでも「通常のVRAMでNetBSD的なAPI」なら 「xf86-video-wsfbドライバが共通に使える」 •とりあえず NetBSD/vax Xorgサーバーを動かしてみる •が、libfb.soのモジュールがないと怒られる ➔旧X.org

    1.10の機種用のファイルリストがバグってた •直したら今度はいきなりカーネルが落ちる ➔フレームバッファドライバのmmap実装が間違ってた •それも直して再度X.orgサーバーを起動すると……