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:L5BkpBqn0030login:Penguin
2012/03/12(月) 23:31:01.11ID:HoNJEposモノリシックでも、せめてNetBSDみたいにMI/MDを分離すべきだったな。
単なるゴチャ混ぜ、gdgdなだけのLinux kernel...
Linusも20年前と言ってることが正反対だしぃ。
0031login:Penguin
2012/03/12(月) 23:53:17.74ID:baGPtD41この板に張り付いて書き込んでる人達にも同じ臭いを感じるぜ
0032login:Penguin
2012/03/12(月) 23:59:49.81ID:a3oLpxGm正式なLinuxカーネル開発会社を起業すべき。
そんで、企業サポートの名のもとに、まともなABIと完全なバイナリ互換を補償しろや。
0033login:Penguin
2012/03/13(火) 00:08:36.11ID:KDpxLFscあめぞうからパクった2chみたいに。
0034login:Penguin
2012/03/13(火) 00:24:43.44ID:KDpxLFsc0035login:Penguin
2012/03/13(火) 00:41:03.14ID:XEqUJYrfそしたらハードウェアメーカーもビジネスチャンス増えるでしょ。
それか、Linuxのほうが、Windowsのドライバをそのまま使える仕組みを入れればいいんじゃないの?
0036login:Penguin
2012/03/13(火) 01:16:47.23ID:lDK2KLr40037login:Penguin
2012/03/13(火) 01:42:05.91ID:8AsNMusWはあ、いい加減なドライバー作りましたって言ってるのか?
一時、ドライバ作ります的な流れがあったんだけど、kernel方面
0038login:Penguin
2012/03/13(火) 02:09:49.49ID:nKr+C/4Qハードの方をどうにかしようとしたら、例えばアナログラジオみたいに
プロセッサなんて使いませんというくらいのものにしなきゃいけない
だろうから無理だろうけど、ドライバの無い状況を想像するのは可能。
要するにアプリが直接ハードを叩く。Xサーバーがグラフィックカードを
音楽再生アプリがサウンドカードを、ライティングソフトがドライブを
直接制御するようなことを考えれば想像し易い。
ただしアプリが占有すると困るものも多々あるので、各ハードウェア毎に
専用の制御プロセスがメーカー等から提供されて、それらがプロセス間
通信でやりとりしながら協調動作する形に落ち着く。
それなんてマイクロ(ry
0039login:Penguin
2012/03/13(火) 02:43:16.35ID:SuHCuBnKカーネル開発スタッフのヒエラルキーも崩れてしまうんではないの?
0040login:Penguin
2012/03/13(火) 04:35:00.62ID:1fFC/8Hu0041login:Penguin
2012/03/13(火) 04:36:33.75ID:8AsNMusW0042login:Penguin
2012/03/13(火) 11:57:40.23ID:4opldOAK>要するにアプリが直接ハードを叩く。Xサーバーがグラフィックカードを
>音楽再生アプリがサウンドカードを、ライティングソフトがドライブを
>直接制御するようなことを考えれば想像し易い。
それをしたくないからドライバーあるんじゃないの。
たとえばサウンドカードなんて無数にあるのにアプリが全部対応できるわけない。
0043login:Penguin
2012/03/13(火) 11:58:25.06ID:4opldOAKWindowsがそれやってるな
0044login:Penguin
2012/03/13(火) 16:20:09.94ID:qixrR3enkernel.orgで行われていた議論の論点と、滅茶苦茶ずれてる。
というか、ほとんど関係のない、勘違い話してる。
0045login:Penguin
2012/03/13(火) 17:00:58.93ID:dBuLw4viおいおい、kernel.orgの議論なんて知ったこっちゃないさ。当たり前だろ
それ程面白くないしタイトル見て分かる通りこのスレはネタスレだから
0046login:Penguin
2012/03/13(火) 17:17:18.84ID:ja3xvS7Z0047login:Penguin
2012/03/16(金) 16:45:10.86ID:DsuwJYoU(なんかワイヤレスLANがらみに手が入ったようなんだが)
うちのPCのRHINE2(NIC)がIRQエラー吐きつづけている。
これってやっぱカーネルにドライバがはっているせい?
RHINE2のドライバのソースは2003年製で
そのあと更新されている形跡がないのだが。
もはやコンパイルが通らない。
どうしたものか…
まぁ、使ってないからいいんだけど
syslogがうざくて。
[ 19.627065] via-rhine 0000:00:12.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[ 19.627408] via-rhine 0000:00:12.0: eth1: VIA Rhine II at 0x*******, xx:xx:xx:xx:xx:xx, IRQ 23
...
[ 5683.476022] Polling IRQ 23
[ 5684.476020] Reenabling IRQ 23
...
Message from syslogd@localhost at Mar 16 16:38:01 ...
kernel:[ 5743.020899] Disabling IRQ 23
■ このスレッドは過去ログ倉庫に格納されています