探検


Linuxって実際の所バイナリ互換どれくらいあるの?

2010/08/07(土) 12:33:10ID:HOUzCUqS
原則としてディストリやバージョンが変われば
再コンパイルする必要があるってのはわかる。

でも実は再コンパイルしなくても動いたりするんじゃないか?
世の中にはソースを公開できないアプリがある。

そういうアプリを作っている会社がいちいち各ディストリや
各バージョンに対応するのは手間がかかる。
結果、自分のディストリ・バージョンに正式対応していないが
実は結構動くんじゃないかって疑問になった。
2010/08/07(土) 15:15:26ID:1Jvm72QN
原則として動くんじゃないの
firefoxとかどこでも動くじゃん
2010/08/07(土) 16:42:53ID:5/k+nPMk
時間の経過でglibcとかlibstdc++のABIや定義シンボルが変わって
動かなくなったことはあった。あとは使ってる共有ライブラリ名の
参照名が違っててロードできないとか。

だからバイナリ互換性にこだわるならstatic linkするしかない。
最近だと良くなってる気はするので、「いまどき」の環境で「いま」
リリースするバイナリが概ね動けばいいだけならおおよそ動くと思うけど。
2010/08/07(土) 16:48:57ID:Wbz29qLG
どっちかと言うとファイルの置き場所とか
2010/08/07(土) 16:55:04ID:5/k+nPMk
VMwareみたいにlibX*を同梱する強者もいるよな。
そこまでするなら仮想マシンイメージで配布…無理か。
2010/08/07(土) 17:31:39ID:koj7zGLp
>>5
仮想イメージでってのは単体のアプリではあまり聞かないけど、アプライアンス方面では
増えてきてるよ。インストール調整費用が価格と稼動までの日数を押し上げてて
競争力の低下要因となっているからね。

2010/08/07(土) 17:56:20ID:Wbz29qLG
>>6
アプライアンスなのに。
2010/08/07(土) 21:11:41ID:koj7zGLp
>>7
アプライアンスは別に専用設計のH/Wって訳じゃないから。
特に適用業務ごとにスケールが大きく異なる場合、ベースは汎用のPCを
使うことはよくある。
2010/08/07(土) 21:13:24ID:Wbz29qLG
>>8
アプライアンスなんだからH/W決め打ち出来るじゃん。
2010/08/07(土) 21:55:32ID:koj7zGLp
VMに決め打ちしてるんだよ。
2010/08/08(日) 03:59:16ID:JFg4OQV1
Ubuntuも結局はDebianとのバイナリ互換性が維持され続けてるな
2010/08/08(日) 05:23:57ID:VfEk8p6m
よっぽどコアな部分叩いてるんでもなければ普通にバイナリ互換だろ
2010/08/08(日) 08:31:45ID:geaaqDTz
>>12
ppc向けのバイナリ
2010/08/09(月) 17:30:00ID:UJihUaW7
普通って言うほど安心はできない。
ビルド環境のライブラリとバージョンが違ってトラブルとかあるし。
2010/08/11(水) 02:45:31ID:b1tKiAvX
バイナリ互換があれば、どのディストリ、どのバージョンでも
アプリが使えるから、アプリのポータブル化して
あちこちに設定ファイルごとアプリもっていけるのにね。
2010/08/11(水) 02:49:20ID:utUc9ZtP
もうそのあたりは仮想化におまかせで、/ 以下をまるごとパッキングに
なるのかなー。

それをLXCとかの下でカーネルだけ共通で動かすもよし、KVMで
カーネルから分離して動かすもよし。
2010/08/11(水) 06:43:18ID:VJZTets2
>>15
実際にはもっと色々障壁なくね?
2010/08/14(土) 07:13:45ID:qICt4taZ
まーでも実際問題市販アプリケーションってバイナリで出てくるからね
2010/08/14(土) 14:01:27ID:qH5VfF25
>>17
kernelやglibcに限らず、依存してるさまざまなライブラリなんかのバージョンとかな。
2010/08/15(日) 15:46:36ID:MY9+Dx/W
system callはあまり変わっていないんだっけ?POSIX互換に限らず…
2010/08/15(日) 20:56:25ID:gZmgfHax
システムコールはむしろLinuxがPOSIX非準拠だったのを細々と直してる。
でもそんな細部に依存してるアプリはまずないだろう。
2010/08/15(日) 21:38:23ID:ngyjZRgI
glibcが怖いんだな。
23login:Penguin
垢版 |
2012/01/06(金) 13:32:03.63ID:uzLKDeKI
パッケージマネージャでNixが普及してくれればバイナリ互換性とかライブラリ互換性気にしなくて良くなりそうだけどどうなんだろ
2012/01/07(土) 01:39:21.08ID:beKb6oif
使っているglibcの--enable-kernelオプションが
違うだけでもバイナリ互換性が無くなる。

