トップページ⇒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
0039login:Penguin2012/03/13(火) 02:43:16.35ID:SuHCuBnK
インターフェイス固定したらメーカーがバイナリでドライバ配布したり
カーネル開発スタッフのヒエラルキーも崩れてしまうんではないの?
0040login:Penguin2012/03/13(火) 04:35:00.62ID:1fFC/8Hu
別にバイナリでドライバ配布悪いことじゃないだろ
0041login:Penguin2012/03/13(火) 04:36:33.75ID:8AsNMusW
それ言うと、ライセンスどうたらの流れになるような
0042login:Penguin2012/03/13(火) 11:57:40.23ID:4opldOAK
>>38
>要するにアプリが直接ハードを叩く。Xサーバーがグラフィックカードを
>音楽再生アプリがサウンドカードを、ライティングソフトがドライブを
>直接制御するようなことを考えれば想像し易い。

それをしたくないからドライバーあるんじゃないの。
たとえばサウンドカードなんて無数にあるのにアプリが全部対応できるわけない。
0043login:Penguin2012/03/13(火) 11:58:25.06ID:4opldOAK
>>40
Windowsがそれやってるな
0044login:Penguin2012/03/13(火) 16:20:09.94ID:qixrR3en
なんか>>1とその取り巻き?か自演が壮大な勘違いしているスレに見えるけど・・・
kernel.orgで行われていた議論の論点と、滅茶苦茶ずれてる。
というか、ほとんど関係のない、勘違い話してる。
0045login:Penguin2012/03/13(火) 17:00:58.93ID:dBuLw4vi
>>44
おいおい、kernel.orgの議論なんて知ったこっちゃないさ。当たり前だろ
それ程面白くないしタイトル見て分かる通りこのスレはネタスレだから
0046login:Penguin2012/03/13(火) 17:17:18.84ID:ja3xvS7Z
まともな議論できるような人はこっちに来ないよね。
0047login:Penguin2012/03/16(金) 16:45:10.86ID:DsuwJYoU
すまん、先週の2回前のカーネルアップデートから
(なんかワイヤレス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

0048login:Penguin2012/03/16(金) 17:44:14.09ID:h0xF1Usy
>>47
日本語でおけ
0049login:Penguin2012/03/16(金) 18:12:20.00ID:bhRIzDAZ
>>47
ここ質問スレじゃないよ。
0050login:Penguin2012/03/16(金) 18:48:00.12ID:QO1H+a6Q
>>47
今まで使えているデバイスドライバを使い続けたければ
カーネルは更新してはいけない。
こういうトラブルが嫌な人のために有料のLinuxの高機能ディス鳥であるWindowsが存在する。
0051login:Penguin2012/03/16(金) 19:38:23.27ID:+QBbOQyJ
>>47
解決と言うか、オンボNICならBIOS等でDisableにしちゃうとか。
0052login:Penguin2012/03/16(金) 21:31:08.53ID:DsuwJYoU
>>51
それだっ!!。なんで気づかなかったんだろ。
つーかこのマザボは、もともとカーネル更新の度に
NICのドライバをコンパイル・インスコするのが面倒で
普通に認識されるの別の1000円蟹NIC差してたんだった。
忘れてたよ。

でもここ数年は知らんうちに両方のNICが動くようになってて
カーネルに取り込まれたのかねぇとか思っていたんだけど。
ありがとね。

まぁ、近々マザボ交換する予定なんだけどね。

さて、今度は(チップセット)ドライバのおかげでマザボの交換だけするか
OSの再インストールにするか悩みどころだよ

カーネルとドライバの分離ってありかもしれんね。
0053login:Penguin2012/03/16(金) 23:11:02.44ID:TaPzQg9u
kABIも知らんのか
0054login:Penguin2012/03/17(土) 08:06:41.68ID:S+VvOKbM
>>53
それ、RH厨しかしらない専門用語
0055login:Penguin2012/03/17(土) 14:44:08.86ID:pw1PzXpk
要するに、誰もメンテしなくなるようなドライバを
Linuxカーネルに入れるなってことだろ?
昔のGPUドライバ。今メンテされてないよね。
GPUドライバもカーネルに入れるべきではないんじゃね?
0056login:Penguin2012/03/17(土) 14:51:24.92ID:pw1PzXpk
例えばUSB4.0なんてものができて
いち早くそれに対応した、無名のメーカーがある。

将来このメーカーはUSB4.0で大きくなるかもしれないが、
Linuxは大きくなるまで、サポートしないわけだよね。
だって他のメーカーが製品作って、すぐ誰も
メンテナンスしなくなるかもしれないじゃん。

リーナスの考えは、Linuxは新しいデバイスに対応しないって
悪い流れを更に推し進めるものになるよ。
Linuxは新しいのも古いのもメジャーなもの以外は対応しない
0057login:Penguin2012/03/17(土) 19:08:10.44ID:oP2ZyJls
デブ専のステマか
0058login:Penguin2012/03/18(日) 22:28:14.24ID:jlvZAE6y
>>55
>>3の話?
ぜんぜん違うよ。
これは元の報道自体が説明不足でミスリーディングしてんだけど、
Linusが問題にしていたのは、ARMの組み込み用のSoCがたくさんあって、
そのSoC専用の、主にペリフェラル用の、コード群を、抽象化して共通化せずに、
SoC毎に別のドライバとして提供されたのを、マージしようとしていたこと。
組み込みCPU作った奴らのコードが場当たり的で、抽象化が甘いから起きた問題。
Linuxカーネル構造の固有の問題じゃないし、kernel.orgの体制の不備でもない。
指針ドキュメントが不足していたということは言えると思う。

Linusはトサカにくると言葉が荒くなって説明が下手になるのも祭りになる原因の一つだが。
0059login:Penguin2012/03/18(日) 22:34:34.46ID:MmrcJrwn
>>58
えっと、ARMで抽象化は無理だよ。

ARMってのは、基本はあれど、それに対して
無限にあるいろんな拡張を施して製品にする。
だから製品毎に全く違うものが出来上がる。


http://pc.watch.impress.co.jp/docs/2009/0312/hot601.htm
 逆にARMのビジネスは、差別化の戦略にある。同じARMコアを採用していても、
A社の最終製品とB社の最終製品は互換性を持たない。ライセンシーごと
、あるいはプラットフォームごとに差異化された世界だ。
たとえばTIのOMAP用に書かれたソフトウェアが、NVIDIAのTegraでそのまま動いたりはしない。
もちろんプロセッサコアが同じアーキテクチャだから、注意深くプログラミングすれば、
他社のプラットフォームで動作するソフトウェアを制作することは不可能ではないが、
それはSoCに集積されたDSPやその他のI/O機能を利用しない、非効率なものになってしまう。
0060login:Penguin2012/03/18(日) 23:08:10.42ID:4+k9wvvv
よくわからないけど
その細かい差異を吸収して互換性を高めるためにOSを載せるんじゃないの?
同アーキテクチャ内の製品ごと柔軟に対応するためになるべく象徴化するわけで
もしも組込み等で独自の機能を使いたければソフトウェアの提供側でソースを修正するか、
それこそ独自のファームウェアでもいい
0061login:Penguin2012/03/18(日) 23:24:31.81ID:MmrcJrwn
>>60
PCってのはPC互換機とも言われるように、
ハードウェアレベルで細かい差異を吸収している。

ARMではそれがない。

だから、PCとCPUが同じだけどアーキテクチャが
違うものとして、昔NECのPC-98シリーズってのがあったけど、
ARMはそれと同じで、A社製ARM、B社製ARMといくつも
違うものが存在する。

それを単一のOSでサポートするならば、A社製アーキテクチャ、
B社製アーキテクチャって、アーキテクチャごとに対応しないといけない。
互換性がないのだから、ARMというくくりで一つにはできない。
0062login:Penguin2012/03/18(日) 23:46:48.63ID:Ly5bsK+Q
ドライバーはそもそも互換性なんてない。
周辺機器ごとに違う。
0063login:Penguin2012/03/19(月) 02:05:36.83ID:43FlxjNB
>>59
コード見ればわかるけど、そういうレベルじゃないんだよ。
出来る抽象化が行われてないコードがマージされようとしていた。
ドライバにすべき部分がもっとコアの部分のパッチになっていたり。
0064login:Penguin2012/03/19(月) 02:06:52.16ID:43FlxjNB
>>61
MicrosoftのSoCは固定してサポートする方針だけど、
>>61で言うようなレベルじゃないコードがマージされようとしていた。
0065login:Penguin2012/03/19(月) 03:41:11.02ID:2mUIztoh
具体的に言えば?
0066login:Penguin2012/03/19(月) 05:19:09.76ID:BIu6/OgO
そのためのデバイスマッパーへの対応だろ?armはplatform device をから切り替えようとしている
0067login:Penguin2012/03/19(月) 20:13:28.98ID:/cGywOeJ
をからってなんですねん
0068login:Penguin2012/03/19(月) 20:28:31.61ID:TmtIccbz
機械じゃないんならそれくらい読んでやれよ
日本語って難しいですね
0069login:Penguin2012/03/19(月) 20:40:21.33ID:fHtsMJFS
おからの煮物はおいしい
0070login:Penguin2012/03/20(火) 01:53:44.86ID:oOb/xGv+
だからカーネル開発会社作って、責任持ってバイナリ互換と企業サポートをやれよ。
コミュニティはグダグタ、ソースはごちゃまぜ。 誰も根本的な設計ミスを認めようとしない。

そこらのゴミかき集めてもゴミの山にしまならない。
臭いから、一から作りなおせよ。
0071login:Penguin2012/03/20(火) 01:56:52.47ID:oOb/xGv+
適当にパクるだけで、マトモに設計しないのがGNUなのか?
リリース前にDRぐらいしてんだろうな?
0072バイさるマスター2012/03/20(火) 02:01:13.33ID:RIu4mvwJ
ボットのつぶやき : A fool and your money are soon partners.
0073login:Penguin2012/03/20(火) 02:17:42.55ID:+/tay6Np
お受験の幼稚園児みたいなのが騒いでるな
0074login:Penguin2012/03/20(火) 03:56:49.13ID:1Swu4Na5
リーナスが標準の書き方と
サンプルを用意しないからコいうことになる。

いい加減その場のノリで修正するのではなく
修正が入らないような設計に変更しろ。

ドライバは、どのバージョンのどのディストリの
Linuxでも共通に使える。が原則だ。
0075login:Penguin2012/03/20(火) 03:58:57.12ID:+/tay6Np
ソース読めません状態がなんか言ってるな?
0076login:Penguin2012/03/20(火) 04:43:23.21ID:yCFwZRJs
一生懸命、LINUXを悪く言おうと必死なのが哀れみを誘う。

職を奪われたプロプラ系元開発者か、簿給でコキ使われているネガキャン要員か
0077login:Penguin2012/03/20(火) 04:47:17.46ID:ntlASaje
根本的な部分は十分標準化されてるでしょ
0078login:Penguin2012/03/20(火) 05:28:25.25ID:1Swu4Na5
カーネル更新するたびに
毎度毎度修正がはいって
互換性がなくなるようなものの
どこが標準化されてるって?w
0079login:Penguin2012/03/20(火) 05:30:01.72ID:+/tay6Np
>互換性がなくなるようなものの
?
0080login:Penguin2012/03/20(火) 05:31:42.25ID:1Swu4Na5
なんでLinuxは毎度毎度再コンパイルが必要なんだろうねw
0081login:Penguin2012/03/20(火) 05:33:05.54ID:+/tay6Np
脳内linuxでも使ってるのか?
0082login:Penguin2012/03/20(火) 05:38:48.05ID:ntlASaje
>>80
> なんでLinuxは毎度毎度再コンパイルが必要なんだろうねw
え?
0083login:Penguin2012/03/20(火) 05:48:39.67ID:1Swu4Na5
Linuxカーネルのモジュールは後述する互換性の問題から、
カーネルがリリースされる度にリビルドする必要がある。

モジュールのビルドはカーネルソースコードに含まれる
デバイスドライバに対するものとカーネルソースコードに
含まれない外部のカーネルモジュールに対するものの2通りあるが、
いずれもカーネルビルドのインフラを利用している。

通常、カーネルソースコードに含まれる一部のデバイスドライバは
カーネルコンフィグレーション(Kconfig)にてカーネルに直接静的リンクするか、
もしくはモジュールとして構築するかのいずれかを選ぶことができる。

モジュールとして構築することを選択した場合、カーネルソースのMakefileには
modulesというターゲットが存在し、予めこのディレクトリでカーネル
(に直接関係し、カーネルイメージの生成前段階のファイルvmlinux)を作成した後、
このmodulesターゲットを実行する事でモジュールのビルドと依存関係の解決用ファイルが生成される。
そして、make installを実行すると、システムにカーネルとモジュールを同時にインストールする。
0084login:Penguin2012/03/20(火) 05:50:50.97ID:1Swu4Na5
LinuxがLKMに提供しているAPIやABIは安定したものではない。
すなわち、カーネルのバージョンが異なれば内部のデータ構造や機能に差異があり、
非互換問題を発生する可能性がある。

Solaris、WindowsといったOSでは、カーネルのAPIとABIは
比較的安定に保たれており、このような問題を回避している。
0085login:Penguin2012/03/20(火) 05:57:13.14ID:ntlASaje
同じソースを利用できる時点で十分標準化されてるじゃん
堅牢性を求められるからこのような規約があるわけで
君がバイナリレベルでの互換を望むならWindowsでも使ってればいいんじゃないの?
0086login:Penguin2012/03/20(火) 06:13:17.23ID:CWRZW1dS
ID:1Swu4Na5、どっかから引用している文章は引用元書けよ。
0087login:Penguin2012/03/20(火) 06:58:00.16ID:oCDgHpi9
LinuxはAPIやABIが安定してないからな。
だからドライバのメンテナンスって作業が必要になる。

それが嫌だからカーネルに含めようとするんだろう。
一旦カーネルに含まれてしまえば、自分でメンテナンスル必要なくなるからな。

しかし根本的な問題は、ドライバのメンテナンスが必要とされる頻度が
高いってことだ。APIやABIが安定してないからね。

安定させれば、ドライバのメンテナンスを必要とせずに長期間使えるが、
そうすると今度はクローズドなドライバが増えるだろう。

Linuxはこのジレンマから抜けださないといけない。
おすすめはクローズドなドライバを認めて多数採用するってことだが。
0088login:Penguin2012/03/20(火) 07:07:42.60ID:oCDgHpi9
そもそもパッチじゃないとできないことが多すぎるんだろうな。

Windowsなんか、クローズドだから故に
パッチというものはまず存在しない。

だからパッチじゃなくてもドライバだけで実現可能なように
OS自体が柔軟な拡張性を持って設計されている。

Linuxがこのレベルに到達できるのはいつだろうね。
0089login:Penguin2012/03/20(火) 10:37:29.12ID:yCFwZRJs

>おすすめはクローズドなドライバを認めて多数採用するってことだが。

なんだ、これが言いたいだけだったのか、、、



”ドライバが不安定””しばしば書き換えなければいけない”といった文言が出てるけど
具体例は一度も書き込まれず。 ネガキャンにしても読む意義の少ないレスだな
0090login:Penguin2012/03/20(火) 11:46:07.07ID:VMGHwWVq
>>88
> Linuxがこのレベルに到達できるのはいつだろうね。
難しいんじゃないか?Windowsのクローズドな所があるが故に
いくらでも誤魔化せた。Win98とNT,2kは別物なのにAPIを
極力共通化し、カーネルだけさっと入れ替えた。

さらにドライバのインタフェースまで作って、ドライバ周りの作業を
カーネルの開発の作業から外へ追い出した。これはOSSには無理。
始めから設計しておかないといけない。

もしやるなら、ドライバインタフェースのレイヤを設けて、そこで
標準化する必要がある。コミュニティにそこまでリソースを掛けられるかどうか。
0091login:Penguin2012/03/20(火) 12:09:04.47ID:Hwwj1hKO
マイクロソフトはそのクローズドなドライバにすらドライバーのスケルトン
を提供してソースの一部(無償)を共有させることで全体のバランスを
保っていたと思うよ。
ハードウエアの特徴を個々に追加するのではなく、最初から拡張可能な
ゆとりがある設計は性能には繋がらない面があるがマイクロソフトは
その辺が非常に上手じゃないかとおもう。
NTのビデオシステムは当初、ユーザーモードで動くサブシステムで
非常に遅かったから次期でカーネルに組み込んだ。その後もカーネルだけで
は速度が遅いのを改良するためにDirectハードウエア関係の
拡張を繰り返してきた。
ハードウエアの抽象化とアプリケーションレベルでのハードウエア末端
の利用を同時にするのって間違った働きを完璧に検閲できないと無理
なんだろう。ドライバーを作った人がドライバーのBUG利用をさせない
為のコードを書き、パラメータの組み合わせ全てで動作を保証する
動作テストプログラムなどを同時に設計するのは金と時間がかかるんだろうね。
0092導入犬2012/03/20(火) 13:36:43.14ID:88ub99EO
WindowsマンセーをLinux板でやるところがコンプレックス丸出しなんだよ。
0093login:Penguin2012/03/20(火) 23:18:34.46ID:Sbz1ewXy
マンセー・・・?
0094login:Penguin2012/03/21(水) 00:31:39.80ID:DL5Rb0HD
こんなのがマンセーに見えるとか
0095login:Penguin2012/03/21(水) 00:56:22.11ID:7Tu8TQrw
*BSDでできてることが、Linuxでできないんだから
OSSか企業かの問題じゃないと思うよ。

コミュニティのやる気の問題。
パクリしかできないハッカーばっかりだから、設計とかしたことないだろ
0096login:Penguin2012/03/21(水) 01:01:08.88ID:7Tu8TQrw
GPLは甘え
0097login:Penguin2012/03/21(水) 03:01:29.68ID:qHV3VV6g
ほら、やっぱり。
「GPLなんてヤダ! GNUなんてなくなっちゃえ!!」 いいたいだけなんだよ。

もうプロプラの流れには戻らんし、BSDじゃ企業間のソース共有に不公平を生む
から現在のような競合他社が切磋琢磨しながらも、互いの成果を土台にして
ともに上を目指すような流れは起きにくい。

iPad向けのミニゲーム、便利アプリ開発するにはいいんじゃない? プロプラもBSDも
0098login:Penguin2012/03/21(水) 05:29:32.90ID:/tI1Iw/6
>>95
> *BSDでできてることが、Linuxでできないんだから
> OSSか企業かの問題じゃないと思うよ。
BSDには元々そういう設計思想が入っているじゃないの?
だからマイクロカーネルのMachはBSDサーバが標準になっていた。
後から作り直そうとすると、マイクロソフトみたいな誤魔化しを
やらなければならなくなる。

まず、マイクロカーネルのバージョン(Windows NTにあたる)を開発する。
とりあえずカーネルモード、ユーザモードに処理を振り分けて、
極力ユーザモードで処理してしまうようにする。
次にカーネルとドライバとHAL(ハードウェアを抽象化する層)を
カーネルから分離した状態にして切り分ける。

最終的にドライバのインタフェースを標準化して、正式なドライバのみを
認定していく。

この作業を今からOSSでやるとすると、どれくらいのリソースが
掛かるのか?という話なんだが?
0099login:Penguin2012/03/22(木) 01:02:17.08ID:Gq7eum/2
そもそも設計とか仕様調整とか統一規格の策定とかできる奴が、
「俺が、俺が」ばっかりのOSS界隈に居るのか疑問。
0100login:Penguin2012/03/22(木) 01:06:32.09ID:O+AuMM3k
腕がない奴は
自分でバカ発言する
のかね
0101login:Penguin2012/03/22(木) 01:14:04.05ID:Gq7eum/2
GPLは自由であることを強いる。
0102login:Penguin2012/03/22(木) 07:43:38.28ID:ivXFYhhi
GPLが問題なのではない、保守派と改革派が同じ土壌にいるからである。
0103login:Penguin2012/03/22(木) 18:50:10.12ID:l2iiocoG
で、どうすればいいのか?という話なんだが
0104login:Penguin2012/03/22(木) 19:23:06.52ID:+Y5zV3Cm
分離しなくていいんじゃね?と言う話
0105login:Penguin2012/03/22(木) 19:33:02.31ID:l2iiocoG
それでいいだろう。ということでこのスレも終了かw
0106login:Penguin2012/03/22(木) 19:35:53.53ID:eR5nleZs
今でも十分分離されていると思うけどね
でなきゃ今みたいに多くのアーキテクチャへ移植されてないもん
0107login:Penguin2012/03/22(木) 19:41:27.22ID:l2iiocoG
おそらく
ARM系とのごたごたで
>>83
が問題にされているんだろうけれど、今更カーネルを作り直すのは
容易でないだろうし
コンパイル文化があるから移植性が高いとも言えるし

俺も多くを望まないなら、今のままでいいと思う
0108login:Penguin2012/03/22(木) 19:51:08.77ID:HrImL8Dk
「分けるべき」って言ってるのはWindowsやOSXの元になってるBSDがマイクロカーネル
だから『LINUXは間違っている』と繰り返してるだけで、然したる理由もないんだけどね。

そういう連中に取ってはWINDOWSと同じ構造であるか、無いかってのが噛みつくに値する
理由なんだろうが
0109login:Penguin2012/03/22(木) 20:59:50.38ID:GWyjEzLl
Windowsのドライバはインストーラがバージョン見て変えてるだけだよ。
Windowsは共通のドライバでいいなんて嘘っぱち。
WinsockやDirect Xですらそれ自身のバージョンどころか、
同じバージョンでも乗ってるOS違ったら仕様が細かく変わりまくりで、
バージョン違いをアプリ側で対処しないといけないのに。
追従を許さない最大大手だからコストかけて対応してるだけの話。
開発者の多くはうんざりしてる。特に仕事でやってるんじゃない人は。
0110login:Penguin2012/03/22(木) 21:13:47.56ID:jY+HVAUZ
Solarisもドライバはバイナリで互換が合った。
Linuxはドライバ以前にバイナリの実行ファイルにバイナリ互換がない
0111login:Penguin2012/03/22(木) 21:19:33.70ID:eR5nleZs
よほど環境依存が強いプログラムでなければ、ある程度のバイナリ互換はあるでしょ
0112login:Penguin2012/03/22(木) 21:48:24.60ID:H4Nkscjw
カーネルのバージョンが同じならバイナリー互換性があるでしょ
0113login:Penguin2012/03/22(木) 21:52:08.22ID:GWyjEzLl
いやgccのABIが変わったりするとアウトな場合がある。
大げさに言い過ぎるのもどうかと思うが。
0114login:Penguin2012/03/22(木) 22:59:20.17ID:R0vMtRKL
>>109
仕様が変わっても互換性があるのなら問題ないんだよ。

>>112
> カーネルのバージョンが同じならバイナリー互換性があるでしょ

同じで互換性があるのは当たり前。
違っても互換性がなくちゃいかんだろ。
0115login:Penguin2012/03/22(木) 23:05:00.49ID:eR5nleZs
変に互換性を持たせて不整合が出るよりは幾分マシじゃないかな
ドライバはカーネルに直接触れるものなんだし、多少手間はかかってもリビルドするのは良いと思う
0116login:Penguin2012/03/22(木) 23:10:42.44ID:R0vMtRKL
不整合がでたときに、リビルドすればいいだけだろw

互換性があれば
不都合が出た場合・・・リビルドする
不都合が出ない場合・・・そのまま使える

互換性がなければ
不都合が出た場合・・・リビルドする
不都合が出ない場合・・・リビルドする

どっちが優れてるか言うまでもない。
0117login:Penguin2012/03/22(木) 23:17:17.27ID:eR5nleZs
用途はクライアントだけじゃないんだぞ
不具合が出る事自体が許されない場合の方が圧倒的に多いとおもうが
0118login:Penguin2012/03/22(木) 23:29:00.89ID:R0vMtRKL
許されない場合の時だけ、リビルドすればいいだけだろw

互換性があれば
許されない場合・・・リビルドする
許される場合・・・そのまま使える

互換性がなければ
許されない場合・・・リビルドする
許される場合・・・リビルドする

どっちが優れてるか言うまでもない。
0119login:Penguin2012/03/22(木) 23:32:01.25ID:R0vMtRKL
Linuxの場合よく、ドライバが認識できない→誰が作ったかわからん適当なパッチをあてる
なんてよくあるわけだが、そんなんで不具合が出る事自体許されないとか
ちゃんちゃらおかしい
0120login:Penguin2012/03/22(木) 23:41:51.86ID:eR5nleZs
>Linuxの場合よく、ドライバが認識できない
ドライバがハードウェアを認識できないってこと?
0121login:Penguin2012/03/23(金) 02:39:14.28ID:nsIEq+bK
>>120
うん。ドライバ製作者と
ハードウェア製作者が別だからね。
ドライバ製作者は完全にすべてのハードウェアに対応できない。
0122login:Penguin2012/03/23(金) 03:44:28.40ID:fIilFj3R
互換性があれば
不都合が出た場合・・・呑む
不都合が出ない場合・・・そのまま

互換性がなければ
不都合が出た場合・・・踊る
不都合が出ない場合・・・唄う

どっちが楽しいか言うまでも無い
0123login:Penguin2012/03/23(金) 03:57:15.03ID:KjKXwaRy
なかなか止められないのに
互換性があるのかないのかわからない・・・祈る
0124login:Penguin2012/03/23(金) 06:27:15.01ID:B9XBLSSF
お前らテストしろよ。
0125login:Penguin2012/03/23(金) 07:00:32.43ID:fIilFj3R
互換性があれば
不都合が出た場合・・・寝る
不都合が出ない場合・・・そのまま

互換性がなければ
不都合が出た場合・・・寝る
不都合が出ない場合・・・寝る

やるきなし
0126login:Penguin2012/03/23(金) 07:03:38.54ID:HptWyA0i
カーネルに密接する部品を変に互換性を持たせるのが間違いなんです
なるべく静的に保ったほうがいいんです
0127login:Penguin2012/03/23(金) 12:42:09.51ID:d0fhmSpg
ああ! 全て解決する方法を思いついてしまった
やばすぎてここには書けない
0128login:Penguin2012/03/23(金) 13:34:25.60ID:ivBh1GH+
はいはい。
0129login:Penguin2012/03/23(金) 17:28:34.15ID:sbTXokTQ
プリンタは
・PDFを直接印刷
・無線LAN接続でwebプリント
ってケースが増えてきて、ドライバ必要なくなったね。
0130login:Penguin2012/03/23(金) 19:15:55.87ID:jtqS6EJz
LINUXはモノリシックだから今更ドライバ分離できない、手遅れ
的な事を言ってる人が居るけど、やろうと思えばVMというか
WINE的な互換レイヤを一つ設ければ良いだけ何じゃないかな。

ビデオ周りや高速ストレージはやはりネイティブで書かないと
ならないけど無線LANとかUSBの先に付く類の物は大抵賄えそうな
気がする。

どうしてそれを開発者の連中がやらないのかと言えば、そうなったら
ハード情報を公開したがらない連中や、売りっぱなしでバグフィックスを
しない輩がよってくるからではないかと
0131login:Penguin2012/03/23(金) 19:28:48.96ID:BLomvucK
NICやUSBやその他の通信デバイスが遅くなって嬉しい奴はいないからだろ
0132login:Penguin2012/03/23(金) 20:07:37.44ID:Jki4TuVr
インストーラがビルド環境一式持てばいいじゃん
0133login:Penguin2012/03/23(金) 20:16:30.53ID:KAaQq6Mv
>>132
それ、おれがまえに考えたやつだ!
0134login:Penguin2012/03/23(金) 20:34:53.73ID:KjKXwaRy
>>129
それって一般的なのか、俺のまわりではみたことないが。
0135login:Penguin2012/03/23(金) 21:16:54.95ID:sYTRfJtK
やらないのではなくて、技術的に難しいからできないんだよ
0136login:Penguin2012/03/23(金) 21:22:20.94ID:sbTXokTQ
>>132
Ubuntuのnvidiaのドライバパッケージで、
同意すれば後は自動でカーネル再コンパイルするのあったよ。
0137login:Penguin2012/03/23(金) 21:27:37.71ID:jtqS6EJz
>131
NICは早いほうがいいけどUSB2.0なんかは互換レイヤ挟んだとしても
それほど遅くならないと思うな。 Windowsでしか動かないハードル類を
VirtualBoxやVMware使って動かしたりするんだけど、素のWindowsに比べて
2〜3割遅い程度。  インターフェイスだけ処理してれば良いし、
Linuxに特化できることを考えればオーバーヘッドは更に小さくならないか

>134
今、ネットワークに対応していないプリンタを探すほうが難しいんじゃないか?
複合機にすればスキャナのLINUX対応も考えなくて良さそう。 複合機持って
ないからわからんが

>135
現にKVMだの仮想マシンだの、WINEだの既存技術があるじゃないか
0138login:Penguin2012/03/23(金) 21:38:48.01ID:KjKXwaRy
>>137
そのネットワーク対応の複合機を使っているが
メーカー提供(メーカー外注のサードパーティ製)の
純正linuxプリンタドライバはlp/lprを通しているよ。

さらにPDFを直接印刷だそうだが
adobereader(adobe製linux版)の印刷出力はやっぱり伝統のlprだぞ。

さらに無線LANなら間にWIRELESSLANのドライバが挟まるわけだが・・・
(こっちは大分カーネルに入ってきているが)

正直言ってることが意味不明なんだよ。だから聞いたんだが。

プラットフォーム間ちがえてないか?
マカーはでてってほしんだが。
0139login:Penguin2012/03/23(金) 22:01:43.95ID:Ifu/vFXT
uioで我慢汁
0140login:Penguin2012/03/23(金) 22:44:35.56ID:R/7+cN6j
ネットワーク対応でドライバのいらないプリンタは
ファイルサーバにコピーすると印刷やメールで送ると印刷とか?
0141login:Penguin2012/03/23(金) 23:02:51.11ID:sbTXokTQ
つ プリンタで動いているWebサーバにPDFをアップロード
0142login:Penguin2012/03/23(金) 23:44:30.34ID:KjKXwaRy
だからそれが一般的かと聞いているのだ
0143login:Penguin2012/03/24(土) 00:01:26.96ID:uwsOA6FY
 /起点の時代じゃなくなってきた。
0144login:Penguin2012/03/24(土) 00:08:25.82ID:ppKXJ3dv
>>142
お前の廻りはlpでいいじゃんか。
0145login:Penguin2012/03/24(土) 17:56:17.72ID:4xGPA7oC
PC一台にプリンタ一台、あるいはPC2〜3台につき切替器とプリンタの組み合わせが
標準だった頃はアプリの印刷メニューから直接キューを出すことが多かったけど
ペーパーレス化が叫ばれだして、フロアに付き数台に減らされてからは
取り敢えず書類はなんでもPDF化してプリンタへ放り込んでおき、必要な分だけ
印刷ってのが主流になってるな、うちの場合。

142はpopplerとかでググッてみると幸せになれるかもしれない。
0146login:Penguin2012/03/24(土) 20:35:14.96ID:Gdao7o0K
>>130
> LINUXはモノリシックだから今更ドライバ分離できない、手遅れ
> 的な事を言ってる人が居るけど、やろうと思えばVMというか
> WINE的な互換レイヤを一つ設ければ良いだけ何じゃないかな。
これやると速度の問題が出てくる。
リアルタイム性を著しく損なうことになるのでクライアントとしては使えない。
逆に鯖側ならそういうアプローチもあるだろうが、需要があるのかな?
0147login:Penguin2012/03/24(土) 21:22:32.75ID:VxhuUC0H
実装如何じゃないの。
実際カーネルをプロセススケジューリングとメッセージバスに絞った組み込み用途のQNXとかあるし。
さわってみたことあるけどLinuxなんて目じゃない軽さだったよ。
0148login:Penguin2012/03/24(土) 21:48:39.27ID:Gdao7o0K
>>147
それはマイクロカーネルだからでしょ。
かつては「遅い」とされていたが、モノリシックなカーネルで
同じことをやらせようとすれば、オーバヘッド分余計に時間が掛かるし。
そもそもQNXはリアルタイムOSだから一般の汎用OSとは応答性能が
桁が違う。
0149login:Penguin2012/03/24(土) 22:15:40.05ID:15Dr7Ufz
リアルタイムOS≠高速応答
0150login:Penguin2012/03/24(土) 22:24:28.84ID:4xGPA7oC
LinuxHost+WindowsXP Client on Virtualboxだと、そこそこの速度が
出てるからデスクトップ用途では問題ないと思うけどな。

DBとか高負荷サーバ用途ならドライバソースを寄贈しないような
時代遅れのとこの製品はハード選定の段階で弾けばいい話だし
0151login:Penguin2012/03/25(日) 03:21:37.30ID:e22vQITZ
モノリシックだから有利なんだ、ってのは昔からクッソ遅いLinuxを見て来ているから違和感バリバリ覚えるなぁw
0152login:Penguin2012/03/25(日) 08:50:43.85ID:2aiPKJYW
>>151
モノリシックだからこそ、この程度で済んでいると考えるんだ。

って、Linuxが遅く感じるのはXとFSのせいじゃないの?
0153login:Penguin2012/03/25(日) 10:55:37.35ID:i7pkou/E
いざというときはモノシリックにすればだいじょうぶ
0154login:Penguin2012/03/26(月) 01:30:47.75ID:u3T5fxYB
>>129
なるほど。あらゆるデバイスを TCP/IP に対応させて、
PC とデバイスはネットワークで接続すればいいのか。
あとはどうやって NIC と PC を接続するかを考えるだけだな。
0155login:Penguin2012/03/26(月) 01:54:08.91ID:Bfa3/Rf4
SDカードに無線LANがついてる時代だし。
0156login:Penguin2012/03/26(月) 02:15:41.24ID:n0QyJnCR
無線のドライバがなぁ
使いにくくなったもんだよ
0157login:Penguin2012/03/26(月) 02:41:02.73ID:Ses0ANj/
プリンタ内ではコッソリlinuxがlp叩いてたり・・・
0158login:Penguin2012/03/26(月) 05:15:41.28ID:u3T5fxYB
CPU の内部に、あらかじめ無線 LAN デバイスを埋め込んでしまおう。
ネットワーク関連の命令も最初から CPU にプリセットしておけば、
もう我々は、何も悩まなくてもよくなるはずだ。

CPU に至るバスのワイヤレス化も実現するので、
これまでにないくらいに柔軟な設計のコンピュータが製造できるようになることだろう。

問題は、マルチプロセッサ化を推し進めると、
通信効率が、いちじるしく悪化することになるので、
これを解決するために、CPU 間で自律的に同期し、
時分割によるトークンリングなどを実装する必要があることだろうか。
0159login:Penguin2012/03/26(月) 05:30:50.60ID:u3T5fxYB
まあ実際には、X Window や、 NFS や、NAS(Network Audio System のほう)などのように
仕様が公開されているプロトコルを使うデバイスならともかく、
プロトコル非公開のデバイスに関しては、
PC - デバイス間で流れているパケットを解析する必要があるのだが。
0160login:Penguin2012/03/26(月) 06:01:51.09ID:vDrkYKFR
X Windowってさ上野動物園を上野動物って言うのと似てるよね
わざと馬鹿っぽくしてるんだろうけど
0161login:Penguin2012/03/26(月) 13:16:46.23ID:Do9eiYNJ
ARMとか無線LANを内蔵したCPUとかけっこうあるじゃん。
0162login:Penguin2012/03/26(月) 13:39:27.33ID:dzzl1xdM
>無線LANを内蔵したCPU
それCPUとは別だから。
CPUと同一シリコンウェハー上に乗せたのはインテルが試作品作ったの
外ないだろ。
0163login:Penguin2012/03/26(月) 14:02:49.23ID:4XdVQuw0
無線LANがCPUに内蔵されれば、
CPUに対応するだけで、何もしなくても
無線LANが動くようになるのに。
0164login:Penguin2012/03/26(月) 17:07:42.57ID:/HNBa2kB
>>149
リアルタイム性に応答性能は含まれる
当然の話だ
処理完了までに数秒掛かるようなものはリアルタイム性がない
要求される性能をみたすかどうか。
0165login:Penguin2012/03/26(月) 17:11:36.97ID:/HNBa2kB
>>150
> LinuxHost+WindowsXP Client on Virtualboxだと、そこそこの速度が
> 出てるからデスクトップ用途では問題ないと思うけどな。
クライアントで要求されるリアルタイム性とは、そういう話ではないよ。

応答性の問題だから、遅いのは論外。
そこそこ早いでも駄目。

たとえば、マウスを素早く左右に動かした時、そのカーソルが
ほとんど同時に動くようなものを言う。

OSの処理が遅ければ、当然遅延が発生するし、
早くても例えばバックグランドで通信処理を行っていると
遅延が発生するようなものは使えない。

つまりマウスを右に動かしている時にカーソルが左に動くような物は駄目。
昔のWindowsやLinuxはそういう状態になり易い。音楽用途になると更に
かなりリアルタイム性の基準が高くなる。
0166login:Penguin2012/03/26(月) 19:10:56.37ID:A6Ta1zq9
つまりマウスを右に動かしている時にカーソルが左に動くような物は駄目(キリッ

今時1/60s(16.66ms)程度に追従できないような実装なんてなぁw
0167login:Penguin2012/03/26(月) 20:13:26.31ID:/3FZXWaz
すべてのMac OS Xのマウスの移動にはタイムラグが存在している
http://gigazine.net/news/20120208-mac-os-x-mouse-delay-32-milliseconds/
0168login:Penguin2012/03/26(月) 20:17:02.92ID:3cnMS++r
>>167 板違い
0169login:Penguin2012/03/26(月) 22:34:37.34ID:/HNBa2kB
>>166
リアルタイム性の意味をまったく理解していませんな。
バックグランドで重たい処理をするとマウスの動作がおかしくなる
ように見えるという話をしているんだが?

しかも、マウスの問題はそれ程深刻ではない。これが音楽に
なると深刻になる。

ところでLinuxカーネルって標準でプリエンプティヴになっていなかったよね?
preemptive版を組み込むとか何とかそういう話はあったけど。
0170login:Penguin2012/03/26(月) 22:55:26.47ID:I6aCChZZ
grep -r PREEMPT .
0171login:Penguin2012/03/27(火) 01:25:17.94ID:hZo04L/r
>>169
16msなんて今時のCPUなら止まってるも同然だがなぁw
Linuxってそんなヘボい実装されてんの?w
0172login:Penguin2012/03/27(火) 02:36:01.19ID:8nqDocGj
>>171
割り込み処理に時間が食うと今時も10年後も変わらない。
またCPU以外がボトルネックになる場合も多い(バス、メモリ、グラフィックスなど)。
リアルタイム性をスループットで謀ろうとするのは素人が犯す間違い。

分かり易く書けば1億人の労働者を雇っても100億人分の
仕事が一度に来たら処理が滞るということだ。
0173login:Penguin2012/03/27(火) 03:05:19.45ID:hZo04L/r
判りやすい解説乙w

1億人に100倍の仕事来たら到着順に処理するんじゃなく優先するものは優先するだろうJK
こんなのJKだってふつーに考えるだろうJK歯磨いて顔洗ってトイレ入る、って計画立てて
今にもはちきれんばかりの尿意と戦ってる状態で歯を磨き始めるJKはいないだろJK
Linuxはこんな状況だと垂れ流しながら歯を磨くのか?w
0174login:Penguin2012/03/27(火) 12:21:52.19ID:Q5A5VTZd
>>164
所定の時間内に応答できることが要件であって『高速』は必須じゃない
そんな基礎知識も知らないのな
0175login:Penguin2012/04/02(月) 05:54:32.11ID:UT9eFXPC
>>173
バカ過ぎて釣りに見える、って釣りか?
0176login:Penguin2012/04/06(金) 01:27:31.76ID:dXsHKkVQ
バージョン上がるたびに、新しいドライバがぶち込まれるから、サイズがでかくなって結局重くなる。
やはり、ドライバとカーネルは分離すべき。

今の開発体制って
カーネルコミュニティが、上から目線でメーカーをこき使って
悦に浸ってるだけじゃないのか。
0177login:Penguin2012/04/06(金) 02:46:54.00ID:nC5X6DIk
>>175
馬鹿を馬鹿にするために馬鹿丸出しで書いているのだから、馬鹿過ぎてあたりまえ。
0178login:Penguin2012/04/06(金) 11:33:24.12ID:RPUZOFaT
と馬鹿がおしゃっております
ああこりゃこりゃ
0179login:Penguin2012/04/06(金) 22:52:52.92ID:EQ3yuqcL
>>176
そんなアホなビルドしなきゃいいだけじゃん
というか誰もそんな無駄な事はしてない。
0180login:Penguin2012/04/06(金) 23:57:49.41ID:QE9zWki8
>>174
>所定の時間内に応答できることが要件であって『高速』は必須じゃない
>そんな基礎知識も知らないのな

『高速』に応答するのが必須なんじゃないの?
10分後に応答してもいいの?
0181login:Penguin2012/04/07(土) 00:49:42.83ID:jBsevqU2
ビルドなんかしたくねぇんだよ
0182login:Penguin2012/04/07(土) 00:49:43.30ID:7SYCSB1I
10分後に応答で問題ないとアプリが
指定したのであれば、
10分後に応答で問題ない。
0183login:Penguin2012/04/07(土) 01:10:35.14ID:/0eRIgjP
ビルドしたくないならOSなんぞ作れないだろ
誰かが作ったOS使うしかない、窓、Fedora、OSXとかね
これらは不要なドライバはある程度削られてるし。
0184login:Penguin2012/04/07(土) 04:35:11.76ID:mDZkQuCB
>>182
それじゃリアルタイムとはいわないだろう。
何の話しているんだおまえは。バカか。
0185横レス2012/04/07(土) 09:46:08.66ID:oellQcB7
馬鹿はおまえ
0186login:Penguin2012/04/07(土) 09:50:36.82ID:xsR4lDMG
リアルタイム処理の定義を知らないおバカ再来w

遅くてもいいんだよ
規定した時間内に応答できるなら機能するんだから
0187login:Penguin2012/04/07(土) 10:51:39.90ID:cZNQu+oH
用語の定義云々置いといて、応答に10分もかかるような処理は問題だろ。
0188login:Penguin2012/04/07(土) 11:27:27.94ID:7SYCSB1I
ぜんぜん問題じゃないよ。
そんなの相対的な問題だ。
地球の寿命レベルからすればすごく短い時間だし。
0189login:Penguin2012/04/07(土) 11:53:55.61ID:yihAQ0cI
だよな。
宇宙の年齢レベルからすれば、応答は一万年後でもいいくらいだ。
0190login:Penguin2012/04/07(土) 12:01:07.28ID:7SYCSB1I
うん。で「リアルタイムOS」というのは
その「いつまでに終わらせればいいのか?」という与えられた条件を
満たすための機能があるOSのことであって、
できるだけ短い時間で終わらすOSのことではないのだよ。

ま、初心者が間違えるところだよね。
間違えても恥ずかしくないよ。初心者だもん。
0191login:Penguin2012/04/07(土) 13:13:26.78ID:xVLa4EMo
おうとうできなくても いいじゃないか  みつを
0192login:Penguin2012/04/07(土) 14:23:16.02ID:cZNQu+oH
言葉遊びもいい加減にしろよ。
RTOS開発してる会社が、このスレ見たらなんというか。
0193login:Penguin2012/04/07(土) 17:06:39.37ID:mNrqMqBL
リアルタイムってのを、必要な時に即時応答出来ればいいと考えれば
どうにでもなることでしょ
0194login:Penguin2012/04/08(日) 16:01:18.98ID:Q9z7F/Mw
リアルタイムOSは、リアルタイムで応答できるOSだよ。
瞬時に処理完了とはいっていないからな。
瞬時に処理しはじめられるOSだよ。
「いつまでに終わらせればいいのか?」という与えられた条件を
満たすための機能があるOSのことではない。
そんな機能あるOSはない。
1000000テラバイトのデータを低速回線で五秒以内に送信完了しろという指示を出しても
五秒以内でやれるOSはない。
何秒以内にやれとかいっても、終わらないものはできないだろ。
指定時間に終わらせる機能ではなく、瞬時すなわちリアルタイムに処理を開始しはじめられるOSだ。
0195login:Penguin2012/04/08(日) 18:13:42.76ID:egOveXVr
じゃぁそれで
0196login:Penguin2012/04/08(日) 20:06:48.90ID:RVOHhEUC
>>194
どこで勉強しましたか?

間違ってますよw
0197login:Penguin2012/04/08(日) 20:37:30.84ID:larjChNm
無能が無能に質問、回答?
0198横レス2012/04/08(日) 21:52:09.83ID:YaVgLDjN
>>194
レベル低すぎで哀れ
書き込みできてるだけでよくぞって感じ
0199login:Penguin2012/04/08(日) 22:10:37.33ID:PoWPUaoG
勉強しているわけ無いだろwwwww
バカはバカ、自分で自分を晒す
あははははhwwwwwwwwwwwww
0200login:Penguin2012/04/08(日) 23:49:26.16ID:FGPC74ke
犬厨「(俺が)していした時間に応答が帰ってくるから、LinuxもRTOSだよなwwwwwww」
0201login:Penguin2012/04/08(日) 23:59:19.42ID:larjChNm
RTOSって言ってるだけのが多いからね
RTOS化するとは言ってるみたいだけど、linux
0202login:Penguin2012/04/09(月) 02:17:31.73ID:I6FxkbZn
Real Tweet OSっすか?

loguin:Penguin 1時間前
www.playboy.comなう

みたいな。
0203login:Penguin2012/04/09(月) 16:59:02.48ID:rwLqa1UN
TRONってRTOSじゃないの?
0204login:Penguin2012/04/09(月) 17:02:37.21ID:SzMvUvjM
TRONはTRON。それ以上でもそれ以下でもない。
0205login:Penguin2012/04/09(月) 17:03:48.28ID:rwLqa1UN
じゃあLinuxはLinuxだね
いちいちRTOSとかどうでもいいじゃん
0206login:Penguin2012/04/09(月) 17:04:26.00ID:dUfwZhkW
平場でタスク切り替え?(タイマーで時分割していない)なのでRTOSっていっていいのかは微妙なところだと、個人的には、itronとかは
0207login:Penguin2012/04/09(月) 23:47:26.23ID:xEn2Drt7
Linuxみたいな重いOS(組み込みの世界じゃ重いほう)でも、
組み込みで使えるになったのはハードのスペックが上がったせいだからな。
0208login:Penguin2012/04/09(月) 23:49:52.40ID:dUfwZhkW
書き方が回りくどいから、重く見えるのかね?
0209login:Penguin2012/04/10(火) 00:15:12.04ID:a8xpc4Hr
うん。無駄なコードが多すぎる。
0210login:Penguin2012/04/10(火) 00:16:15.47ID:TjB2iYHy
パクリ防止のモジュールもあるみたいだからね
それ見たんじゃないの?
0211login:Penguin2012/04/10(火) 04:24:18.52ID:te0RSNi5
>>207
重く作れば重いし軽く作れば軽いんだよ
石やデバイスが制限されてる場合は軽めにビルドするのが普通だよ。
組み込み用途なのにLinuxのコード全部乗せたOS作るバカなんて居ないと思うよ
0212login:Penguin2012/04/10(火) 05:17:24.53ID:a8xpc4Hr
外せない部分が冗長だったりするからな。組み込みには向いてないねLinuxは
0213login:Penguin2012/04/10(火) 18:15:29.45ID:TjB2iYHy
マイコンってピンキリなのに何同じことが出来るみたいなこというだろうね?
0214login:Penguin2012/04/10(火) 23:56:29.55ID:jMgBsT87
こんだけ普及してるものを向いてないとか言えるのってある意味すごいね。

予防接種の前日に両耳を塞いで「僕は何も聞こえない聞こえない聞こえない」
って、自分が認めなければ世界も変化しないと思い込んでる子供をみてるようで
微笑ましい
0215login:Penguin2012/04/11(水) 01:16:44.01ID:jnmbGaMw
無料だから多少向いてなくてもトレードオフを見て採用してるってことじゃない?
0216login:Penguin2012/04/11(水) 01:18:45.44ID:JR+hwIU8
>>214
なるほど。具体的に反駁できないから個人攻撃に逃避ですか。わざわざ自白ご苦労さん。
馬鹿だから気が付かないんだろうけどそれって禿同したのと同じことだよ。

そもそも何を持って「これだけ普及」って言ってるのかねぇ。組み込み系全体からみれば
Linuxなんてほんの一握りでしか使われてないだろ
0217login:Penguin2012/04/11(水) 05:11:05.56ID:xfUbqAHm
どこからどこまでが組み込み系全体なのかも説明できないのに何いってんのか
0218login:Penguin2012/04/12(木) 15:57:25.81ID:ZlGXitAh
     Å   
   ヽ('A`)ノ、スーパーちんぽマン参上!!
    / ( ) \
    んヘヽヽ〜'
0219login:Penguin2012/04/12(木) 18:27:59.70ID:4A+5WXkr
SDカード上でLINUXを動かしている製品がある時代に
VxWorksだのITRONだのを有難がるのは馬鹿げてる気がするなぁ、、、

0220login:Penguin2012/04/12(木) 22:11:24.34ID:py+EArbp
OSの特徴を知らない人なら
Linuxでいいと思っちゃうかもねw
0221login:Penguin2012/04/13(金) 12:15:23.47ID:9+kM0PEo
バグの修正一つ、アプリ一つ書くのにアセンブラを持ち出すようなOSはもう要らない。
1980年代には必要だったかもしれないしその意義も認めるけど
2010年代には2010年代なりのやり方があるんだよ。

ロートルはCOBOLの保守と同じ、旧機種のメンテだけやってればいいよ。
0222login:Penguin2012/04/14(土) 07:44:13.28ID:oAQPV2S3
バグの修正一つ、アプリ一つ書くのに、巨大なフレームワークだのIDEだのシェル環境だのを何個も
OSの許可ダイアログに伺いをたてながらインスコしなければならなかったり
ハードよりものすげ高額なお布施が必要だったりして、アイデア一つじゃ試すことすらできない
敷居が高いOSってのも相当勘弁してほい気がするが。
0223login:Penguin2012/04/14(土) 10:02:06.25ID:BUXq+H82
とりあえず言えることは
金もかからず手間もかからないOSがいいってことだな
0224login:Penguin2012/04/14(土) 10:07:39.32ID:cDSwiX+m
>>223
同意
0225login:Penguin2012/04/14(土) 10:42:20.66ID:odbGPVh6
Linuxは手間がかかるんだよな。
0226login:Penguin2012/04/14(土) 12:20:44.98ID:hQcUzHTF
まぁOSのみの状態ではWindowsの手間暇も似たようなもんだけどな。
本当にスイッチ投入からほぼ全ての設定が完了してるように持って行きたいなら
日本製のハード設定・アンチウィルス・年賀状ソフト全部入りPCを買い続けるしか無い
0227login:Penguin2012/04/14(土) 12:29:12.90ID:odbGPVh6
PCメーカーの人は、なぜWindowsを選ぶんだろうね。
0228login:Penguin2012/04/14(土) 12:37:34.93ID:0pKPS3cj
儲かるからだろ
0229login:Penguin2012/04/14(土) 12:41:27.49ID:odbGPVh6
なぜを3回繰り返して、本質に迫るという手法があるよね。
それに従って聞きます。

>>228
なぜ儲かるのですか?
0230login:Penguin2012/04/14(土) 19:44:40.30ID:VdeDpIM/
値段が高いから。
0231login:Penguin2012/04/14(土) 19:53:38.55ID:wnlLR3HA
金もかからず手間もかからない儲かるOSを教えろ!
いや…教えてください
0232login:Penguin2012/04/14(土) 21:00:08.77ID:cDSwiX+m
>>226
スレ的にはドライバの開発やメンテの話にしてくれ。
アプリまで含めたらきりがない。
0233login:Penguin2012/04/16(月) 17:29:04.83ID:Aww9+PmX
儲かるOSってどういう事だろう? 対応アプリの販売実績が伸びてるOSってこと?

今ならiOSかAndroidだね。
0234login:Penguin2012/04/21(土) 18:56:33.08ID:JfRq4RcJ
儲かるってか市場のシェアを握ったOSは
ハードメーカーがドライバとかいち早く対応させるし
サポートも手厚いからPCメーカー側(組み立て屋)
が楽ってだけの話じゃないの?
消費者の大半は新しいもの求めてると思うし
要は早い者勝ちよ
0235login:Penguin2012/04/22(日) 12:22:07.00ID:QeSFRWlH
>>234
iOSとかだとサードパーティ製ドライバって概念が希薄だから、その理屈だと測定できなくない?
0236login:Penguin2012/04/22(日) 17:52:25.11ID:mFjQLQlD
234は
「答えはWindowsだよ。 他のOSは全部無意味だから
それ向けのプログラミングなんてするなよ」

って言いたいのかな
0237login:Penguin2012/04/22(日) 20:50:58.55ID:Mj9d/MFf
ひどい被害妄想だなw
0238login:Penguin2012/04/25(水) 21:58:27.13ID:jN9rybhO
はいはいワロスワロス
0239login:Penguin2012/04/29(日) 13:21:26.34ID:DSVV4bVh
>>227
なんでスマートフォンメーカーの人はAndroidを選ぶんだろうね。
0240login:Penguin2012/05/03(木) 09:44:57.09ID:eVufE9TZ
は?
0241login:Penguin2012/05/03(木) 12:50:43.19ID:ieD2eJmw
ドライバーというものが、具体的によくわからないのだが、こういうこと?

たとえば、あるハードは、
メモリーの0x1234が1の場合は、ブザーが鳴って、
メモリーの0x5678が1の場合は、豆電球が光るとか、
という装置だとする。

直接ソフトが、本当のメモリー番地を指定してon/offすることはOSによって禁止されてるので、
間にドライバーを介して、ドライバーに対して buza-on とか mame-on とかを要求して、実際にはドライバーが 0x1234 等へのon/offを操作するってこと?



周辺機器(ハード)って、結局、メインメモリーのどこそこをon/offすることで、豆電球光ったり消したりのスイッチになってる
それだけの単純な装置だと考えてしまえば、

結局、生のメインメモリーの、本物のアドレス(OSによって割り振られた仮想的なアドレスじゃなくて、文字どうり、本物のハードレベルでの固定の本物のアドレス)さえ
自由に読み書きする手段さえあれば、ドライバーを介さなくても、直接、ソフトから直接メモリーをon/offして豆電球を光らせられるような気がする。妄想。
02422412012/05/03(木) 12:52:32.87ID:ieD2eJmw
>> 241
ーーここまでで既に間違えてるのかもしれないがーーー


ーーーだとすれば、
もしも生のメモリーに、直接書き込める方法さえ提供すれば、間にドライバーを介さなくても、直接メモリーをon/offしてハードを動かせる気がする。
だから、何かしらの方法で「この常駐プログラムは、ドライバーとして動かしてるので、生メモリーへの直アクセスOKにしてください」という要求と許可の機構を、linux側が提供すれば

わざわざOSにバイナリーレベルで組み込まなくても、ユーザーレベルでドライバーを書けるし、
企業秘密等があるならバイナリーオンリーでも提供できるし、
linux自体の内部で使われてる変数名や変数の動作がどう変わろうが、そんなの知ったこっちゃ無いと、ただメモリーの0x1234をonにすれば豆電球が光ることだけ考えればいいし、
いろいろシンプルになっていいような気がする。

/devを見たら、/dev/mem というものが目についたのだが、これってもしかして、生の本当のリアルな固定の実メモリーへの読み書きを提供してるってこと? 危なそうなので触ったこと無いが。
もしそうなら、これを介せば、カーネルにドライバー組み込まなくても、ソフトから直接メモリーの0x1234をon/offして豆電球光らせたりできるのだろうか?とか妄想。



以上、まったくドライバー書いたこと無い人間の妄想でした。wikiとかは一切見てないので、いろいろ的外れな考え方してるとは思う。ダメ出しよろです。
0243login:Penguin2012/05/03(木) 14:36:30.56ID:xdSKp7k9
>>241
直接読み書きする手段があるかどうかは関係ない。

違うメーカーのUSBキーボードであっても
結局はキーを入力するという同じ機能を提供している。

ドライバはそういう違うメーカーの物を
同じように見せるもの。
0244login:Penguin2012/05/03(木) 15:33:56.52ID:vA9elne1
>>243
複数の機種で動かすのがドライバーではなく、
別に単一機種で動かしてもドライバーだよ
誤解しているよね君
0245login:Penguin2012/05/03(木) 18:00:06.87ID:b1/f/36O
>>242
流通量の少ないデバイスなんかでは、そういうポリシーのごく単純なドライバを書いて
複雑なことは全部ユーザランドでやることもある。

でも普通は抽象化が不十分だと相互運用性が低くて使いにくいからやらない
0246login:Penguin2012/05/04(金) 16:06:47.25ID:ulpq0FrP
OSレベルじゃなくライブラリレベルでももちろん構わないんだけどね
0247横レス2012/05/05(土) 16:42:19.72ID:2uJ9hScj
>>241-242
Linuxカーネルがversion 1の頃は、
そういうユーザランドのドライバ相当のコードたくさんあったよ。
昔のLinuxはroot権限で怪しいメモリもアクセスできたので。
けどこれがシステムの不安定さを招いているので辞めた。

偉い人達の書いたドライバさんは「保護モード」で動いてる。
0248login:Penguin2012/05/06(日) 17:49:43.51ID:iinhuikV
カーネルモード、ユーザーモードてあんまり関係ない。
OSのインターフェースにどう合わせるか、そこがバラバラなのが問題。

単純なLEDを点けるだけであっても、例えばLEDデバイスをオープンして
そのあとどのように操作すればLEDのON/OFFが出来るか?という部分。

ここに決まりが無いんだわ。write()の下に実装してもいいし、ioctl()の実装でもいい。
そのあたりの実装がドライバー独自って状況を生み出す。

カーネル自体が変更されると影響受けるのでまた再実装する。
なことを繰り返してるうちに特定のカーネルバージョンでしか動かないドライバーが出来上がる。
(特にARMはこれがひどい、切り離すなんて絶対無理)
0249横レス2012/05/06(日) 18:54:37.73ID:CUcotG37
元の話はどうしてユーザランドでやってはいけないのかってことでしょ?
インターフェースの統一も含めて。
0250login:Penguin2012/05/06(日) 20:47:10.53ID:R63eHi+y
AndroidでGoogleがフレームワークでIF定めたような作業が必要だな
カーネル開発者がやるとは思えんが…
0251login:Penguin2012/05/06(日) 21:34:50.37ID:tdwvS5oW
素朴な疑問で悪いんだが、カーネルバージョンが変わると、
ドライバーを開発する上で、具体的に何が変わるんです?

あまり詳しくないので、「具体例」を出してわかりやすく説明してくれると嬉しい。
0252横レス2012/05/06(日) 22:01:12.84ID:CUcotG37
USBシリアルデバイスのbulk転送対応がオンオフしかなかったのが、
bulk必須、bluk可能、bulk不可能の3つになり、
ドライバのstructのビットフィールドが1bitから2bitになり、
可能な値は0/1だったのがenumになった。
おまけにフィールド名も変わった。(そのままではちょっと不適切な名前なので)

だからバイナリ互換性もないし、ソース互換性もない。

要するにカーネル内のインターフェースの変更。こういうのはあちこちで起きる。
こういうのを固定して変更しないと、互換性のためにプログラマが我慢したり、
苦労したりするので、開発者が逃げていってしまう。
開発者が多いことが重要なのは、Linuxと他のPC UNIXを比べればよく分かる。
0253login:Penguin2012/05/06(日) 23:25:44.51ID:vMlcB1qP
ソース互換性無くなるのはひでーよなぁ。
0254login:Penguin2012/05/07(月) 00:19:10.20ID:Lt2ZES7q
>>252
ありがとうございます。
1.USBシリアルデバイスのbluk転送対応がon/off ->
   bulk必須・bulk可能・bluk不可能の3種類に変更(よくわからんけど、必須っていうのが追加ってこと?)
2.構造体名はちょっと書いてないのでわからないけど、とにかく1bitの0/1で表してた部分が
   2bitで表されるようになり、enum になった。
  (0/1で表されていた部分は、2bitに増やされた時に意味も変更されたのだろうか?)
3.何かはわからないけど、フィールド名が変更になった。

ちょっと聞くだけでは、3.の変更以外、ソース互換性がないかどうかは判断できませんが、
互換性がないというからにはないんでしょう。

そういう、ソース互換性がないというのは、「あちこちで起きる」「開発者が逃げていってしまう」
と書いてあるからには、頻繁に起きていると思うのですが、
マイナーバージョンアップでしょっちゅう起こってるんです?

そうだとすれば、Linuxには膨大なドライバーソースが含まれている(ドライバーだけでも1000万行近く?)ので、
マイナーバージョンアップが変わるごとに、全部メンテナが変更していることになりますけど、
それってあまりにも大変ですよね?

私があまり知らないだけだからだろうけど、話を聞くだけだと深刻な問題に思えます。

この問題って、他のどこで議論されてるか知っていれば教えて下さい。
どのように解決しているのかも知りたいので、参考にしたいです。
0255横レス2012/05/07(月) 00:25:05.86ID:Cj7ymg+V
しょっちゅう起きてない。
0256login:Penguin2012/05/07(月) 00:39:57.08ID:Lt2ZES7q
>>255
そうだったんです?>>11他多数のレスを見る限り、
カーネルバージョンが上がる度に構造体が変更されているように勘違いしてしまいました。

ただ、ドライバー部分(1000万行近く?)全てとはいわずとも、マイナーバージョンアップのたびに
何百万行を調べる余裕はとてもあるようには思えないので(仮にそうだとしたら大問題)、
そうなのではないかとも思っていました。

一つ疑問が解決した感じです。
0257login:Penguin2012/05/07(月) 10:41:18.41ID:uqtLgDw3
>要するにカーネル内のインターフェースの変更。こういうのはあちこちで起きる。
>こういうのを固定して変更しないと、互換性のためにプログラマが我慢したり、
>苦労したりするので、開発者が逃げていってしまう。
ドライバーの内部的な変更は早々あるもんじゃないでしょ
やってる人の回転?がいいのがlinux
0258login:Penguin2012/06/24(日) 02:29:53.58ID:DUNs0UrU
ヴァーチャルファイルシステムみたいにI/F固定できないのかね
0259 忍法帖【Lv=11,xxxPT】 【東電 73.9 %】 2012/07/04(水) 19:37:49.34ID:XSv1hCM2
test
0260login:Penguin2012/07/26(木) 21:16:29.35ID:gEKA9x+l
こんなに恐ろしく肥大化しているのにカーネルから古いインターフェースを
削除するとかありえないわ。サポートしないのはいいとして削除したら
何もできなくなる。

むやみに増やしすぎたドライバーはハードウエアが実装されていないので
動かないダークな分部で満ちている。
基本ネットワークだけ(無線も含む)サポートすれば他は後付で対応するべき。
HDDのドライバも後付で何の問題もなしで最低はローダーレベルでの
RAMDISKで起動できればいいだろ。
0261login:Penguin2012/07/27(金) 02:02:54.33ID:q7PvhmtZ
日本語でおk
0262login:Penguin2012/07/27(金) 12:22:43.61ID:SllXP148
なるほど。ネットワークブートすればいいんじゃね?
0263login:Penguin2012/07/30(月) 06:18:37.54ID:486wwef+
>>61
なるほど。
例えば、arch/*/configs/下にあるdefconfigファイルの数を較べると、
・ARM 125個
・x86: 2個(i386とx86_64)
linuxの歴史的なことを考えれば、x86に対してARM多過ぎ。
もちろんdefconfigの数が問題なのではなく、ドライバがてんでバラバラなことですね。

ドライバ改造してるんだけど、2.6.xと3.2.xと3.4.xとで全然関数IFが異なってて面倒です。
割と新しいI/F規格だし仕方ないのだろうけど。
0264login:Penguin2012/07/31(火) 18:39:33.43ID:JdT2TbRv
>>263
cpuのアーキテクチャについて一度勉強したほうがいいよ。
0265login:Penguin2012/08/01(水) 20:38:57.09ID:vTI9Jmma
>>263
もしかしてCPUの略語の略をしらないの?
単語として知識を暗記(合理化)しちゃったの?
0266login:Penguin2012/08/08(水) 02:32:34.01ID:uudX+7lg
カーネルのドライバー分離というと
MS-DOSのIO.SYS(ドライバ)MS-DOS.SYS(カーネル)みたいな状態か?
0267login:Penguin2012/08/18(土) 00:04:10.74ID:AFOOumUe
複数の違うアーキテクチャーのバイナリーを混在させるカーネルって
インチキ臭いよな。
0268login:Penguin2012/08/23(木) 23:19:54.43ID:vsdrNnIk
カーネルのドライバー分部と抽象的なOS機能をソースレベルやコードで分離する
必要はないとしても、この世にある全てのハードウエアを一枚板のように
混ぜ合わせるのは良くないね。カーネルが動作する段階では一枚板でいいだろうけど
そのPCに適合するカーネルに動的に編集されて不要な分部は削除されるべき。
例えばinetdで書き換え可能なRAMDISKとしてカーネルをファイルではなく
動的に編集可能なディスクイメージとしてのRAMDISKとして実装し、非実装な
機能分部は多機能(フル実装)の編集する前のinitrdとて存在させておき。
必要において起動中に削除実装ができるようにするカーネルファイルシステム
というのが必要な気がする。
PnPで汎用のカーネルは動的に繋がる新しいハードウエアを認知する為の機能があり
それはアプリケーションのように後天的に実行されるべきで先天的に読み込まれる
のは多様性が膨らむと資源の無駄遣いとシステムの起動の遅さに繋がる。
0269login:Penguin2012/08/24(金) 09:49:29.74ID:IHiydYt7
長い。 3行で
0270横レス2012/08/24(金) 11:02:30.28ID:RNK6oyOp
デバイスドライバのダイナミックロード機能を知らないみたいだな。
0271login:Penguin2012/08/29(水) 14:25:33.40ID:DEjcO5E1
>>256
変更は毎回起きるわけじゃないけど、結構カーネルのマイナーなアップデートでも変更があるので困る。
他のOS(Windows,BSD,UNIX)などに比べるとLinuxは頻繁に変更があると言わざる得ない。
0272login:Penguin2012/08/30(木) 12:19:13.72ID:IaFygKFm
LTSカーネルつかえばいいじゃん(いいじゃん)
0273login:Penguin2012/09/17(月) 19:48:11.24ID:AZJsxh/n
>>271
頻繁に変更が起こるのなら、
具体的にどのバージョンでどこが変更になったか言えっつってるんだろ。

今まで、変更になってソース互換性もなくなったという
構造体名の具体例は一度も出てない。

マイナーアップデートで変更がありまくるのなら、
数百は言えてもおかしくないはずなんだけど・・・
0274login:Penguin2012/09/18(火) 06:02:12.08ID:Yt5HyjCS
>>273
コミットログみれば?
0275login:Penguin2012/09/23(日) 21:15:35.69ID:vJajxKe4
>>274
下位互換性がないのなんんて、殆ど見たことないよ。
そもそもカーネル2.4時代のドライバも動く奴あるし。

そもそも、ドライバだけで数万行のコードがあるのに、
マイナーアップデートでソース互換性がなくなるとすれば、
変更のあった部分全てやり直していることになるんだけど、
実際そんなことは滅多にやってないでしょ?

それと、ドライバーのインターフェイスが頻繁に変わってるって言っていた奴も
いるけど、どこがどう変わったのか、すっげー興味あるから
教えてくれないかなぁ・・・。
0276login:Penguin2012/09/23(日) 21:17:06.46ID:vJajxKe4
>>275
数万とかw間違えた。数百万ね。
0277login:Penguin2012/09/23(日) 21:45:20.56ID:vxVhbaWP
file_operations構造体とか互換性なくなってたよなー
0278login:Penguin2012/09/24(月) 06:52:06.87ID:cJHKRjzt
>>275
マイナーアップデートで大幅な変更とかしないよ。メジャーの間違い?

あと、変更点見たいならgit logで確認したらいいよ。
■ このスレッドは過去ログ倉庫に格納されています