- ベストアンサー
MacOSXのBSD部分についての混乱をほぐしたいんです
いつもおせわになります。 MacOSXのBSD部分、Darwin部分、といったいわゆるもろにUNIXな部分について、ごっちゃになってしまい話についていけません^^; BSDというと、BSDライセンスによるバークレイが版権保有するコード、DarwinというとAPSLライセンスで分離されたアップルオリジナル版権の別物、というところまでは教わって理解できたつもりでいるのですが・・・ よくセキュリティ情報で、BSDにアラートが発覚しても、MacOSXは対象外で安全、ということが多いですが、これはMacOSXのBSD部分というのはBSDライセンスコードからコンパイルされたのでなく、アップル社が一からスクラッチで作りなおした完全オリジナルコード(APSL?)のほうになるんでしょうか? それとも本当にBSDライセンスコードを使用しているにもかかわらず、アップルがコンパイルするとバグが消えるという魔法?がかかるのでしょうか? ちょっときつねにつままれた感じで混乱してます^^;
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
> 「MacOSXだけは万能」というのはどんなカラクリですか? 誰が言っているのか知りませんが、MacOSが万能というのは嘘だということです。おそらくBSD互換という言葉を誤解されているのだと思います。BSD互換というのは、BSDで求められる機能を全部備えているという意味で、それはソースコードが100%流用できるという意味ではありません。移植するのに苦労しない、という程度の意味だと考えてください。UNIXの世界の互換性というのはその程度のものです。 > X11アプリがなんでも自由に動くことができる、という「キャッチコピー」のいわんとしている真実とは、どの程度のことと受けとめればいいのでしょうか? X11のプロトコルを理解するXサーバを備えていること、X11のクライアントをmakeする環境がそろっていること、という意味です。重要なのは前者で、Aquaに統合されたXサーバのおかげで、Networkの向こうにあるマシン(OS、機種はなんでも良い)で動作しているX11アプリケーションのユーザインタフェース部分だけを手元のMacOS Xの上に持ってきて、まるで自分のアプリケーションのように操作することができます。これが「X11アプリがなんでも動く」ということの意味になります。 > http://www.gnu-darwin.org/ > こんなところに行き当たりましたので、非常に驚いたんです! ああなるほど。これは誤解を受けやすいんですが、GNU-Darwinというのは、DarwinというOSに、GNU(やその他)のプロダクトを組み合わせて使いやすいディストリビュートパッケージを作りましょう、というプロジェクトですよ。 同様にGNU/LinuxやGNU/BSDなんて言う言葉もあります。Linuxの場合でもカーネルはLinusが中心となって作っているのでしょうが、その上で動いているプログラムのかなりの割合はGNUのプロダクトですよね。それと同じと考えてもらえれば良ろしいかと思います。
その他の回答 (7)
IBMやMSの動向には疎いのでPMXやシームレスウィンドウについては知識がありません。すみません。 > OSXのドライバではAquaとX11の融合を特別意識せずに設計して大丈夫な構造ですか? Xサーバはかなり頑張っているとはいえ、MacOS Xから見れば1アプリケーションに過ぎません。Quartz層の上で動いていますので他のアプリケーションと普通に共存できます。Xクライアントも単にXプロトコルを喋るUNIXプログラムに過ぎませんので、元からUNIXであるMacOS Xにとっては何の障害もありません。 XFree86プロジェクトの成果のおかげでこのように綺麗に構築できているわけですが、十数年前だとIBMやMSは苦労しただろうなと思います。
お礼
どうもありがとうございます! OSXのディスプレイドライバは、単にQuartzの描画ルーチンだけで作成できる、という概念なんですね! やはりさすが世界最高峰技術を誇るアップルの伝統ですね。 >十数年前だとIBMやMSは苦労しただろうなと思います。 このころにアップルファンから寄せられた嘲笑は、たぶんA/UXか、サードパーティー製による漢字トークからXアプリを使うモジュールとの比較になるんだろうと思うのですが、これも多分Macならクイックドローのことだけを考えていれば済む、という意味だったのかもしれませんね?
No.6に補足します。 >移植するのに苦労しない... 開発者が移植性を意識してソースコードを書いていれば、そのままmakeできます。その程度には似ているということです。 >Networkの向こうにあるマシンの(略) Networkを経由してアプリケーションを操作できるのはX11の機能であって、MacOS X特有のものではないので注意してください。 MacOS XのX11サーバの優れたところは、AquaとX11の世界を融合させていることです。xemacsやktermの隣で平気でExcelやPhotoshopが動いている、というような光景は他のUNIXではまずお目にかかれないでしょう。 MacOS XのUNIX部分だけを取り出して比較すれば、他のBSD系OSとそう変わるところはないと思います。しかし、一般ユーザ向けのアプリケーションとデスクトップ環境を持つUNIXはMacOS Xだけです。そういう意味では「万能」と呼んでも良いかも知れません。
お礼
大変くわしい補足もいただき本当にありがとうございます! >一般ユーザ向けのアプリケーションとデスクトップ環境を持つUNIXはMacOS Xだけです。 これは十数年前に次世代OSを進めていたMS-IBMが「PMX」や「シームレスウインドウ」を発表したときにも、マッキントッシュでは既に同じことを実現しているので概念の盗用だ、と猛反発があった件を思い出しますね! IBMのシームレスはサーカスのように非常に複雑で特殊なディスプレイドライバで実現させていたことも物笑いの種になっていたと記憶しています^^; OSXのドライバではAquaとX11の融合を特別意識せずに設計して大丈夫な構造ですか? 本題とはずれてしまいましたが、貴重なチャンスですのでお差し支えなければどうぞまたよろしくお願いします。
No4.の回答者です。 BSD系UNIX同士でも100%互換なんてことはありません。そのままコンパイルすれば通るものもありますが、大抵はOSにあわせてなんらかの修正が必要になります。 > X11部分なんかは、かなりBSDのコードが占める比率 >が高そうに想像してるんですが、 これは誤解でしょう。X11はMIT発祥のものでBSD由来のコードではありません。またMacOS XのX11はQUARTZに依存しているので明らかにDarwinではありません。 > これもアップルの独自スクラッチ? MacOS X向けのX11は、XFree86をベースにオープンソースで開発されています。ライセンスはXFree86ライセンスになります。(URLを参照してください) DarwinがGPLというのもおそらくなにかの勘違いだと思います。DarwinというのはOSの基盤の部分だけをさしていて、その上で実装されているプログラムはそれぞれ別の形態で開発されています。
お礼
ushi36さん、本当に感謝です! >BSD系UNIX同士でも100%互換なんてことはありません。 >そのままコンパイルすれば通るものもありますが、大抵はOSにあわせてなんらかの修正が必要になります。 これがとても気になる焦点ですが、他のBSDファミリでは互換性の壁にぶつかるのが普通だけれど、「MacOSXだけは万能」というのはどんなカラクリですか? (ほとんどのBSDファミリに対応できるそれぞれのランタイム的な装備がOSXにはあるとか?でしょうか?) >MacOS XのX11はQUARTZに依存しているので明らかにDarwinではありません。 なるほど!OSXのX11はそういう素性だったのですね! だんだん糸がほどけてきた感じです! http://developer.apple.com/darwin/projects/X11/index.html アップル本家のX11パスも、Darwinプロジェクトの一部として構成されていますので、すっかりだまされてしまいました。 ところで、Quartzに依存していながら、X11アプリがなんでも自由に動くことができる、という「キャッチコピー」のいわんとしている真実とは、どの程度のことと受けとめればいいのでしょうか? たとえばBSDに限らずSVR4などで開発されたX11フリーウエアのソースも貰ってきて、MacOSXでそのままコンパイルするだけで(他のBSDファミリはそうはいかなくても)MacOSXなら簡単に動作できる、というアドバンテージが実在してるんでしょうか? >DarwinがGPLというのもおそらくなにかの勘違いだと思います。 私も当初、そう思っていました。 ところが#4で参考に教えてくださったサイトhttp://www.levenez.com/unix/history.htmlの上位にさかのぼって参照すると、 http://www.gnu-darwin.org/ こんなところに行き当たりましたので、非常に驚いたんです! これは一体・・・? >DarwinというのはOSの基盤の部分だけをさしていて、その上で実装されているプログラムはそれぞれ別の形態で開発されています。 そうですよね? 私も昨日まで、Darwin部分カーネルまわりだけの領域を指しているものだと思いこんでいたのですが、一体どちらが本当の定義なのか振り回され気味です^^; ますます混乱しながらも、少しずつ糸口はつかめてきた感じです。 もう一息の気がしていますので、どうかご指導よろしくおねがいします!!
私の理解では、Darwinの源流はカーネギーメロン大学のMach(マーク)です。MachはBSDの流れを汲んだOSではありますが、BSDそのものではありません。 参考になるかどうかわかりませんが、UNIX系OSの系譜図がありますので見てみてください。MacOSXに限らず、UNIX系のOSというのはそれぞれ影響を受けあって進化しているということが良くわかりますね。
お礼
ushi36さんはじめまして、おせわになります! >MachはBSDの流れを汲んだOSではありますが、BSDそのものではありません。 そうなんですよね、この辺いろいろ本を読んでも釈然とせずますます混乱してしまいます。 MacOSXは「完全互換」BSDだ、と主張する人も多いのですが、実際のところBSD用のアプリをMacOSXに持ってきて100%動作してくれるものでしょうか? X11部分なんかは、かなりBSDのコードが占める比率が高そうに想像してるんですが、これもアップルの独自スクラッチ?またはBSDコードを貰っているけれど改変してAPSLとしているんでしょうか? そう考えると、今気がつきましたが、私はどこまでがDarwinなのか、という境界線すらよくわかっていませんでした^^; MacOSXのレイヤー図を見るとX11環境なんかはDarwinの上位でマック用アプリケーション層と同列のような書き方ですが、そもそもDarwinの範囲というとカーネルだけでなくコマンド群全体とX11まで含めているんでしょうか? (BSDファミリそのものの互換性のこともあやふやなんですが、普通はそもそもファミリー間でのアプリ互換性は期待できないものでしょうか?MacOSXだけが万能でどのBSDアプリでも動作できるんでしょうか?)
補足
参考URLを奥までよんで見たら、DarwinはAPSLではなくGNUライセンス宣言なんですね! ・・・とするとAPSL部分というのは一体どの部分になるのか、またまた大混乱になってしまいました^^;
#1です。 すいません誤入力の訂正です。 ルラックスはルナックス系の間違いです。 今のCEOがスピンアウトして『NEXT』と言う会社でルナック系OSを 元にしたNEXTOSを作成して、それを持って戻って来た経緯が有ります。 このOSにはX86用も有るのですが… 当時アップルは息切れしてたんです。
お礼
kiyomacさん、いつも本当にお世話になります! ルナックというのをいろいろ検索して自分でも捜してるんですが、アンティークのランプや葉巻たばこの会社ばかり出てきてしまって涙です^^; コンピューターではワークステーション系だったんですか? NEXTを優先して、もとからアップルにあったA/UXが却下されてしまったあたりの経緯もすごく興味がありますので色々調べたいと思っています。 >当時アップルは息切れしてたんです。 そうですねえ、このころ日本法人の社長してた方は私の先輩にあたる人なので(全然面識ないんですが)、なんか他人事でなく関心を寄せてしまいます・・・ またいろいろ教えてくださいませ^^
- osamuy
- ベストアンサー率42% (1231/2878)
セキュリティ脆弱性の原因は、プロセサアーキテクチャに依存する場合がありますので、PowerPCベースのMac OS Xなら対象外になるという事があります。Intelベースになったら、影響を受けるパターンが増えるかもしれません。 また、Darwinは、FreeBSDやNetBSDのコードを使っている部分もありますが、dyldやkext、launchdみたいなApple独自のコード、Mach IPCなどBSD(というか古典的なUNIX)とは異なる仕掛けを使ってたりしてますので、そこらへんも考慮する必要があります。 ここらへん、現状だけでなく、歴史的経緯の観点からおっかっけていかないと、分かりにくいかも。まとまった資料とかは特に見た事ないので、いろんなWebサイトとか、雑誌記事とかを漁ってみては。
お礼
>プロセサアーキテクチャに依存する場合がありますので、 >PowerPCベースのMac OS Xなら対象外になるという事があります なるほど、そういう意味もありだった訳ですね。 これからインテルに変わると、その辺心配の種がどっと押し寄せそうですね・・・ >仕掛けを使ってたりしてますので、そこらへんも考慮する必要があります ハイ,この辺が#1さんもおっしゃって下さっている部分ですね! DarwinそのものもBSDのコードが含まれてたんですね・・・ しかしそれをASPLだ、と宣言するあたり、バークレイがATTに使った作戦を お手本にしてそうですね^^ マッキントッシュというハードに固有に必要な部分だけがAFPLのDarwinなの かと思ってました。 >ここらへん、現状だけでなく、歴史的経緯の観点からおっかっけていかないと、分かりにくいかも。 そうですね。私は遅れてきたマックユーザーなので、考古学的にさかのぼった 視点でおかしな勉強の手順をせざるをえないのが泣き所ですが、昔の資料を みつけて眺めると本当に面白いです。 今わたしの教科書になってるのは日経MACがあった頃のインサイドマッキント ッシュなんですが、日経の記事はウソも多い、と伺って、そう言う点なども こちらの掲示板でこれからもいろいろ確認させてください^^ (廃刊になったのは、捏造記事の問題もあってのことですか?) もしお差し支えなければ・・・
その昔『NEXT』と言うOSが有り現在のDarwinはこれを元にしていると考えています。 ソースコードはBSD版ですが、追加された部分はアップルオリジナル。 ユニックスもといルラックス系はバークレイ版から派生しています。 アップルが使用しているのはシェル部分と考えますので、コアの部分 に不具合が有っても参照する箇所が異なりますので、影響は無いのでは
お礼
kiyomacさんにはいつもお世話になります。 今回もどうぞよろしく^^ >ソースコードはBSD版ですが、追加された部分はアップルオリジナル。 >アップルが使用しているのはシェル部分と考えますので、コアの部分 >に不具合が有っても参照する箇所が異なりますので、影響は無いのでは なるほど、分量的にBSDライセンス部分は少ないと思ってよさそうですね。 大部分は「アップルディストリビューターのスクラッチ付加コード」ゆえ にBSDに起きるアラートも大半はアップル配布環境では無関係、ということ ですね。 実際OSXの駆動中にBSDコードにタッチしているモジュールというのはごく わずかしかないんですね? >ルラックス系 これはどのようなものでしょうか? BSD,Darwinに次ぐもうひとつのOSXコアの一つですか? お差し支えなければ引き続き宜しくお願いします。
お礼
>誰が言っているのか知りませんが、MacOSが万能というのは嘘だということです。おそらくBSD互換という言葉を誤解されているのだと思います。 >これが「X11アプリがなんでも動く」ということの意味になります。 なるほど納得できました! 雑誌記事やファンサイトでの発言でこの点でのアドバンテージを非常に大きく書かれているのをよく見かけますので、かねがね正しい意味を知りたいと思っていました。 >ああなるほど。これは誤解を受けやすいんですが 異なるライセンス体系のコードどうしを自由にパッケージングして構わない、ということだったんですね! おかげさまですっきりしました!