Linuxはカーネルからドライバを完全分離する時が来たね
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2012/03/12(月) 04:08:04.12ID:khwvZHK+0175login:Penguin
2012/04/02(月) 05:54:32.11ID:UT9eFXPCバカ過ぎて釣りに見える、って釣りか?
0176login:Penguin
2012/04/06(金) 01:27:31.76ID:dXsHKkVQやはり、ドライバとカーネルは分離すべき。
今の開発体制って
カーネルコミュニティが、上から目線でメーカーをこき使って
悦に浸ってるだけじゃないのか。
0177login:Penguin
2012/04/06(金) 02:46:54.00ID:nC5X6DIk馬鹿を馬鹿にするために馬鹿丸出しで書いているのだから、馬鹿過ぎてあたりまえ。
0178login:Penguin
2012/04/06(金) 11:33:24.12ID:RPUZOFaTああこりゃこりゃ
0179login:Penguin
2012/04/06(金) 22:52:52.92ID:EQ3yuqcLそんなアホなビルドしなきゃいいだけじゃん
というか誰もそんな無駄な事はしてない。
0180login:Penguin
2012/04/06(金) 23:57:49.41ID:QE9zWki8>所定の時間内に応答できることが要件であって『高速』は必須じゃない
>そんな基礎知識も知らないのな
『高速』に応答するのが必須なんじゃないの?
10分後に応答してもいいの?
0181login:Penguin
2012/04/07(土) 00:49:42.83ID:jBsevqU20182login:Penguin
2012/04/07(土) 00:49:43.30ID:7SYCSB1I指定したのであれば、
10分後に応答で問題ない。
0183login:Penguin
2012/04/07(土) 01:10:35.14ID:/0eRIgjP誰かが作ったOS使うしかない、窓、Fedora、OSXとかね
これらは不要なドライバはある程度削られてるし。
0184login:Penguin
2012/04/07(土) 04:35:11.76ID:mDZkQuCBそれじゃリアルタイムとはいわないだろう。
何の話しているんだおまえは。バカか。
0185横レス
2012/04/07(土) 09:46:08.66ID:oellQcB70186login:Penguin
2012/04/07(土) 09:50:36.82ID:xsR4lDMG遅くてもいいんだよ
規定した時間内に応答できるなら機能するんだから
0187login:Penguin
2012/04/07(土) 10:51:39.90ID:cZNQu+oH0188login:Penguin
2012/04/07(土) 11:27:27.94ID:7SYCSB1Iそんなの相対的な問題だ。
地球の寿命レベルからすればすごく短い時間だし。
0189login:Penguin
2012/04/07(土) 11:53:55.61ID:yihAQ0cI宇宙の年齢レベルからすれば、応答は一万年後でもいいくらいだ。
0190login:Penguin
2012/04/07(土) 12:01:07.28ID:7SYCSB1Iその「いつまでに終わらせればいいのか?」という与えられた条件を
満たすための機能があるOSのことであって、
できるだけ短い時間で終わらすOSのことではないのだよ。
ま、初心者が間違えるところだよね。
間違えても恥ずかしくないよ。初心者だもん。
0191login:Penguin
2012/04/07(土) 13:13:26.78ID:xVLa4EMo0192login:Penguin
2012/04/07(土) 14:23:16.02ID:cZNQu+oHRTOS開発してる会社が、このスレ見たらなんというか。
0193login:Penguin
2012/04/07(土) 17:06:39.37ID:mNrqMqBLどうにでもなることでしょ
0194login:Penguin
2012/04/08(日) 16:01:18.98ID:Q9z7F/Mw瞬時に処理完了とはいっていないからな。
瞬時に処理しはじめられるOSだよ。
「いつまでに終わらせればいいのか?」という与えられた条件を
満たすための機能があるOSのことではない。
そんな機能あるOSはない。
1000000テラバイトのデータを低速回線で五秒以内に送信完了しろという指示を出しても
五秒以内でやれるOSはない。
何秒以内にやれとかいっても、終わらないものはできないだろ。
指定時間に終わらせる機能ではなく、瞬時すなわちリアルタイムに処理を開始しはじめられるOSだ。
0195login:Penguin
2012/04/08(日) 18:13:42.76ID:egOveXVr0196login:Penguin
2012/04/08(日) 20:06:48.90ID:RVOHhEUCどこで勉強しましたか?
間違ってますよw
0197login:Penguin
2012/04/08(日) 20:37:30.84ID:larjChNm0199login:Penguin
2012/04/08(日) 22:10:37.33ID:PoWPUaoGバカはバカ、自分で自分を晒す
あははははhwwwwwwwwwwwww
0200login:Penguin
2012/04/08(日) 23:49:26.16ID:FGPC74ke0201login:Penguin
2012/04/08(日) 23:59:19.42ID:larjChNmRTOS化するとは言ってるみたいだけど、linux
0202login:Penguin
2012/04/09(月) 02:17:31.73ID:I6FxkbZnloguin:Penguin 1時間前
www.playboy.comなう
みたいな。
0203login:Penguin
2012/04/09(月) 16:59:02.48ID:rwLqa1UN0204login:Penguin
2012/04/09(月) 17:02:37.21ID:SzMvUvjM0205login:Penguin
2012/04/09(月) 17:03:48.28ID:rwLqa1UNいちいちRTOSとかどうでもいいじゃん
0206login:Penguin
2012/04/09(月) 17:04:26.00ID:dUfwZhkW0207login:Penguin
2012/04/09(月) 23:47:26.23ID:xEn2Drt7組み込みで使えるになったのはハードのスペックが上がったせいだからな。
0208login:Penguin
2012/04/09(月) 23:49:52.40ID:dUfwZhkW0209login:Penguin
2012/04/10(火) 00:15:12.04ID:a8xpc4Hr0210login:Penguin
2012/04/10(火) 00:16:15.47ID:TjB2iYHyそれ見たんじゃないの?
0211login:Penguin
2012/04/10(火) 04:24:18.52ID:te0RSNi5重く作れば重いし軽く作れば軽いんだよ
石やデバイスが制限されてる場合は軽めにビルドするのが普通だよ。
組み込み用途なのにLinuxのコード全部乗せたOS作るバカなんて居ないと思うよ
0212login:Penguin
2012/04/10(火) 05:17:24.53ID:a8xpc4Hr0213login:Penguin
2012/04/10(火) 18:15:29.45ID:TjB2iYHy0214login:Penguin
2012/04/10(火) 23:56:29.55ID:jMgBsT87予防接種の前日に両耳を塞いで「僕は何も聞こえない聞こえない聞こえない」
って、自分が認めなければ世界も変化しないと思い込んでる子供をみてるようで
微笑ましい
0215login:Penguin
2012/04/11(水) 01:16:44.01ID:jnmbGaMw0216login:Penguin
2012/04/11(水) 01:18:45.44ID:JR+hwIU8なるほど。具体的に反駁できないから個人攻撃に逃避ですか。わざわざ自白ご苦労さん。
馬鹿だから気が付かないんだろうけどそれって禿同したのと同じことだよ。
そもそも何を持って「これだけ普及」って言ってるのかねぇ。組み込み系全体からみれば
Linuxなんてほんの一握りでしか使われてないだろ
0217login:Penguin
2012/04/11(水) 05:11:05.56ID:xfUbqAHm0218login:Penguin
2012/04/12(木) 15:57:25.81ID:ZlGXitAhヽ('A`)ノ、スーパーちんぽマン参上!!
/ ( ) \
んヘヽヽ〜'
0219login:Penguin
2012/04/12(木) 18:27:59.70ID:4A+5WXkrVxWorksだのITRONだのを有難がるのは馬鹿げてる気がするなぁ、、、
0220login:Penguin
2012/04/12(木) 22:11:24.34ID:py+EArbpLinuxでいいと思っちゃうかもねw
0221login:Penguin
2012/04/13(金) 12:15:23.47ID:9+kM0PEo1980年代には必要だったかもしれないしその意義も認めるけど
2010年代には2010年代なりのやり方があるんだよ。
ロートルはCOBOLの保守と同じ、旧機種のメンテだけやってればいいよ。
0222login:Penguin
2012/04/14(土) 07:44:13.28ID:oAQPV2S3OSの許可ダイアログに伺いをたてながらインスコしなければならなかったり
ハードよりものすげ高額なお布施が必要だったりして、アイデア一つじゃ試すことすらできない
敷居が高いOSってのも相当勘弁してほい気がするが。
0223login:Penguin
2012/04/14(土) 10:02:06.25ID:BUXq+H82金もかからず手間もかからないOSがいいってことだな
0224login:Penguin
2012/04/14(土) 10:07:39.32ID:cDSwiX+m同意
0225login:Penguin
2012/04/14(土) 10:42:20.66ID:odbGPVh60226login:Penguin
2012/04/14(土) 12:20:44.98ID:hQcUzHTF本当にスイッチ投入からほぼ全ての設定が完了してるように持って行きたいなら
日本製のハード設定・アンチウィルス・年賀状ソフト全部入りPCを買い続けるしか無い
0227login:Penguin
2012/04/14(土) 12:29:12.90ID:odbGPVh60228login:Penguin
2012/04/14(土) 12:37:34.93ID:0pKPS3cj0229login:Penguin
2012/04/14(土) 12:41:27.49ID:odbGPVh6それに従って聞きます。
>>228
なぜ儲かるのですか?
0230login:Penguin
2012/04/14(土) 19:44:40.30ID:VdeDpIM/0231login:Penguin
2012/04/14(土) 19:53:38.55ID:wnlLR3HAいや…教えてください
0232login:Penguin
2012/04/14(土) 21:00:08.77ID:cDSwiX+mスレ的にはドライバの開発やメンテの話にしてくれ。
アプリまで含めたらきりがない。
0233login:Penguin
2012/04/16(月) 17:29:04.83ID:Aww9+PmX今ならiOSかAndroidだね。
0234login:Penguin
2012/04/21(土) 18:56:33.08ID:JfRq4RcJハードメーカーがドライバとかいち早く対応させるし
サポートも手厚いからPCメーカー側(組み立て屋)
が楽ってだけの話じゃないの?
消費者の大半は新しいもの求めてると思うし
要は早い者勝ちよ
0235login:Penguin
2012/04/22(日) 12:22:07.00ID:QeSFRWlHiOSとかだとサードパーティ製ドライバって概念が希薄だから、その理屈だと測定できなくない?
0236login:Penguin
2012/04/22(日) 17:52:25.11ID:mFjQLQlD「答えはWindowsだよ。 他のOSは全部無意味だから
それ向けのプログラミングなんてするなよ」
って言いたいのかな
0237login:Penguin
2012/04/22(日) 20:50:58.55ID:Mj9d/MFf0238login:Penguin
2012/04/25(水) 21:58:27.13ID:jN9rybhO0239login:Penguin
2012/04/29(日) 13:21:26.34ID:DSVV4bVhなんでスマートフォンメーカーの人はAndroidを選ぶんだろうね。
0240login:Penguin
2012/05/03(木) 09:44:57.09ID:eVufE9TZ0241login:Penguin
2012/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して豆電球を光らせられるような気がする。妄想。
0242241
2012/05/03(木) 12:52:32.87ID:ieD2eJmwーーここまでで既に間違えてるのかもしれないがーーー
ーーーだとすれば、
もしも生のメモリーに、直接書き込める方法さえ提供すれば、間にドライバーを介さなくても、直接メモリーをon/offしてハードを動かせる気がする。
だから、何かしらの方法で「この常駐プログラムは、ドライバーとして動かしてるので、生メモリーへの直アクセスOKにしてください」という要求と許可の機構を、linux側が提供すれば
わざわざOSにバイナリーレベルで組み込まなくても、ユーザーレベルでドライバーを書けるし、
企業秘密等があるならバイナリーオンリーでも提供できるし、
linux自体の内部で使われてる変数名や変数の動作がどう変わろうが、そんなの知ったこっちゃ無いと、ただメモリーの0x1234をonにすれば豆電球が光ることだけ考えればいいし、
いろいろシンプルになっていいような気がする。
/devを見たら、/dev/mem というものが目についたのだが、これってもしかして、生の本当のリアルな固定の実メモリーへの読み書きを提供してるってこと? 危なそうなので触ったこと無いが。
もしそうなら、これを介せば、カーネルにドライバー組み込まなくても、ソフトから直接メモリーの0x1234をon/offして豆電球光らせたりできるのだろうか?とか妄想。
以上、まったくドライバー書いたこと無い人間の妄想でした。wikiとかは一切見てないので、いろいろ的外れな考え方してるとは思う。ダメ出しよろです。
0243login:Penguin
2012/05/03(木) 14:36:30.56ID:xdSKp7k9直接読み書きする手段があるかどうかは関係ない。
違うメーカーのUSBキーボードであっても
結局はキーを入力するという同じ機能を提供している。
ドライバはそういう違うメーカーの物を
同じように見せるもの。
0244login:Penguin
2012/05/03(木) 15:33:56.52ID:vA9elne1複数の機種で動かすのがドライバーではなく、
別に単一機種で動かしてもドライバーだよ
誤解しているよね君
0245login:Penguin
2012/05/03(木) 18:00:06.87ID:b1/f/36O流通量の少ないデバイスなんかでは、そういうポリシーのごく単純なドライバを書いて
複雑なことは全部ユーザランドでやることもある。
でも普通は抽象化が不十分だと相互運用性が低くて使いにくいからやらない
0246login:Penguin
2012/05/04(金) 16:06:47.25ID:ulpq0FrP0247横レス
2012/05/05(土) 16:42:19.72ID:2uJ9hScjLinuxカーネルがversion 1の頃は、
そういうユーザランドのドライバ相当のコードたくさんあったよ。
昔のLinuxはroot権限で怪しいメモリもアクセスできたので。
けどこれがシステムの不安定さを招いているので辞めた。
偉い人達の書いたドライバさんは「保護モード」で動いてる。
0248login:Penguin
2012/05/06(日) 17:49:43.51ID:iinhuikVOSのインターフェースにどう合わせるか、そこがバラバラなのが問題。
単純なLEDを点けるだけであっても、例えばLEDデバイスをオープンして
そのあとどのように操作すればLEDのON/OFFが出来るか?という部分。
ここに決まりが無いんだわ。write()の下に実装してもいいし、ioctl()の実装でもいい。
そのあたりの実装がドライバー独自って状況を生み出す。
カーネル自体が変更されると影響受けるのでまた再実装する。
なことを繰り返してるうちに特定のカーネルバージョンでしか動かないドライバーが出来上がる。
(特にARMはこれがひどい、切り離すなんて絶対無理)
0249横レス
2012/05/06(日) 18:54:37.73ID:CUcotG37インターフェースの統一も含めて。
0250login:Penguin
2012/05/06(日) 20:47:10.53ID:R63eHi+yカーネル開発者がやるとは思えんが…
0251login:Penguin
2012/05/06(日) 21:34:50.37ID:tdwvS5oWドライバーを開発する上で、具体的に何が変わるんです?
あまり詳しくないので、「具体例」を出してわかりやすく説明してくれると嬉しい。
0252横レス
2012/05/06(日) 22:01:12.84ID:CUcotG37bulk必須、bluk可能、bulk不可能の3つになり、
ドライバのstructのビットフィールドが1bitから2bitになり、
可能な値は0/1だったのがenumになった。
おまけにフィールド名も変わった。(そのままではちょっと不適切な名前なので)
だからバイナリ互換性もないし、ソース互換性もない。
要するにカーネル内のインターフェースの変更。こういうのはあちこちで起きる。
こういうのを固定して変更しないと、互換性のためにプログラマが我慢したり、
苦労したりするので、開発者が逃げていってしまう。
開発者が多いことが重要なのは、Linuxと他のPC UNIXを比べればよく分かる。
0253login:Penguin
2012/05/06(日) 23:25:44.51ID:vMlcB1qP0254login:Penguin
2012/05/07(月) 00:19:10.20ID:Lt2ZES7qありがとうございます。
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+V0256login:Penguin
2012/05/07(月) 00:39:57.08ID:Lt2ZES7qそうだったんです?>>11他多数のレスを見る限り、
カーネルバージョンが上がる度に構造体が変更されているように勘違いしてしまいました。
ただ、ドライバー部分(1000万行近く?)全てとはいわずとも、マイナーバージョンアップのたびに
何百万行を調べる余裕はとてもあるようには思えないので(仮にそうだとしたら大問題)、
そうなのではないかとも思っていました。
一つ疑問が解決した感じです。
0257login:Penguin
2012/05/07(月) 10:41:18.41ID:uqtLgDw3>こういうのを固定して変更しないと、互換性のためにプログラマが我慢したり、
>苦労したりするので、開発者が逃げていってしまう。
ドライバーの内部的な変更は早々あるもんじゃないでしょ
やってる人の回転?がいいのがlinux
0258login:Penguin
2012/06/24(日) 02:29:53.58ID:DUNs0UrU0260login:Penguin
2012/07/26(木) 21:16:29.35ID:gEKA9x+l削除するとかありえないわ。サポートしないのはいいとして削除したら
何もできなくなる。
むやみに増やしすぎたドライバーはハードウエアが実装されていないので
動かないダークな分部で満ちている。
基本ネットワークだけ(無線も含む)サポートすれば他は後付で対応するべき。
HDDのドライバも後付で何の問題もなしで最低はローダーレベルでの
RAMDISKで起動できればいいだろ。
0261login:Penguin
2012/07/27(金) 02:02:54.33ID:q7PvhmtZ0262login:Penguin
2012/07/27(金) 12:22:43.61ID:SllXP1480263login:Penguin
2012/07/30(月) 06:18:37.54ID:486wwef+なるほど。
例えば、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:Penguin
2012/07/31(火) 18:39:33.43ID:JdT2TbRvcpuのアーキテクチャについて一度勉強したほうがいいよ。
0265login:Penguin
2012/08/01(水) 20:38:57.09ID:vTI9JmmaもしかしてCPUの略語の略をしらないの?
単語として知識を暗記(合理化)しちゃったの?
0266login:Penguin
2012/08/08(水) 02:32:34.01ID:uudX+7lgMS-DOSのIO.SYS(ドライバ)MS-DOS.SYS(カーネル)みたいな状態か?
0267login:Penguin
2012/08/18(土) 00:04:10.74ID:AFOOumUeインチキ臭いよな。
0268login:Penguin
2012/08/23(木) 23:19:54.43ID:vsdrNnIk必要はないとしても、この世にある全てのハードウエアを一枚板のように
混ぜ合わせるのは良くないね。カーネルが動作する段階では一枚板でいいだろうけど
そのPCに適合するカーネルに動的に編集されて不要な分部は削除されるべき。
例えばinetdで書き換え可能なRAMDISKとしてカーネルをファイルではなく
動的に編集可能なディスクイメージとしてのRAMDISKとして実装し、非実装な
機能分部は多機能(フル実装)の編集する前のinitrdとて存在させておき。
必要において起動中に削除実装ができるようにするカーネルファイルシステム
というのが必要な気がする。
PnPで汎用のカーネルは動的に繋がる新しいハードウエアを認知する為の機能があり
それはアプリケーションのように後天的に実行されるべきで先天的に読み込まれる
のは多様性が膨らむと資源の無駄遣いとシステムの起動の遅さに繋がる。
0269login:Penguin
2012/08/24(金) 09:49:29.74ID:IHiydYt70270横レス
2012/08/24(金) 11:02:30.28ID:RNK6oyOp0271login:Penguin
2012/08/29(水) 14:25:33.40ID:DEjcO5E1変更は毎回起きるわけじゃないけど、結構カーネルのマイナーなアップデートでも変更があるので困る。
他のOS(Windows,BSD,UNIX)などに比べるとLinuxは頻繁に変更があると言わざる得ない。
0272login:Penguin
2012/08/30(木) 12:19:13.72ID:IaFygKFm0273login:Penguin
2012/09/17(月) 19:48:11.24ID:AZJsxh/n頻繁に変更が起こるのなら、
具体的にどのバージョンでどこが変更になったか言えっつってるんだろ。
今まで、変更になってソース互換性もなくなったという
構造体名の具体例は一度も出てない。
マイナーアップデートで変更がありまくるのなら、
数百は言えてもおかしくないはずなんだけど・・・
0274login:Penguin
2012/09/18(火) 06:02:12.08ID:Yt5HyjCSコミットログみれば?
■ このスレッドは過去ログ倉庫に格納されています