トップページ⇒linux
278コメント95KB

Linuxはカーネルからドライバを完全分離する時が来たね

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin2012/03/12(月) 04:08:04.12ID:khwvZHK+
遅すぎるぐらいだが。
0002login:Penguin2012/03/12(月) 04:16:00.05ID:9YevqZjU
分離って、なんのこと言ってるのかな?
バイナリーとしては切り離せるようになってるけど、昔から
0003login:Penguin2012/03/12(月) 04:20:25.42ID:khwvZHK+
http://slashdot.jp/story/11/06/22/0911201/Linus-Torvalds%E6%B0%8F%E3%80%81ARM%E7%94%A8%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E5%99%9B%E3%81%BF%E4%BB%98%E3%81%8F

3月31日、LinusはLinuxカーネルのメーリングリストに宛てたメッセージで
「つまり私が言いたいのは、ARMデバイス用のドライバを闇雲にLinuxカーネルに
加えるべきでないということだ」「なぜなら、それは動かないからだ。長期的に見れば、
これらの変更はメンテナンスできないゴミだ。」「カーネル内に組み込むべきではない」と述べており、
4月18日には「無意味なプラットフォームのコードが果てしない程あるというのは
問題だってことに皆気がつかなくてはならないし、唯一私にできることといったら
『直す努力を怠るようなら、お前達から離れるぞ』と言うことだけだ。最終的にはそうすることになるだろうが」と
強気な姿勢を崩していない。

ARM用Linuxカーネルを開発するLinaroのDavid Rusling氏によれば、新カーネルに対して
およそ70,000ものARMコードが追加されるのに対し、x86コードはたったの5,000程
しか追加されていないとのこと。Torvalds氏の苛立ちはもっともであると思われる。
0004login:Penguin2012/03/12(月) 04:34:51.12ID:c7mzFDko
>>2
カーネルモジュールはカーネルとファイルは分かれていても、その特定のカーネルのバージョンに密接に依存しすぎていて
カーネルとドライバが分離しているとは言いがたい。
ファイルが分かれているだけで密接に癒着している。
カーネルのバージョンがわずかに上がっただけでもカーネルモジュールはエラーを出して読み込まない。
強制的に読み込ますオプションはあるが動く保証はないし実際に動かないことも多い。
Linuxのドライバにはカーネルのバージョンに格バージョンに対してのバイナリ互換が全く無いということだ。
おまけにソース互換すらあまりない。
0005login:Penguin2012/03/12(月) 04:37:34.81ID:9YevqZjU
armの命令体型だと汎用的な作り込みがし難いって言ってるだけでしょ
下位互換性が無いようにしてるのは、わざとじゃないの
0006login:Penguin2012/03/12(月) 06:14:22.83ID:dUxfatOt?2BP(1230)
カーネル空間以外からハードウェア制御なんかできたら欠陥構造だろ
0007login:Penguin2012/03/12(月) 09:13:20.62ID:L5BkpBqn
鶏肉と人形が支配するカーネル空間
0008login:Penguin2012/03/12(月) 11:40:09.36ID:SvjO9eMj
新ディストリ完全分離Linuxはまだか?
0009login:Penguin2012/03/12(月) 11:42:31.66ID:fAuugTIp
>>6
カーネルを構成しているファイルが1つとカーネル空間で1塊は
また意味が違うと思うが。プラットホームごとに明らかに無駄な
部分がリンクされないカーネルが自動で作れればいいんじゃね?
起動時にメモリ上に読み込まれなければHDDの中にあったところで
そんなに問題じゃないと思うけどな。
0010login:Penguin2012/03/12(月) 12:51:09.79ID:yRRdLxRf
マイクロカーネル化しろとは言わんが、少しずつ分離はしていかんとな
0011login:Penguin2012/03/12(月) 13:36:52.99ID:Er/NhAVu
>>4
ドライバーのいろいろな構造体(テーブル)をカーネルのバージョンが上がるたびに
変更するんだもの、そのたびにドライバーのソースの変更が必要になる。
Windowsは嫌いだがこういう点はWindowsを見習って欲しいね。
FreeBSD系はカーネルのバージョンがちょっと上がったくらいでドライバーのソース
の変更が発生することはめったにないと思うのだが…
0012login:Penguin2012/03/12(月) 14:05:44.08ID:9YevqZjU
互換性もったら、使い捨てになる奴が増えるんじゃないの?
そういう状態が嬉しい側?
0013login:Penguin2012/03/12(月) 15:08:17.12ID:0vI/GQma
メンテ放棄で使い捨てになるドライバは所詮ゴミ
カーネルソースに入れる必要はないと思うけど
0014login:Penguin2012/03/12(月) 16:01:28.35ID:Er/NhAVu
ちゃんと動けばなんでもいいよ
0015login:Penguin2012/03/12(月) 18:14:09.59ID:1NTMdULc
>>14
ちゃんと動かすためにいつまでも古いカーネルを使い続けてもいいの?
そのためにいつまでも古いパソコンを使うことにもなる。
0016login:Penguin2012/03/12(月) 18:16:57.91ID:9YevqZjU
メンテしたくないなら、patch提供して取り込んでもらえばいいのに
見られたくない事でもしてるのかね?
0017login:Penguin2012/03/12(月) 18:39:24.19ID:dUxfatOt
多分、自作PC板ARM搭載PCスレの延長なんだろうけど
今でも十分柔軟性があるとは思うけどね
プロプライエタリなドライバが少ないのは実装よりシェアの問題だし
0018login:Penguin2012/03/12(月) 19:33:56.10ID:0vI/GQma
利用者が少なくメンテもされないドライバに対して
メンテ嫌ならパッチ提供って何のことだ?