例えば最近のFedoraのglibcは--enable-kernel=2.6.32で
コンパイルされているので、このglibcは勿論、この
glibcを使ってコンパイルされたバイナリもkernel 2.6.32未満では
動かない。

$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs),
for GNU/Linux 2.6.32, <======
BuildID[sha1]=0xaad547afe804114c881db3ca6e337794431b93f4, stripped

(RHEL 5.xのバイナリはRHEL 6.xで動く可能性が
あるが、RHEL 6.xのバイナリはRHEL 5.xでは動かない)
2013/06/28(金) 18:55:46.37ID:Wp3uy5Ya!
てs
2013/06/28(金) 18:59:09.55ID:f9zULtqn
>>25
test
http://engawa.2ch.net/test/read.cgi/linux/1341351394/
27login:Penguin
垢版 |
2013/07/22(月) NY:AN:NY.ANID:JZcRzacr
test
2013/07/26(金) NY:AN:NY.ANID:5EV2/IJp
漢なら潔く拡張命令モリモリ利用

バイナリ互換性なんて気にしないぜ!
2013/07/31(水) NY:AN:NY.ANID:HcSnofK9!
同じディス鳥であっても、ディス鳥のバージョンごとにバイナリが公開されているから
バイナリ互換は最低だね。
ソースを公開して、ある程度人気が出て、ディス鳥側に常にメンテしてもらわなければ
ソフトを作っても誰にも使われることがない。
個人でソフトを作って配布とかできないシステム。
決まりきったディス鳥認定ソフトしか使うことができないのさ。
2013/07/31(水) NY:AN:NY.ANID:CYxROjdr
ある程度人気出たら
「ディストリに入れよう」って人も出てくるけどなぁ。
入らなくても公式とは別にリポジトリ立てる人もいるし。
2013/07/31(水) NY:AN:NY.ANID:H4k6v0uK
バイナリーの互換性がないから、Windowsにバカにされる。

動作しているライブラリやカーネルに
互換性が無い部分をアプリ側が場合分けして対応しているならともかく
それを行わないからandroidにもバカにされる。
2013/07/31(水) NY:AN:NY.ANID:CYxROjdr
バカにされても特に困らん。
2013/08/01(木) NY:AN:NY.ANID:mhb/WX8r!
気がついていないだけでソフトが少ないという点で困っていると思う。
ccでコンパイルしたa.outをVectorにアップロードしてもバイナリ互換がないので使える人がいない。
だから誰もプログラムを作らない。人気がない。ソフトがない。
2013/08/01(木) NY:AN:NY.ANID:qVsr+XQb
ソースで上げればみんなコンパイルして使う。
2013/08/01(木) NY:AN:NY.ANID:Nn1pSPO0
Aという実装に依存してBという実装が作られるも
ある日突然Aが実装を変更して依存が壊れBという実装が動かなくなる

こういう場合
AかBのどちらかが問題を修正するなら問題無いけど
双方自分の実装が正しいと主張し修正を認めない時がある


こういうの何ていうの?
2013/08/01(木) NY:AN:NY.ANID:1j1tGzBl
千日手
2013/08/01(木) NY:AN:NY.ANID:hDIBtn3z!
>>34
ユーザーがいちいちソースからコンパイルして使うというのはLinuxでは一般的ではないだろう。
面倒すぎて受け入れられていないということだ。
ソース配布してもコンパイルするには時間がかかって手間だし、もしやる気があっても知識不足から手をつけられない人も多いだろう。
自分が開発しもしないのに、多くの種類の開発環境をインストールするのもばかばかしいだろう。
ソースを公開したい人や会社も少ない。
少なくとも俺はソース公開したくない。
プログラマーにとってはソース公開なんて自殺行為だからな。
ソース互換も100%じゃないしな。
開発環境やカーネルやライブラリのバージョンなどの関係ですんなりコンパイルが通るとも限らない。
コンパイルでエラーが出たら多くの人はあきらめるだろう。
バイナリ互換があってソース公開の義務さえなければ、多くの会社や個人がプログラム作成に参戦するが
バイナリ互換などないし、場合によってはソース公開の義務が出ることもあり、みんなWindowsのプログラム作っているのが現状。
2013/08/02(金) NY:AN:NY.ANID:U+34vnhW
libc5のバイナリーがまだ残ってるマシンもってるけど、普通に動いてる。
さすがにa.out形式は残ってない。
2013/08/02(金) NY:AN:NY.ANID:dSS/R9QJ
>>37
それ貴方の思い込みだから、Linuxのディストリの種類がどんだけあるか理解できていない。
マイナーとか含めたら万の単位いけるぞ。
2013/08/02(金) NY:AN:NY.ANID:dSS/R9QJ
>>38
ライブラリーがライブラリーを必要としている階層タイプが無いなら
ソースから作っても対した作業じゃないんだけど。
1つアプリを動かすのに芋づる的に作業が拡大したのを経験すると
ソース方式がクソって思えてくるな。
互換も引きずり過ぎるのも無理があるが、完全に見切るのも無理があるわ。
2013/08/04(日) NY:AN:NY.ANID:65jlEFZp!
>>39
とんちんかんなレスだな
誰がディス鳥の数の話なんかしているのさ
むしろディス鳥の数が多いほうがバイナリ互換がない方向に向かっているじゃないか
バカなのかおまえは
2013/08/04(日) NY:AN:NY.ANID:GNchy+kS
>>41
おまえも大差ないなw日本語に問題あり。
2013/09/26(木) 22:02:35.17ID:3XX1+nqn
ないからアップデートかけたら芋づる式に大量のソフトが入れ替わるんだろw
2013/09/27(金) 08:07:21.03ID:yN+EWUQe
glibcみたいなコア中のコアはそうそうABI互換崩れないけどね。
2014/02/06(木) 10:06:42.00ID:h2uXKLtR
作る側の思惑なんて関係ないんだよ
バイナリ互換が無いからみんなWindowsを使うんだよ
Linux使うくらいならMacの方が使いやすい(=バイナリ互換がある)んだよ
犬使うのは犬好きとOSマニアだけになっているのが現状

