[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:14821] Re: PlamoLinuxのソフト互換性について。



技術的な話は田原さんがフォローしてくれたので、私は昔話でも :-)

引用は多少前後しますが、、

From: Tomota-Kamura <t-kamura@tech.khi.co.jp>
Subject: [plamo:14816] PlamoLinuxのソフト互換性について。
Date: Tue, 23 Jul 2002 10:50:58 +0900

> 現在、これらが原因でPC-Unixの世界観自体が実に不明確になってしまいました。
> 以前はPC-UnixといえどもUnixなのだから、全てのソフトは使えると信じていたのですが・・・。
> また、本にもそう記述されてました。実際Linuxと言う"単語"もUnixとは違うモノですし・・・・。
> この辺りの世界観とは今後Linuxを使っていく上で非常に重要な”概念”のような気がしてなりません・・・・。

このあたり、ある意味 PC-UNIX の世界が UNIX の歴史の中では特殊例なので、
なかなかそこから見ることは難しいですね。

歴史的な話をすると、昔から "UNIX" というのはかなり曖昧な概念で、一応、
AT&T が出していたものが狭義の "UNIX" で、各社がそれを元に自社の WS 用
に改造した OS を "UNIX 互換" とか "UNIX 準拠" として出していた期間が長
くありました。

この当時は、現在の PC 互換機のような汎用的なハードウェアがあったわけで
はなく、各社がそれぞれ独自のハードウェアを使って WS を使っていたので、
ある機種用にコンパイルしたソフト(バイナリ)がそのまま別のメーカーの WS 
上で動作することは考えられませんでした。ですから、ソフトウェアはソース
コードとして流通し、使いたい人はそれを自分の環境でコンパイルして使うよ
うになっていました。

# エミュレーション等のテクニックはありますが、基本的に CPU のアーキテ
# クチャーが異なるマシンの間ではバイナリの互換性はない

最近の PC-UNIX のようにアーキテクチャ(CPU)がほぼ統一されたというのは 
UNIX の歴史の中では例外的なことで、元々 UNIX という OS は、C 言語で書
かれて移植性が高いことが売りになっていたから、まざまな CPU の上に移植
され、バイナリの互換性の無い UNIX(もどき)が乱立していた時代というのが
はるかに長かったわけです。

このような過去を引きずっているので、UNIX 用のソフトウェアは「ソースコー
ド」レベルでの互換性は高くなっているのに対して、バイナリレベルでの互換
性はそれほど重視しない傾向がありますね。

> 私はMacOS9.x MacOS X Win2000をつかってますが、MacOS と Winのソフトでは
> お互いに動作しないプログラムであることは知っています。しかしながら、例えば
> RadHatやPlamoあるいはVine,Debian GNU/Linux,TurboLinux など、さまざまな
> ディストリビューション、そして、tgzやdebやrpmなどのパッケージソフトの相互互換
> というのはあるのでしょうか?

この tgz や deb, rpm というのはソフトウェアをコンパイルしたバイナリを
固めた形式になっていて、同じ CPU 用のバイナリを使う限り、「原理的」に
は動作するはずです。

# 逆に言うと、Mac と Windows の間では CPU が違うのでエミュレーション等
# の機能を使わない限り、同じバイナリを動作させることは不可能です

ただし、現実的には、それぞれのバイナリが依存している外部ライブラリ
(Windows で言えば DLL)がディストリビューションによって異なっているので、
それらの調整を取る必要が出てきます。

# そのヘンの詳細は田原さんの記事を参照してください

> ある使いたいソフトがRedHatのrpmパッケージであればそれは、Plamoでもそのまま使用できるのでしょうか?
> あるいは、パッケージの変換が必要なのも理解してますが、本当に、それだけなのでしょうか?
> 依存関係やカーネルバージョンなども考えると、Linuxのディストリビューションの違いに対して、
> 極端に敏感になってしまいます。(インストールや設定の手間が多いい分だけに・・・)

最悪でもソースコードからコンパイルすれば自分の環境で動作するバイナリは
作成できます。ただし、カーネルやライブラリのバージョンによっては必要と
する機能を提供していない場合もあり、その際は適切なバージョンにまでシス
テム側を変更してやる必要があります。

> この辺りは皆様はどう理解しているのか、ぜひご教示願いませんでしょうか?また、良い参考WEBや
> 書籍がありましたら、ご紹介お願い致します。
> 

私は旧い人間だから、基本は自前でコンパイル、ですね。ディストリビューショ
ンというのは、あくまでその手間を省くための方便で、ディストリビューショ
ンが提供するバイナリに全て頼ってしまうのは、人間をダメにするのではない
かと(笑)

# なんてことを作っている側の人間が堂々と言っていいのか (^^;

ヘンな例えだけど、与えられたバイナリを使うのと、自分で README 等を読ん
で、コンパイルして使うのとでは、達成感とか征服感が全然違うので、UNIX 
を使う喜びを味わうためには、ぜひ自前でコンパイルしてみることをお勧めし
ます。

# さらに言うと、昔はコンパイルも一筋縄では行かなくて、インクルードファ
# イルの位置を直したり、#define の定義を修正する等、コンパイルを通すだ
# けでも苦労することが多々あって、あのころは「動いたー!」ってのが一つ
# の喜びだったですねぇ。

# 最近は、ほとんどのソフトが Linux を対応プラットフォームにしているか
# ら全然苦労なくコンパイルできるんですが、昔は Linux はちょっとクセが
# あって、Linux 用のパッチとかで結構苦労した憶えがあります。元々、JE 
# ってのはそういう苦労の結果を集めたパッケージだったんですよね。

---------
こじま

Follow-Ups
[plamo:14822] Re: PlamoLinuxのソフト互換性について。, Chie Nakatani
References
[plamo:14816] PlamoLinuxのソフト互換性について。, Tomota-Kamura

[検索ページ] [メール一覧]
Plamo ML 公開システム