ニーズのないドライバでもマージしたらカーネル維持の仕事がムダに増える
そんなアホな作業が増えたらやってられんって話だと思ったが
0019login:Penguin2012/03/12(月) 19:50:44.51ID:9YevqZjU
その程度で、verupがどうとか言ってるのかよ
0020login:Penguin2012/03/12(月) 20:17:33.89ID:9osQBCTi
おかしいのは、普通は一度作ってバグのないデバイスドライバにメンテは要らないだろう。
カーネルのバージョンアップと共にソースを書き直してコンパイルし直すというメンテを必要としているLinuxカーネル側の設計ミスだろうこれは。
メンテ、メンテって言っているやつバカ?
バグがないのならメンテの必要ないシステムを考えるべきだ。
0021login:Penguin2012/03/12(月) 21:01:13.06ID:0vI/GQma
Linuxのデバイスドライバインターフェースがグダグダなのは今更だし
それとどうでもいいドライバのマージや保守は別の話だろ
0022login:Penguin2012/03/12(月) 21:03:00.08ID:9YevqZjU
グダグダな部分を示してくれや
0023login:Penguin2012/03/12(月) 21:55:50.53ID:khwvZHK+
LinuxってWindowsでいうフィルタドライバみたいな機能がないでしょ?
ドライバとドライバの間に入れて、別のドライバを拡張したりする奴。

OSとドライバのインターフェースがきっちり決まってるからこそ、
このように間に割り込ませる汎用の方法ができるんだよね。

Linuxだとドライバに特定の機能を追加しようとしたら
ソースコードにパッチを当てて修正という作業になる。
0024login:Penguin2012/03/12(月) 22:03:39.24ID:khwvZHK+
>>16
> メンテしたくないなら、patch提供して取り込んでもらえばいいのに
> 見られたくない事でもしてるのかね?

だから、そのpatchを誰がメンテするんだってこと?
ドライバに関しては、カーネルのバージョンが上がるたびに
メンテしないといけない状況になる。

取り込んで終わりというわけにはいかない。
たとえ不具合がなくとも、メンテが必要。
こんなんじゃニッチなドライバはLinuxでは使えなくなっていくよね。

そもそも、>>20がいうように、メンテが必要なのがおかしい。
しっかりドライバのインターフェースを定めておけば、
カーネルがメジャーアップデートでもしない限り互換性が保てるはず。
そうなればメンテする必要も少なくなってメンテナがつかれることも減るだろう。
0025login:Penguin2012/03/12(月) 22:11:29.67ID:Er/NhAVu
カーネルのバージョンが上がってなにかドライバーに新しい機能が使えるようになったのなら
積極的にドライバーのソースを直して新機能に対応させるのだが、そうでなくただ構造体が変更に
なっただけでドライバー自体は安定動作しているのにソースコードを修正する作業が発生するのは
メンテナーにはちっともありがたくない。
0026login:Penguin2012/03/12(月) 22:15:42.65ID:Er/NhAVu
>>24
>しっかりドライバのインターフェースを定めておけば、
>カーネルがメジャーアップデートでもしない限り互換性が保てるはず。