携帯みたいにユーザーへ影響があるPC用キラーソフトかPC用キラーハードが待ち遠しいぜ
46login:Penguin
垢版 |
2016/07/13(水) 14:51:17.93ID:k4aOOsOV
http://hayabusa6.2ch.net/test/read.cgi/linux/1466587869/216-
47login:Penguin
垢版 |
2017/12/29(金) 15:30:50.01ID:S/CsVkMC
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

JTAQT7M8AK
48login:Penguin
垢版 |
2018/05/22(火) 09:58:37.85ID:Czl6p0FW
僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

KL34O
49login:Penguin
垢版 |
2018/07/18(水) 21:10:33.90ID:KfPx2yu8
libc次第
50login:Penguin
垢版 |
2018/07/19(木) 09:32:51.48ID:36pQT3q0
libcじゃなくて、コンパイラの所為だろ。
2018/07/19(木) 14:08:22.92ID:eAIOTfor
はぁ?コンパイラは関係ねーだろ
釣りにすらなってねーぞ
2018/07/19(木) 17:04:50.62ID:+7X+A5pU
両方関係あるんだよなぁ
53login:Penguin
垢版 |
2018/07/19(木) 17:28:32.23ID:aByD1Jqk
>>51
カーネルが典型的な例。
ドライバの互換性は、コンパイラが変わるだけでもなくなる。
2018/07/19(木) 18:17:41.31ID:eAIOTfor
なんでドライバの話が出てくるんだよ
そりゃドライバだってバイナリだけど少なくとも>>1は読もうぜ
お前らそういった分別すらつかなくなったのか?
2018/07/19(木) 18:24:48.25ID:eAIOTfor
ちな、miscのカーネルモジュールはコンパイラのバージョンが違くてもロードできるからな
全て論破されてるの解るか?
2018/07/19(木) 19:16:10.54ID:+7X+A5pU
それはCが十分に枯れてるから運良く問題が起きてないってだけなんだよなぁ
実際はABIが規定されてるわけじゃないからコンパイラの胸三寸で生成するバイナリの互換性をいくらぶっ壊そうがそれはルール違反じゃない

https://github.com/torvalds/linux/blob/master/Documentation/process/stable-api-nonsense.rst
実際カーネル付属のドキュメントでもビルドに使ったコンパイラのバージョンによっても構造体の詰物とかのデータの構造が変わる可能性がある事は言及されてるからね
ハイ、ロンp!
2018/07/19(木) 19:46:33.06ID:eAIOTfor
お前らが書いたことの説明をしてるだけで流れを論破してないじゃん
あと運良くなんて存在しない
2018/07/19(木) 19:49:29.39ID:+7X+A5pU
はい、反論できないと話題そらしーwww
2018/07/19(木) 19:56:41.22ID:eAIOTfor
因縁つけて焦点ずらして何が楽しいんだ?

>>1はきちんと読んだのか?
・ドライバという全く関係ない話だとしてもコンパイラが違っても互換がある場合もあるぞ?

違うのか?あ?
2018/07/19(木) 20:00:23.85ID:+7X+A5pU
ファーーーwww
自分で「コンパイラは関係ねーだろ」とか言っときながら「コンパイラが違っても互換がある場合もあるぞ」とかいい出したwwwww
うんうんそうだね、互換がある場合「も」あるね、そして「も」ってことはない可能性「も」あるねwww
じゃあコンパイラは関係あるねwwwwwww
はwwwいwwwちwwwwwんwwwwwぱーーーーーーーwwwwwwwwww
レスを投稿する


ニューススポーツなんでも実況