FreeBSD(98) の開発について 平成20年(2008年)09月12日 (金) _________________________________________________________________ このドキュメントを運用した結果に関し、FreeBSD(98) 移植関係者および筆者 は一切責任を負いません。 1. FreeBSD(98) の開発計画を知るにはどこにたずねたらいいですか? FreeBSD(98) 移植チームは、すでにリリースされたもの以外の公開時期をまっ たく知りません。いつまでに次のリリースを出すかといったことはまったくわ かりません。もちろん、PC/AT 版のリリースにあわせ、常に最新版の公開に向 けて作業を行なっていますが、公開時期を事前に約束することはできません。 完成した時が公開時期です。 PC/AT 版との同時リリースには、PC-98 固有のソースコードを完全に PC/AT 版 のソースツリーにマージすることが重要です。現在は、kernel のマージは、ほ ぼ完了しているのですが、userland (fdisk や vidcontrol 等) および release (インストーラ) は不完全です。また、インストーラのテストやドキュ メントの日本語訳の時間等も必要となります。 リリースまでの時間短縮のため、より多くの開発協力者を募集します。 2. FreeBSD(98) の開発のお手伝いをしたいのですが、どこに連絡すれば良いでし ょうか? 移植チームは慢性的に人手不足なので、移植のお手伝いをしたいという方は大 歓迎です。移植チームへ参加を希望される方は、 <URL:mailto:FreeBSD98-hackers@jp.freebsd.org> に入会希望であることを明 記し、簡単な自己紹介を書いたメールを送って下さい。このアドレスは移植チ ームの Mailing List そのものなので、"help" や "subscribe" とだけ書かれ たメールを送られても何もできません。 また、この Mailing List は、開発作業に参加して頂けると判断できる方のみ を新規登録しています。現在の開発体制では、メンバが相互に顔を突き合わせ ることがほとんどありません。したがって、まったく実績のない方の場合には、 移植チームとしても判断が付きかねますので、なるべく FreeBSD98-testers ML への参加や、移植チームへのパッチ/情報提供で実績を積むといった方法を取 って頂けると幸いです。 また、移植チームへの寄付等の相談は、 <URL:mailto:FreeBSD98-core@jp.freebsd.org> で受け付けています。ハードウ ェアメーカからの技術情報の提供の申し出もあると嬉しいです。 なお、X Window System については、FreeBSD(98) と一緒に配布されることが 多いのですが、開発は X98 core team という別プロジェクトで行われています。 未対応のビデオボードのサーバを開発したい等、X 関連の開発の協力の申し出 は、<URL:mailto:x98@mech.titech.ac.jp> までお願いします。 3. FreeBSD(98) の開発で特に必要とされる作業は何ですか? 以下のような作業をして頂ける方を特に募集しています。詳細は、移植チーム <URL:mailto:FreeBSD98-hackers@jp.freebsd.org> へメールで問い合わせて下 さい。また、これ以外にもバグレポートや動作テスト等、さまざまな点で協力 者が必要です。 ビルド担当者 FreeBSD(98) をリリースするためには、その膨大なソースコードをコン パイルしてバイナリパッケージを作成する必要があります。これをビル ドといいますが、当然 CPU が速くメモリや HD の容量が大きいほど作 業が早く済み、結果として速やかなリリースが可能となります。 FreeBSD(98)-current 開発者 8.0-current といわれる、FreeBSD-8.0 となるべく開発されているソー スツリーです。7.0-current 時代同様、ダイナミックな変更が入ること が予想され、開発には手間がかかります。FreeBSD(98)-current とは何 ですか?も参照して下さい。 RELENG_6, RELENG_7 ブランチ開発者 6-stable や 7-stable と呼ばれていて、次の FreeBSD 6.x や 7.x と なるブランチです。現在の FreeBSD は、8.0-current と 6,7-stable の 3 本立てです。6.0-stable には積極的な機能追加は行われないこと になっていますが、current には新機能が追加されていくので、stable ブランチと current の差はどんどん大きくなっていきます。従って、 6-stable や 7-stable のほうに対しても PC-98 対応のコードを維持す る作業が別途必要です。 新規デバイスドライバ開発者 FreeBSD(98) で対応していない周辺機器が、まだまだたくさんあります。 これらのデバイスドライバは、その周辺機器を持っている方自身が開発 作業をして頂けるのが一番です。特に、同じチップを使ったボードのド ライバが既にあるといった場合は、そのドライバをベースに、ほんの少 しの変更で使用可能となることがありますし、そのデバイスが PCI バ スの場合は、PC/AT のドライバそのもので動作する可能性が高いです。 また、NetBSD/pc98 では、FreeBSD(98) よりも多くの周辺機器に対応し ていますので、NetBSD/pc98 からドライバを移植するという方法もあり ます。 各種ドキュメント更新担当者 現在の人手不足の状況では、どうしてもカーネル等のソースコードをい じる作業が優先され、ドキュメントの修正は二の次になりがちです。さ らに、LINT や ERRATA への PC-98 固有事情のフォローも出来ていませ ん。そこで、FreeBSD(98) 付属のドキュメントを、現状にあった内容に 更新して頂けると幸いです。また、ここは説明不足だとか、もっと別な 表現をすれば誤解が防げる等といったような意味での修正も必要でしょ う。これらの作業を行うための FreeBSD98-doc メーリングリスト <URL:mailto:FreeBSD98-doc@jp.freebsd.org> があります。 FreeBSD(98) 公式 WWW ページ作成担当者 移植チームでは、FreeBSD(98) 公式 WWW ページを <URL:http://www.jp.freebsd.org/pc98/> で公開していますが、そのコ ンテンツ (内容) を作成/保守して下さる方を募集しています。上記ド キュメント更新同様 FreeBSD98-doc メーリングリスト <URL:mailto:FreeBSD98-doc@jp.freebsd.org> で作業を行っています。 4. current や stable を追っかけていないと、開発に協力できないのですか? そんなことはありません。既にリリースされているものをベースにしても開発 作業はできますし、実際そのようにして開発している方もいます。ただし、そ の場合は、自分が変更した内容が current や stable に対しても有効かどうか、 ソースを anonymous FTP 等で取り寄せてチェックして頂けると幸いです。 5. FreeBSD(98)-current とは何ですか? FreeBSD(98) 移植チームは、FreeBSD-current ベースの FreeBSD(98) を公開し ています。これは、現時点での最新版のソースツリーであり、自力でカーネル を含む全システムをコンパイルすることによって入手するものです。決してバ グフィックス版ではありません。また、常にその内容が変化しているため、安 定動作しないことや最悪コンパイルすらできないこともあり得ます。 FreeBSD(98)-current では、FreeBSD-current で PC/AT 用に行われた変更を、 PC-98 に適応して同期をとるという作業が行われます。しかし、作業者が使用 していないデバイスや機能に関しては、仮に作業ミスがあったとしても気が付 かないことがあります。従って、なるべく多くの方が FreeBSD(98)-current を 入手し、その作業を分担して頂けると、スムーズな開発が行われることになり ます。これが FreeBSD(98)-current を一般に公開している理由です。 より詳しい情報を得るには「最新の FreeBSD(98) を追いかける」を参照してく ださい。 6. FreeBSD(98) の開発で困っていることは何ですか? 以下のものに関する知識をお持ちの方は、是非開発への協力または情報の提供 をお願いします。 ata ドライバ 本家はかなり以前に wdc ドライバを廃止し ata ドライバへ移行し、 6.0-RELEASE で正式に廃止になりましたが、PC-98 内蔵 IDE インター フェース対応という、本家にとってはかなり異質なコードの扱いをどう するかという問題があり、まだ完全に移行できていません。 とりあえず動くコードはあり、最近の FreeBSD(98) のリリース版にも 含まれているのですが、実績が不足しています。 NEC 55 ボード用ドライバ 3.0 以降、CAM に対応していない SCSI の物理層ドライバは使用できな くなったため、bs ドライバの保守が難しい状況になっています。現在 は、通常使用には問題ない程度にはなっていますが、初期化やエラー処 理周りは十分とは言えません。特に、MO や CD-ROM などのリムーバブ ルメディアを扱うドライブについて、メディアを挿入していない場合、 デバイスの認識に失敗するという問題があり、これは INQUIRY か READ_CAPACITY でのエラーハンドリングが不完全である可能性が高いで す。 現時点では、開発元の NetBSD/pc98 では既に obsolete となっている bs ドライバよりも、ct ドライバを CAM 化して移植したほうが有利と の判断で、その方向性で作業が進められています。 とりあえず動くコードはあり、最近の FreeBSD(98) のリリース版にも 含まれているのですが、実績が不足しています。 boot1, boot2 の ELF 対応 boot1 および boot2 が ELF に未対応なため、/boot/loader を経由せ ずに ELF な kernel を boot する手段がありません。 NEWBUS 対応 PC-98 特有の不連続 I/O ポートをリソースマネージャで管理する方法 は、ほぼ固まったので、今度は各々のドライバを NEWBUS 化する作業が 必要です。 また、本家のリソースマネージャの完成度があまり高くないため PC-98 側に無理がかかっているという側面もあり、リソースマネージャそのも のの仕様を見直すべきではないかという問題もあります。 サウンドドライバ mss ドライバは認識に失敗したり、大きなサウンドファイルの再生中に 途中で止まるなど、複数の障害が報告されていますが、原因はわかって いません。ノート機の suspend/resume 対応と合わせて newpcm ドライ バへ移行すべきと思われます。現在、98testers MLで newpcm ドライバ に対応するためのパッチを評価中です。 また、本家では newpcm への移行が完了し、OSS/Free 由来の古いサウ ンドドライバ一式が削除されてしまったため、86 音源用の nss ドライ バがまたもや使えなくなってしまいました。サポート復活のためには newpcm のブリッジドライバとして書き直す必要があります。 mecia ドライバ PC-9801NS/A 等の初期の PC カード対応ノートに使われている PC カー ドコントローラは、MECIA チップという Intel PCIC(i82365)とは互換 性のない独自のものです。 以前は pcic ドライバに対して PC-98 側で独自に対応コードを混ぜて いたのですが、無理があるために mecia ドライバとして分離すること になりました。 まだコンパイルが通る程度の雛型でしかなく、本格的な作業はこれから です。 EPSON_BOUNCEDMA "options BOUNCE_BUFFERS" が廃止されたので、それに依存していた "options EPSON_BOUNCEDMA" が働かなくなってしまいました。この他に も、EPSON 機固有のコードは、最近メンテされていないものが多いので、 全体的な見直しが必要と思われます。 SMP 対応 試験的な実装で、RvII26 での動作が確認されました。次はコードのブ ラッシュアップをするべきですが、作業に取りかかれていません。 また、本家が SMPng へ移行しているため、それへの追従も必要です。 HYPERMEMORY サポート MELCO の HYPERMEMORY のうち、options MAXMEM だけで対応できないタ イプのものについては、非公式パッチが存在していますが、3.x での動 作報告が少ないうえに、現在、取りまとめ役が不在のため、マージ作業 が行われていません。なお、今の FreeBSD(98) は 3 stage boot にな ったので、kernel が動く前にデバイスの機能を活性化させる等といっ た小細工が、2.2.x 時代よりも、やりやすくなっています。 IND-S/RSA-98 対応 3.1 から採用された新しい sio ドライバには、これらのボードの対応 コードが含まれていますが、正常に動作しないようです。 X と syscons の相性 ? 特定の X サーバにおいて、syscons でのスクリーンセーバが起動され る時間になるとフリーズするという報告がありますが、X と FreeBSD(98) の両方にまたがっていること、また、その後 syscons が 大幅に改定されたため、現在でも起こり得るかどうかを含め、検証およ び解析が進んでいません。 boot マネージャ 現在の boot コードが NEC 純正の固定ディスク起動メニューの仕様に 依存しているらしく、サードパーティ製の boot マネージャでは boot 出来ないことがあるのですが、具体的にどこが問題か分からないので、 改善しようがない状態です。また、現状では、boot マネージャのイン ストールのために、どうしても DOS または Windows でのフォーマット が必要です。FreeBSD(98) にも、DOS/Windows に依存しない free な boot マネージャが欲しいところです。 現在、98bs という BSD Copyright な boot マネージャが 98testers ML で評価中ですが、その性質上、問題が発生した場合には何もできな くなるという類のものですので、十分なテストが必要です。また、 Linux/98 には grub/98 という boot マネージャがあり、これは FreeBSD(98) も boot 可能ということですが、まだ完全に固定ディスク 起動メニューの代わりとするところまでは至ってないようです。 パーティションエディタ PC/AT では、fips というツールまたは市販のパーティションエディタ で、既に導入されている DOS や Windows の再インストールなしに、空 きパーティションを作ることが出来ます。しかし、PC-98 には、市販品 を含めてもそのようなツールが存在しないので、空きパーティションの 確保のために、HD のフォーマットと OS の再インストールが必要とな ることが多々あります。fips の PC-98 版があれば、このような作業を する必要がないことから、FreeBSD(98) 等のインストールに対する敷居 がより低くなるものと思われます。 ---- FreeBSD(98) 移植チーム