NetBSD/x68k 移植の思い出話

沖さんの30年前のNetBSD/x68k 移植の思い出話 http://www.jp.netbsd.org/ja/ports/x68k/
14
勝(まさる) @masaru0714

イメージをちゃんと書けてないのか、正しく読めてないのか、レイアウトが想定と合ってなくて正しい値を扱えてないのか。複合原因だったのかも含めてまるっと忘れましたが、けっこう長いことmountできなかった気がします。

2023-06-07 20:38:21
勝(まさる) @masaru0714

mountできたと思ったら次は init died でもようやくユーザープロセスだー。ここも長かった。コンテキストスイッチをそもそも実装し忘れてたとか(アホですね)、トランポリンコードがバグってたとか、execveからのマップ部分がバグってたとか、いろいろあった気がする。

2023-06-07 20:41:07
勝(まさる) @masaru0714

起動して症状見て、ソース広げてデバッグコード仕込んだりしてビルドして、起動して情報収集して、ソース広げて対策コード書いてビルドして、起動したらやっぱりまだおかしくて、の繰り返し。繰り返し。ずっとずっと繰り返してました。ICEもリモートデバッガもない。ひたすらトライアンドエラー。

2023-06-07 20:44:02
勝(まさる) @masaru0714

で、ようやくシングルユーザブートでshを起動できたのが9月。日付は忘れましたが、めっちゃ嬉しかった。苦労が報われた瞬間でした。たぶん速報をBBSに書き込んだと思うので、ログが残ってる人は探すと正確な日付が出てくるんじゃないかと。

2023-06-07 20:49:18
勝(まさる) @masaru0714

そのあと、SCSIドライバのwriteのほうを動かして、マルチユーザブートできるようになって。このあたりからデバイスドライバ(ADPCMとか)を書いてくれる人が現れたりして、大変ありがたかったです。

2023-06-07 20:55:00
勝(まさる) @masaru0714

NetBSD上でセルフビルドでカーネルを作って、BSD ffs上に置けるようになって、だったら直接起動できるようにするかってことでブートローダを書いたんだったかな。disklabelどうする問題を考えたのはいつだったか。このときは結局Human68kのパーティション情報を使ってfake disklabel。

2023-06-07 20:57:24
勝(まさる) @masaru0714

で、ブートローダを書いて。Human68kの複数パーティションがsd0a,b,d,e,とかに割り当てるようにして。(当時はcとdの使い分けとかまだなかったと思う)

2023-06-07 20:59:40
勝(まさる) @masaru0714

5月にNIFTY-Serve FUNIXからNetBSDカーネルのソースコードをダウンロードした時は初出の0.8でしたが、その後開発版(NetBSD-current)は0.8aとして更新が続き、最初に起動したのも0.8aだったと記憶しています。

2023-06-07 21:01:03
勝(まさる) @masaru0714

で、userland含めて全ビルドしてみたり、newfsした領域をmountしてファイル配置したり、そしたらa.outのフォーマットがamigaと微妙に食い違ってて調整し直したりとかやった記憶。

2023-06-07 21:03:03
勝(まさる) @masaru0714

このころ、秋葉原のジャンクショップでQIC-150ドライブが売られてて、これを買ってきてX68030につけてました。当時NEC勤務だった友人がNetBSD-currentのソースコードをQIC-150で持ってきてくれて(お互い田町勤務だったので昼休みとか仕事帰りに会って)、それを読むのに使ってました。

2023-06-07 21:06:25
勝(まさる) @masaru0714

そんなこんなで、初めて動くBSDを触ったのが自分が手がけた移植版という珍妙なことをやってました。動き出してから本当に色んな人の支援を頂いたと思います。たしかシャープさんからもMOのメディアを頂いたことがあったと記憶しています。その節は大変お世話になりました。

2023-06-07 21:11:44
勝(まさる) @masaru0714

