ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Linuxは、カーネルとglibcのバージョンアップを繰り返されると安定しない!

2005-04-06 11:55:55 | Linux
 昨日も、アクセスIP数は増えていたので、今日も、Linuxネタを1つ。

 Linuxの問題として、コミュニティーがそれぞれ開発しているため、コミュニティーの成果物をまとめて、Linuxのディストリビューションをやるとき、問題が起きると思う

 (ここで、起きる!と断言してしまうと、
 「あんた、なんで、そんなこといえるの?」ということになり、
 「そもそも、ウィリアムのいたずらって、だれ!」ということになるので、
 妄想で!ということにしておいてください)。 



 そのことを話す前に、まず1つのお話をします。

 Linuxの動作を考える場合、

   カーネルのシステムコールを利用し、
   それをglibcのライブラリによって、呼び出し、
   さらにGUIを使う場合、XFree86のXlibを使うことになる。

 したがって、これらのカーネル、glibc,Xlibにおいて、バージョンが違うときに、インターフェース(関数の引数自体とか、ポインタ渡し引数の、構造体の中身とか)を変えられてしまうと、仮にリンクできたとしても(もちろん、構造体の中の変数名とか変えられたら、出来ないこともあるんだけど)、そこで落ちてしまうことがあるわけよ。

 でも、そういうのって、リンクがとおってしまった場合、とくに動的リンク(.so)の場合、動かしてみないとわかんない、動かしたらSegmentation Faultなんていうこともある。

 なので、最適なカーネルと、glibcの組み合わせを見つける(相性っすね)っていうことが大切になる。一方、トーバルスさんが心配していたパフォーマンスに関しては、じつは、インターフェースほど、問題にならない。なぜなら、50%くらいの性能向上なら、半年、コンピュータを買うのを待つと、性能が上がっちゃうことがあるのよ。
 それと、あるマシンでは、性能が遅いけど、他のマシンではそんなでもっていうこともあるし。

 でも、インターフェースが違っちゃうと、どのマシンでも落ちるから。




 でも、じゃあ、インターフェースをあわせる努力を、コミュニティの方々が、してるかっていうと、そうでもないんだよね。
 たとえば、トーバルスさんとか、えらーい方々や、コミュニティのえらーい人があつまって、
 今回のLinuxいったん,
   カーネルは2.4.X,
   glibcのバージョンはいくつ、
 これをベースにみなさん、いったん安定版を作ってください!

っていうことで、みんなが、glibcとカーネルのバージョンを同じにして、安定したものを出しているかというと、そうでもない。みんな、自分のスケジュールでバージョンアップ。
 それでも、バージョンアップの頻度が少なければ、結果として安定するんだけど、結構、カーネルもglibcも、頻繁にアップデートするよね。

 それでもそれでも、みんながぜんぶ、最新バージョンが一番安定していれば、最新バージョンだけ、とってくればOKなんだけど、そうでもないのよ。最新は不安定なんで、1世代前のほうが使えるなんてこともある




 そこで、問題が起きる。
 あるコミュニティが開発しているシステムAは、glibc2.3.2-11.9 では動かない。
 じゃあ、glibc-2.3.3にしていいか?っていうと、

 まず、そのコミュニティのシステムAは、それで動くかもしれないけど、
 他のコミュニティの開発したシステムBは、現在、glibc2.3.2ベースで開発されて
 いるもののバイナリでできてるわけで、
 つーことは、glibc 2.3.2と2.3.3でインターフェース変わっていると、まずいから、
 システムBは、もう一度、ビルドしなおし??

 っていって、ビルドしないとおもう。
 その理由は、ビルドしなおしたら、今度は、そのコンパイルが正常終了するかどうか保証がないから(もし、glibcの2.3.2とglibcの2.3.3でインターフェースが変わっていた場合、コンパイルが終わらないことがありえる。ふつう、上位互換とるだろうけど、とってない可能性がないとはいいきれない)。
 じゃあ、そのコミュニティのシステムBの最新版をダウンロードしたら?
 と思うかもしれないけど、今度は、システムBの最新版が安定してる保証はない。

 さあ、こまったでしょ。




 この、glibcとカーネルがちょくちょくバージョンアップするんで、全部が安定して動くバージョンが(実質)つくれない!っていう問題は、むかしからあるんだけど、

Kondara は いいよね!
 あそこは、伊達や酔狂でつくってる、先端ディストリっていうブランドを確立したから、仮に不安定でも最新版が入ってれば、「さすが、kondara先端いってる!」で済む

redHatはいいよね!
 自分が標準だから、仮に不安定なものが入っちゃっても、「まあ、仕方ないよね!」ですむ。


でも、他のディストリはたいへん!(だと妄想する!)
 だってさあ、そんなわけで、もともと、安定しないモンなのよ!
 こんなにカーネルとglibcをバージョンアップされちゃーね。
 それにさあ、お客さんだって、自分の都合で、カーネルとかglibcとか、バージョンアップしちゃうわけでしょ。なおさら、安定しないわけよ。

なのになのにだよお!
  Kondaraがバージョンアップするから、自分のディストリも
  バージョンアップしないといけないじゃん。
  売れないから。
  でもでも、なんか、ユーザーの中に神話があって、Linuxって、安定してると思ってるのよ。
  だから、不安定だと、「だめじゃん」って言われちゃうのよ。

  この格差は、うまんないよね。

だからかなあ。。。
 最近、他のLinuxのディストリって、どーなっちゃったんだろう。。。。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする