OpenSolaris における共存ファイル共有技術

現在、あらゆる OS は、業界で主流の 2 つのファイル共有プロトコル (NFS と CIFS) に対応する必要があります。 OS「上」のユーザー空間内で動作する SAMBA などの優れた実装もありますが、理想は、ファイル共有プロトコルのどちらもがカーネル「内」で実装部分を実行することです。 今や OpenSolaris には NFS と並んでカーネルベースの CIFS があり、自分としては、この理想を現実のものにした人たちを称賛したい気持ちです。カーネル内にファイルプロトコルを実装することは難しいことを忘れないでください。 カーネルレベルで Windows と OpenSolaris を同時に導入するとき、それらを共存させるための複雑さがどれほどのものか理解できます。 共存には、コードがシームレスに追加されること、新しい異物からサービスが悪い影響を受けないことが求められます。 シームレスな共存が踏破すべき技術の山である点でファイルシステムやセキュリティー、アクセス権、マーシャリングなどの基本項目は重要な役割を果たしています。 OpenSolaris チームはかなり重要ないくつかの技術上の問題を解決して、OpenSolaris 内で誰もが CIFS サーバーを利用できるようにしました。 この偉業については、そんな離れ業をできるはずがないという自称専門家もいましたが、協力や技術革新の仕方を理解し、ときには、「完成」の仕方を指図する人たちがいます。後援や承認を受けた多数の ARC 事例 (最大 35 件)、問題を解決方法のそれなりの詳しい内容を自分の目で確かめることができます。 開発者の声をじかに聞くこともできますし、OpenSolaris はオープンソースですから、現在は OpenSolaris の一部になっている最大 37 万行ものコードにじっくりと目を通すこともできます。 Mike Shapiro と Alan M. Wright から始めましょう。 1 人は私と同じで PatriotsRed Sox のファン、もう 1 人はラグビーのファンです (私と違う。私は Patriots のファン)。 両者とも簡単に設計をして、大量のコードを生み出せる、それも問題なく動くコードを生み出せる一流の技術者です。 マイクとアランは、「Unified POSIX and Window Credentials for Solaris」に関わる技術的な問題の大半を解決しました。マイクは自身のブログの最近の投稿でこの問題を詳しく解説しています。 アランは自分のブログで、CIFS サービスがどのようにして OpenSolaris に完全に統合されたいったのかについて、案内をしてくれています。 彼は、SMB autohome shares やそれらが発展した理由について非常に通じています。 AfshinDougNico を忘れてはいけません。  彼らは皆、単に改変したのでは動くようにならない OpenSolaris への CIFS サービスの完全統合の方法とその理由について精通しています。 アーキテクチャーの観点から、多数の設計要件が細かく検討されました。 たとえばバイトの並び順 (endianess)。 CIFS プロトコルは、x86 プロセッサのバイトの並び順の影響を受けます。 これに対し、OpenSolaris の CIFS では、マーシャリングにインテリジェンスを組み込むことによって、ビッグエンディアン (big-endian) と リトルエンディアン (little-endian) アーキテクチャーの両方で動作できるように綿密な注意が払われています。 このことは、コミュニティーメンバーがアプライアンスを構築する場合または単に汎用サーバーの一部としてサービスを実行する場合、OpenSolaris の CIFS サーバーは SPARC プラットフォームで動作することを意味します。 そうです。Niagara-II と Rock マイクロプロセッサは、OpenSolaris アーキテクチャーに適合しているため動作します。 ビッグエンディアンとリトルエンディアンマシンの両方で動作するカーネルベースの CIFS サービスをサポートしているオープンソースの OS が他にあるでしょうか。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s