なんかしらんがカーネルのバージョンがちょっと上がっただけで
ころころテーブルフォーマットを変更するんだよな。
なんか意味があって改良になっているんだろうがよくわかんない。
0027login:Penguin2012/03/12(月) 22:17:00.44ID:khwvZHK+
もうそろそろバイナリ互換というものを
真剣に考えるときがきているのだろうな。
0028login:Penguin2012/03/12(月) 23:20:31.03ID:baGPtD41
この手のスレは必ずバイナリ互換という言葉が現れるな

それはいいとして
こんな所にスレ立ててまで主張したいことがあるんなら
コミュニティーとかに飛び込めばいいのに
0029login:Penguin2012/03/12(月) 23:28:36.22ID:L5BkpBqn
コミュニティって狂信者しかいないイメージ
0030login:Penguin2012/03/12(月) 23:31:01.11ID:HoNJEpos
だからモノリシックは駄目だと言ったのに… by 20年以上前のAST教授

モノリシックでも、せめてNetBSDみたいにMI/MDを分離すべきだったな。
単なるゴチャ混ぜ、gdgdなだけのLinux kernel...
Linusも20年前と言ってることが正反対だしぃ。
0031login:Penguin2012/03/12(月) 23:53:17.74ID:baGPtD41
>>29
この板に張り付いて書き込んでる人達にも同じ臭いを感じるぜ
0032login:Penguin2012/03/12(月) 23:59:49.81ID:a3oLpxGm
Linusは責任とって、Linux Foundatin出資でも、合弁会社でも何でもいいから
正式なLinuxカーネル開発会社を起業すべき。
そんで、企業サポートの名のもとに、まともなABIと完全なバイナリ互換を補償しろや。
0033login:Penguin2012/03/13(火) 00:08:36.11ID:KDpxLFsc
ていうか、UNIXから適当にパクっただけだから、そもそも設計とかして無いだろ。
あめぞうからパクった2chみたいに。
0034login:Penguin2012/03/13(火) 00:24:43.44ID:KDpxLFsc
何か開発するのに、いちいち気持ち悪い野良犬コミュニティと「延々と」付きわなきゃいけない。
0035login:Penguin2012/03/13(火) 00:41:03.14ID:XEqUJYrf
ハードウェアのほうをさ、ドライバーをいらない作りにしたらいいんじゃないの?
そしたらハードウェアメーカーもビジネスチャンス増えるでしょ。

それか、Linuxのほうが、Windowsのドライバをそのまま使える仕組みを入れればいいんじゃないの?
0036login:Penguin2012/03/13(火) 01:16:47.23ID:lDK2KLr4
どうやって動かすんだよ・・・
0037login:Penguin2012/03/13(火) 01:42:05.91ID:8AsNMusW
>>24
はあ、いい加減なドライバー作りましたって言ってるのか?
一時、ドライバ作ります的な流れがあったんだけど、kernel方面
0038login:Penguin2012/03/13(火) 02:09:49.49ID:nKr+C/4Q
>>36
ハードの方をどうにかしようとしたら、例えばアナログラジオみたいに
プロセッサなんて使いませんというくらいのものにしなきゃいけない
だろうから無理だろうけど、ドライバの無い状況を想像するのは可能。

要するにアプリが直接ハードを叩く。Xサーバーがグラフィックカードを
音楽再生アプリがサウンドカードを、ライティングソフトがドライブを
直接制御するようなことを考えれば想像し易い。

ただしアプリが占有すると困るものも多々あるので、各ハードウェア毎に
専用の制御プロセスがメーカー等から提供されて、それらがプロセス間
通信でやりとりしながら協調動作する形に落ち着く。

それなんてマイクロ(ry
■ このスレッドは過去ログ倉庫に格納されています