040turboをお借りして、68040対応の作業もやったなあ。それで040turboの書籍にページを頂いて少し解説を書いたのが、ぼくの書籍執筆デビューのはずです。たぶんいま読むと恥ずかしくなるようなこと書いてそうな予感がします。

2023-06-07 21:14:28
勝(まさる) @masaru0714

68040対応はけっこう大変だった記憶があります。いちおうAmigaもそのころには040対応してたはずなのでそこからコードを拝借した気はするのですが、030と比較するとページテーブルの段数が違うのと浮動小数点の扱いとかあとキャッシュ周りも違うので、あれこれやったと思う。具体的なことは忘れた。

2023-06-07 21:18:11
勝(まさる) @masaru0714

X11を移植された方もいらして、関わってた人には忘れることのできない「FC2ピンを折る」。特権モードじゃないとVRAMに書き込みできない問題を力技で無理やり解決笑

2023-06-07 21:24:07
勝(まさる) @masaru0714

でもって、NetBSDの書籍を出しませんかと打診があって、何人かの共同執筆で書籍を出すことになり、いろいろやりました。manページの日本語訳を(やっつけでしたが)用意したり、CD-ROMに収録したり。当時は二子玉川の駅前のマクドナルドでThinkPad 230Cs広げてカタカタ原稿書いてました。

2023-06-07 21:30:05
勝(まさる) @masaru0714

書籍の完成の少し前にNetBSD 1.0が公開されて、書籍収録のバージョンはたしかそれじゃなかったかな。はっきり覚えてないから違ってるかもだけど。 その後NetBSD本体の更新に都度追従するのが大変で、本家に入れれば楽できるかなと思いNetBSDのport masterになったのが1996年5月ころのはず。

2023-06-07 21:37:18
勝(まさる) @masaru0714

同意書にサインして海外にFAXしたっけ。イマドキだとオンラインですよね。。。 自分の負荷軽減が課題だったので、その後OpenBSDっていうのやるんだけどx68kどうですかと言われた時は申し訳ないけどと言ってお断りしました。。

2023-06-07 21:39:48
勝(まさる) @masaru0714

その後しばらくport masterやってましたが、後継の人にお任せしたのいつだったかな。。 NetBSD自体にはもう少し長く関わりました。RAIDカードのドライバをFreeBSDから移植したりとか。 これがきっかけで転職してSEILの開発に携わったりしました。NetBSDがあったからいまの自分がある。そんな感じ。

2023-06-07 21:53:15
勝(まさる) @masaru0714

移植に没頭してる時は 起床。テストしてビルド仕掛ける。 出社。お仕事。fj見たり投稿したり。 帰宅。デバッグ、ビルド、テストの繰り返し NIFTYとか梁山泊とか読み書き。 ビルド仕掛けて寝る。 をひたすら繰り返してました。プライベートはNetBSDにがっつりかかりきりで、それが充実した日々でした。

2023-06-07 21:59:49
勝(まさる) @masaru0714

時系列前後してますが、個人向けインターネットサービスプロバイダがいくつか立ち上がってインターネットマガジンが発売されて、一番安いのベッコアメだけど最安はうーんと思ってリムネットと契約してNetBSDでPPPoE接続したっけ。。

2023-06-07 22:03:47
勝(まさる) @masaru0714

その前にNIFTY-ServeのFENICS ROAD2にシリアル接続してた。イーアクセスのPPPoAだった時期もある。PPPoAの回線にフレッツの機械つないだら局側機器のモードが(未対応のPPPoEに)変わってPPPoAの機器に戻しても二度と繋がらなくなってサポートに泣きついたっけ(NetBSD関係ない笑)

2023-06-07 22:07:46
勝(まさる) @masaru0714

NetBSD/x68k関連だと、SCSIにぶら下がるNIC(もともとは確かMac用)というけっこうデカブツをお借りしたけれど、結局ドライバ作れなかったとかあったなあ。。。 ひとまずここまで。だらだら駄文をお読みいただきありがとうございました。

2023-06-07 22:10:02