2008年6月29日

[linux-users:108059] Re: 危険なkernel

こんにちは

いろいろなご意見があるかと思いますが、
・Linuxは組み込み専用に特化したOSではない
・対応しているCPUアーキテクチャも、組み込み向けから
 エンタープライズ向けまで幅広い(MMUなしでも動きますし)
・オープンソースであるがゆえに可読性や移植性も考慮している
ので、組み込みをやっていらっしゃる側面から見たときに

いろいろな違和感があるのかもしれないですね。

(staticの使い方については書かれていなかったかもしれませんが)Linusが
書いたLinuxのコーディングスタイルもソースコードに含まれて
いますから、Documentation ディレクトリ以下もご一読しては
いかがでしょう? (Documentation/CodingStyle)

また、日本語の書籍でもLinuxカーネル関連の良書がありますので、
(設計思想について書かれているかはさておき)ご一読されてみては
いかがでしょうか?

もちろんmain.c への突っ込んだ話も楽しそうですが :)

川崎

On Sun, 29 Jun 2008 07:04:06 +0900
本荘 隆也 <honjo@xxxxx> さん wrote:

> ブロックデバイスのstatic宣言が非常に多いです。
> 総じて言うと
> ブロックデバイスというfunctionをつくりその中で動的に管理すれば1個のブ
> ロックデバイスあたり最低64bit節約可能です。
> #(細かい話はわかりませんが、functionのアドレス、そのとび先を32bitでと
> 仮定しています)
>
> 数を数えていませんが、たくさんの量が宣言してあり、メモリ容量が少ないCPU
> では使用可能である物理メモリの量が窓と比べると。。。。と いうのはお分か
> りいただけると思います。
>
> それらを加味して考えたとき
> 安全にkernelを止める処理、安全にkernelをリセットする処理 などが物理メモ
> リのSWAP領域ではない空間上に配置できるのかな?と
> #USBメモリbootのUSBメモリホットスワップを想定しています。
> #シリアル経由とかでSPI通信するようなHWだとSDカード等もホットスワップで
> きてしまいますし
>
> 安全側に倒すための処理が実行できない可能性があるということで、危険という
> 表現を使用しました。
>
> CPUによってメモリ自体の配置とか空間が違うので、グレーゾーンかな とは感
> じています。
> #SFRとか叩けばわかるかなぁ・・・・とか
>
> (hd)aとか(sd)bとかcはよく使うのでstaticでもいいと思いますが、それ以外は
> 動的に管理したほうがいいかなとも感じます。
> #私自身それくらいしか使いませんし、 鯖の世界でもFiberChannelとか使用す
> れば(多分)1つの消費なのであれだけの量のデバイスを staticで登録する必要
> ないよな。。。とか
>
>
> まだ流し読み程度ですし、経験がないので、筋違いな発言なのかもしれません。
> ちゃんとソースを見る時間がなかなか取れないというのもあります。
>
> #コメントしていただいた内容に対し、しっかりとした返信が出来ていなくて申
> し訳ありません。
>
>
> 以上よろしくお願いします。
>
>
> 西端 敏裕 さんは書きました:
> > スルーするほうが良いのかなぁと思いつつ、
> > ガッツあるタコに送るエールとして…
> >
> > 本荘 隆也 さんは書きました:
> >
> >> kernelのソースを読んでみました。
> >>
> >
> > うんうん、偉い。
> > やっぱりソースを当たってみないと、って思うよね。
> >
> >
> >> 具体的には
> >> main.cを読んだ時点で、かなり危険と判断しました。
> >>
> >> Defineの使い方
> >> ポインタの使い方
> >>
> >
> > 危険というのは、どういう観点での話なのかな?
> > メモリの使用効率が悪いだけ?
> > ソースコードの保守性の話?
> > ポインタの処理がまずくて、Kernelが落ちちゃう感じ?
> >
> > 夜に投稿されている [linux-users:108056] の内容は、
> > メモリを沢山使うのがよろしくないと言っているだけで、
> > 危険という言葉とリンクしてないですよね?
> >
> >
> >> 危険すぎてそれ以上は読みたくありません。
> >>
> >
> > ぜ〜んぶに目を通したら、おかしいと感じた部分の
> > 理由が分かるかも知れないんだから、読んでみたら?
> >
> >
> >> 1.0.0が荒削りのソースですが、kernelの中では一番きれいなソースコードだと
> >> 思います。
> >> 何故、最初に作った人がメンテナンスをやめたのか。
> >> 汚すぎるソースを見飽きてしまったのでは?
> >> とも感じられます。
> >>
> >
> > あれだけの規模のものを Linus がたった一人で作ってる訳じゃないのは、
> > 当然、知ってるよね?
> >
> > そんでもって、Linus は未だに現役のはずだけど、それは知らないのかな?
> >
> >
> >> 今、私は業務が忙しくプライベートになる時間は殆どありません。
> >> その中で、すこしずつ すこしずつ 設計から見直し、5.0.0もしくは10.0.0として新しい
> >> kernelを作りたいと思います。
> >>
> > (中略)
> >
> >> 許可していただけるのであれば メンテナンサとなり新しい概念でkernelを作っ
> >> てみたいです。
> >>
> >
> > メンテナンサというのが何を意味するのかは分からないけれど、
> > 新しい概念で Kernel 作るとか言うなら、ゼロから作ったほうが良いと思うよ。
> >
> > まあ、Linux Kernel をベースに、勝手に Fork しても良いとは思うけど。
> >
> >
> >> 許可していただけるのか不許可なのかが知りたいです。
> >>
> >
> > ソースに COPYING ってファイルが付いてるはずだけど、それは読んだかい?
> >
> >
> >> www.kernel.orgのwebmaster宛に エキサイト翻訳を使用し、同じようなメール
> >> 内容のを送信しましたが、返答はありません。
> >>
> >
> > 改善要求の仕方は、Documentations のディレクトリにあったような…
> > 少なくとも、kernel.org の webmaster 宛じゃなかったと思う。
> >
> > ソースの Documentations/HOWTO (たぶん)に書いてあるとおり、
> > まずは http://kernelnewbies.org/ を訪れてはどうだろうか?


投稿者 xml-rpc : 2008年6月29日 12:29
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/74773
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。