Linuxはカーネルからドライバを完全分離する時が来たね
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2012/03/12(月) 04:08:04.12ID:khwvZHK+0002login:Penguin
2012/03/12(月) 04:16:00.05ID:9YevqZjUバイナリーとしては切り離せるようになってるけど、昔から
0003login:Penguin
2012/03/12(月) 04:20:25.42ID:khwvZHK+3月31日、LinusはLinuxカーネルのメーリングリストに宛てたメッセージで
「つまり私が言いたいのは、ARMデバイス用のドライバを闇雲にLinuxカーネルに
加えるべきでないということだ」「なぜなら、それは動かないからだ。長期的に見れば、
これらの変更はメンテナンスできないゴミだ。」「カーネル内に組み込むべきではない」と述べており、
4月18日には「無意味なプラットフォームのコードが果てしない程あるというのは
問題だってことに皆気がつかなくてはならないし、唯一私にできることといったら
『直す努力を怠るようなら、お前達から離れるぞ』と言うことだけだ。最終的にはそうすることになるだろうが」と
強気な姿勢を崩していない。
ARM用Linuxカーネルを開発するLinaroのDavid Rusling氏によれば、新カーネルに対して
およそ70,000ものARMコードが追加されるのに対し、x86コードはたったの5,000程
しか追加されていないとのこと。Torvalds氏の苛立ちはもっともであると思われる。
0004login:Penguin
2012/03/12(月) 04:34:51.12ID:c7mzFDkoカーネルモジュールはカーネルとファイルは分かれていても、その特定のカーネルのバージョンに密接に依存しすぎていて
カーネルとドライバが分離しているとは言いがたい。
ファイルが分かれているだけで密接に癒着している。
カーネルのバージョンがわずかに上がっただけでもカーネルモジュールはエラーを出して読み込まない。
強制的に読み込ますオプションはあるが動く保証はないし実際に動かないことも多い。
Linuxのドライバにはカーネルのバージョンに格バージョンに対してのバイナリ互換が全く無いということだ。
おまけにソース互換すらあまりない。
0005login:Penguin
2012/03/12(月) 04:37:34.81ID:9YevqZjU下位互換性が無いようにしてるのは、わざとじゃないの
0007login:Penguin
2012/03/12(月) 09:13:20.62ID:L5BkpBqn0008login:Penguin
2012/03/12(月) 11:40:09.36ID:SvjO9eMj0009login:Penguin
2012/03/12(月) 11:42:31.66ID:fAuugTIpカーネルを構成しているファイルが1つとカーネル空間で1塊は
また意味が違うと思うが。プラットホームごとに明らかに無駄な
部分がリンクされないカーネルが自動で作れればいいんじゃね?
起動時にメモリ上に読み込まれなければHDDの中にあったところで
そんなに問題じゃないと思うけどな。
0010login:Penguin
2012/03/12(月) 12:51:09.79ID:yRRdLxRf0011login:Penguin
2012/03/12(月) 13:36:52.99ID:Er/NhAVuドライバーのいろいろな構造体(テーブル)をカーネルのバージョンが上がるたびに
変更するんだもの、そのたびにドライバーのソースの変更が必要になる。
Windowsは嫌いだがこういう点はWindowsを見習って欲しいね。
FreeBSD系はカーネルのバージョンがちょっと上がったくらいでドライバーのソース
の変更が発生することはめったにないと思うのだが…
0012login:Penguin
2012/03/12(月) 14:05:44.08ID:9YevqZjUそういう状態が嬉しい側?
0013login:Penguin
2012/03/12(月) 15:08:17.12ID:0vI/GQmaカーネルソースに入れる必要はないと思うけど
0014login:Penguin
2012/03/12(月) 16:01:28.35ID:Er/NhAVu0015login:Penguin
2012/03/12(月) 18:14:09.59ID:1NTMdULcちゃんと動かすためにいつまでも古いカーネルを使い続けてもいいの?
そのためにいつまでも古いパソコンを使うことにもなる。
0016login:Penguin
2012/03/12(月) 18:16:57.91ID:9YevqZjU見られたくない事でもしてるのかね?
0017login:Penguin
2012/03/12(月) 18:39:24.19ID:dUxfatOt今でも十分柔軟性があるとは思うけどね
プロプライエタリなドライバが少ないのは実装よりシェアの問題だし
0018login:Penguin
2012/03/12(月) 19:33:56.10ID:0vI/GQmaメンテ嫌ならパッチ提供って何のことだ?
ニーズのないドライバでもマージしたらカーネル維持の仕事がムダに増える
そんなアホな作業が増えたらやってられんって話だと思ったが
0019login:Penguin
2012/03/12(月) 19:50:44.51ID:9YevqZjU0020login:Penguin
2012/03/12(月) 20:17:33.89ID:9osQBCTiカーネルのバージョンアップと共にソースを書き直してコンパイルし直すというメンテを必要としているLinuxカーネル側の設計ミスだろうこれは。
メンテ、メンテって言っているやつバカ?
バグがないのならメンテの必要ないシステムを考えるべきだ。
0021login:Penguin
2012/03/12(月) 21:01:13.06ID:0vI/GQmaそれとどうでもいいドライバのマージや保守は別の話だろ
0022login:Penguin
2012/03/12(月) 21:03:00.08ID:9YevqZjU0023login:Penguin
2012/03/12(月) 21:55:50.53ID:khwvZHK+ドライバとドライバの間に入れて、別のドライバを拡張したりする奴。
OSとドライバのインターフェースがきっちり決まってるからこそ、
このように間に割り込ませる汎用の方法ができるんだよね。
Linuxだとドライバに特定の機能を追加しようとしたら
ソースコードにパッチを当てて修正という作業になる。
0024login:Penguin
2012/03/12(月) 22:03:39.24ID:khwvZHK+> メンテしたくないなら、patch提供して取り込んでもらえばいいのに
> 見られたくない事でもしてるのかね?
だから、そのpatchを誰がメンテするんだってこと?
ドライバに関しては、カーネルのバージョンが上がるたびに
メンテしないといけない状況になる。
取り込んで終わりというわけにはいかない。
たとえ不具合がなくとも、メンテが必要。
こんなんじゃニッチなドライバはLinuxでは使えなくなっていくよね。
そもそも、>>20がいうように、メンテが必要なのがおかしい。
しっかりドライバのインターフェースを定めておけば、
カーネルがメジャーアップデートでもしない限り互換性が保てるはず。
そうなればメンテする必要も少なくなってメンテナがつかれることも減るだろう。
0025login:Penguin
2012/03/12(月) 22:11:29.67ID:Er/NhAVu積極的にドライバーのソースを直して新機能に対応させるのだが、そうでなくただ構造体が変更に
なっただけでドライバー自体は安定動作しているのにソースコードを修正する作業が発生するのは
メンテナーにはちっともありがたくない。
0026login:Penguin
2012/03/12(月) 22:15:42.65ID:Er/NhAVu>しっかりドライバのインターフェースを定めておけば、
>カーネルがメジャーアップデートでもしない限り互換性が保てるはず。
なんかしらんがカーネルのバージョンがちょっと上がっただけで
ころころテーブルフォーマットを変更するんだよな。
なんか意味があって改良になっているんだろうがよくわかんない。
0027login:Penguin
2012/03/12(月) 22:17:00.44ID:khwvZHK+真剣に考えるときがきているのだろうな。
0028login:Penguin
2012/03/12(月) 23:20:31.03ID:baGPtD41それはいいとして
こんな所にスレ立ててまで主張したいことがあるんなら
コミュニティーとかに飛び込めばいいのに
0029login:Penguin
2012/03/12(月) 23:28:36.22ID:L5BkpBqn■ このスレッドは過去ログ倉庫に格納されています