kokitoの日記: HaikuにFreeBSDネットドライバ互換レイヤーが実装される 6
BeOSに大きく影響されて開発が進められているHaikuプロジェクトがGoogle Summer of Codeへの参加にはじめて選ばれたのはつい最近のこと。それがきっかけでプロジェクトに参加するようになったHugo Santosさんは、今に一番多くコードを貢献している存在になってきた。主にネットワーク関係のコーディングしているHugoさんですが、彼一人の頑張りで、最近のHaikuネットワークスタックがかなり機能が増え安定もして来た。おかげで、Vision IRCクライアントやBeSHare、日本発のFTP Positiveなどが使えるようになっている。
そのHugoさんが最近手がけているのはHaiku用FreeBSDネットドライバ互換レイヤーです(ソースコードはここ)。狙いはFreeBSDのネットワークドライバをそのまま、またはちょっとした修正だけで、Haiku用にコンパイルができて使えるようにする、と本人が述べている。この互換レイヤーを実際に適用したFreeBSDネットワークドライバが既にHaikuのレポジトリにコミットされ、一部が動作も確認されている、とHugoさんが言う。
現時点でレポジトリにコミットされたFreeBSDドライバはif_em(Intel Pro 1000)if_le(PCNet)とif_rl(rtl 8139)ですが、そのうちif_emはソースコードの変更無しでコンパイルできたという。この互換レイヤーの実装を進めることで、将来的には無線LANアダプタなどを含むもっと多くのFreeBSDドライバが使えるようにする狙いもある。ちなみに、パーフォーマンスの方ですが、ネイティブドライバとほとんど変わらないパーフォーマンスが得られる、とHugoさん本人がコメントしています。
Haikuの開発のために8人の学生さんをスポンサーしてくれるGoogle Summer of Codeの効果がこうやって少しずつ目に見える成果に変わっていくのを見るのはこれからも楽しみです。
FreeBSDだと、、、 (スコア:3, 興味深い)
NDISっつうのがあるんだが。それも含めての話かな?
ちょろっと眺めた程度では、見当たらなかったけれど。
#なんかどんどんと、OS間の風通しが良くなってる気
#がする。
Re:FreeBSDだと、、、 (スコア:2, 参考になる)
NDIS は Microsoft が決めた [microsoft.com] Windows のネットワーク用ドライバインタフェース仕様ですよ。
このドライバを FreeBSD でも使えるようにするのが if_ndis ですね。Linux 方面でも同様のドライバが存在しています。しかし、これまで使えるようにすると、事実上 Windows 対応 NIC は全部使えるようになる訳ですが……。
# Centrino プラットフォーム用のドライバが Windows 用しか提供されない事に対応するための苦肉の策だったと思います。Re:FreeBSDだと、、、 (スコア:1)
互換レイヤーの上にNDISラッパーが動いて、
さらにその上にWindowsのNDISドライバが動作する、
という仕組ですが、Windows NDISドライバとの
カーネルアドレススペースの違いで適用できない
可能性がある。
Re:FreeBSDだと、、、 (スコア:0)
#欧文直訳調のタレコミって斬新ですね
Re:FreeBSDだと、、、 (スコア:2, 参考になる)
借りに、互換レイヤーをif_ndisに対応させ、if_ndis自体がHaiku用にコンパイルができたとしても、
if_ndisが対象とするWindows用バイナリドライバがHaikuで動作するかどうかは、現段階で確認できていなくて、
使えない可能性もある(と、Hugoさんが話してくれた)。
> #欧文直訳調のタレコミって斬新ですね
というよりも、タレコミ文の日本語は下手なだけですよ。:)
Re:FreeBSDだと、、、 (スコア:1)
という話が2ヶ月ほど前にあった。対象となるのは、下記のデバイス。
Intel 2100, 2200BG, 2225BG, 2915ABG, and the 3945ABG devices.
ここらへんも含まれるといいんだが。