パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

モンタビスタ、1 秒でブート可能な組み込み型 Linux の動画を公開」記事へのコメント

  • by nekopon (1483) on 2009年07月17日 13時31分 (#1606485) 日記

    http://www.montavista.co.jp/press_release_detail.php?pid=664 [montavista.co.jp]です。

    # 1秒以内にリアルタイムデータの視覚的フィードバックが必要だった、とあります。つまりアプリケーションまで全部動いてるわけですよ奥さん(誰

    • とりあえず、CANバス [interfacebus.com]などの車内データバスでぶら下がってるノード(と言うかデバイス)が電気的にActiveになっていれば、デバイスが起動指令に返事返さなくてもメーンの起動自体は可能ですので、起動に時間のかかるデバイスについてはデバイスのウオームアップ待ちの後に出来るんじゃないかと…

      変な話ですが、起動にかかる最初の一秒は最低限のデバイスやファイルシステムの初期化とアプリの初期化確認に注力しておいて、その後やそれと並行してinsmodとかユーザランドドライバの起動とかで遅いデバイスの初期化を行って、すべてのデバイスの起動を待ってるんではないかと…どうせ、車内のセルフチェックというのは一秒で済む物でもないでしょうから、エンジンかけられるようになるまで30秒、せっかちな人でも10秒位は許されるのではないかと。

      # 「ダッシュボードアプリの起動」であって、自動車システム全体の起動ではない事に注意。

      こういう見た目の起動速度というのは無意味ではなくて、ヒューマンインタフェース的に不安を起こさない重要要素ですので…別にぶら下がってるノードが全て立ち上がってからアプリが起動する必要もなくて、「ノードが起動中であると分かり」なおかつ「最初の起動指令から規定時間以内に初期化終了もしくはエラーと返事が返ってくれば」無問題ですので、この手のシステムでは。

      親コメント
      • >こういう見た目の起動速度というのは無意味ではなくて、ヒューマンインタフェース的に不安を起こさない重要要素ですので…

        「お、起動した。じゃあ早速ルート検索…ってGPS動いてねえ!」

        ってのも十分に不安要素だと思うんだけど。
        結局のところ全体高速化と言う王道以外の王道はないって話だよね。

        #ゴマカシがゴマカシ以上になることはないからさ。

        親コメント
        • by Anonymous Coward

          >「お、起動した。じゃあ早速ルート検索…ってGPS動いてねえ!」

          1.起動した時に、前回終了時と同じ場所にいるなら、現在地を起動と同時に測位する必要なし
           (最近のカーナビならジャイロもあるし、前回終了時の地図を表示します。測位はそれから)
          2.カーフェリー等で移動した場合はその限りではないが、船内では受信できないので必要なし
           (まず誘導に従って速やかに下船し、開けた場所に停車してからどうぞ)
          3.そもそもルート検索をするだけなら出発地を自由に設定できるので起動と同時に測位する必要なし

          #あとでいい事を意味も無く先に要求するのはいかがなものかと。
          #実際GPSレシーバとシリアルドライバの初期化なんて一瞬ですけど、衛星を掴むのに時間がかかるし

    • by Anonymous Coward

      「頑張れば(金をかければ)できるのは分かってるんだよ」
      という言い訳は聞き飽きました。
      # うちの社内の話なんですが…

      電源ON/OFFの回数が多いCE機器で、起動時間が遅いのは
      そこそこ致命的だと思うんですがねぇ。
      是非、そっち方面の技術者さんにも頑張ってもらいたいです。

  • が問題なのだけどね。起動速度だけならスリープさせとけばいい話なのだし。
    • by Anonymous Coward
      一秒を笑う者は一秒に泣く
    • by Anonymous Coward

      >1秒後に何ができるか問題なのだけどね。

      それは、「何かを始めるために必要な1秒」って思考停止しちゃってるからですよ。
      日本のような他国からすると品質の安定が高い国に住んでいると分からないけど、
      他の国では「既にとりかかっていたら中断させられる」ってケースも少なくない。

      じゃあノートPC使えばいいじゃんってある程度のハイスペックで増設の自由が利く
      マシンを使うとなるとノートでは心もとない。
      かといってUPSとなると、メディアPCのようなカジュアルな用途で使うユーザーには、
      導入の必要性が感じられない大げさな代物。

      …という指摘にも思考停止があり、それは「人が作業をしているPCにとっての1秒」という点。
      定期再起動、およびエラーリカバリにかかる時間が短縮できるのは有用じゃないだろうか。

      • by taka2 (14791) on 2009年07月17日 14時07分 (#1606503) ホームページ 日記

        この手の話題だと、何かと普通のPCとの比較がされますけど、
        PCと組み込みでは条件が違いすぎるでしょう。

        組み込み系だといつ電源切られるかわからないし、
        電源が安定している保証もないし、
        電気的なノイズとかで誤動作する可能性はあるし、
        さらに、ウォッチドッグタイマーとか使って、
        「とにかくトラブったらリセット」って運用が基本。
        だから「スリープすればいい」とか「UPS使えば」なんてのは的外れ。

        今回のデモも「車両用ダッシュボードシステム」ですが、
        車載だとエンジン停止時には機器の電源も落ちてるし、
        平常運用時の体感としても、イグニッションキー回してそこから1秒で使えるのか、
        5秒かかるのか、といった違いは結構大きいと思います。

        親コメント
        • by Anonymous Coward on 2009年07月17日 21時21分 (#1606824)
          >>平常運用時の体感としても、イグニッションキー回してそこから1秒で使えるのか、 5秒かかるのか、といった違いは結構大きいと思います。
          いや、起動に時間のかかる装置の場合、ロック解除とかドアを開けた時点で電源を入れている。
          イグニッションキーを回した時は、単にディスプレイがONになるだけ。
          電源を切るのも、エンジン停止直後ではなく、ドアロックや一定時間停止した後など。
          今の車だと、エアバッグやシートベルト未装着警報のために、シートに人が座っているかどうかをチェックするセンサがあるので、色々細工している。

          #駐車場などにクルマを止めてドアロックした後に、ちょっとラインから出てるとかの理由で、エンジンをかけてクルマを動かすのは止めてくれーーーー!
          親コメント
        • by Anonymous Coward
          親コメントが普通のPCと比較しているとはどこにも書かれていません。

          電源が切れても、スリープさせた状態からすぐに稼動できる仕組みが出てくれば、案外的外れではなくなるのでは?
        • by Anonymous Coward

          >「とにかくトラブったらリセット」って運用が基本。

          そういや

          「ノイズでトラブるのが当たり前だから、
          数秒とかコンマ数秒という極めて短い周期で頻繁にリブートさせてる」

          という運用な世界も有るんだっけ>車載用

  • by Anonymous Coward on 2009年07月17日 13時07分 (#1606468)

    推測を含むけど、高速起動へのアプローチは...

    ・ブートローダがDMA対応。FlashからSDRAMへのカーネル転送が高速かつ、その間ビデオ周りなどの初期化を走らせてる
    ・カーネルイメージは非圧縮の方が早い (結果、DMA転送だけでの展開が可能になり、高速化とその間のCPUリソース確保に貢献)
    ・時間のかかるデバイスの初期化、サービスの起動は後回しにして勘定に入れない(カーネル起動後、後でゆっくり)
    ・カーネル起動後、ユーザプロセスを起動する前にFlash上に保存してある「ユーザプロセス起動後の画面と同じ画像」をフレームバッファに叩き込み、見た目だけは見繕う
    (もしかして、フレームバッファドライバ内でやってしまうかも)

    辺りじゃないでしょうか。最後の見た目だけってのは多少誤摩化しが入ってる訳ですが、システムが1秒で起動したとして、ユーザーがそれを認識してアクションを起すのは更に1秒以上後と考えて良いので、問題が無いと言えます。

    結構こう言った組込みLinux高速起動をデモしていた企業は今まで幾つか有ったはずです。
    むしろ組込みLinuxでハイバネーションを利用し、数秒以内でユーザープロセスまで使用可能な状態にするようなシステムが見たい所。

    • by saitoh (10803) on 2009年07月17日 14時33分 (#1606519)
      リンク先に一部は書いてありますよ。

      the boot performance was achieved through careful turning of the software stack starting with the bootloader, a highly optimized kernel that's kept uncompressed in NOR flash, and loading only required drivers.

      まず、カーネルはロードするのではなく主記憶(NORフラッシュ)空間に非圧縮(ご明察)で最初からある、そして必要なドライバしかロードしない。

      lunuxザウルスもそうですが、組み込み系ではカーネルやユーザーランドプログラムの入ったROM/flashを主記憶に配置してプログラムのロードをそもそも不要にする(データ/スタック/ヒープセグメントの割り当て+初期化は必要)のは定番です。 また、デバイスプローブを一切なくするのも定番。 特定HW用の組み込みでは存在するデバイスがあらかじめ分かっているので、存在するデバイスしかカーネルに組み込まない。また、デバイスのアドレスや割り込みベクタも決め打ち。 シャープの地デジTV(?)ではそれすら省略して、デバイスドライバをアプリ側に持たせることによってカーネルのブートを早めたりしている(と、中の人が言ってました)。

      いまどきのPCのようにGB単位のRAMが積んであると、起動時の最低限のメモリテストだけでも1秒経ってしまうでしょうね。 あと、HDDのように本質的にコールドブート(スピンアップ)に数秒かかるI/Oがあるとどうしようもない。

      親コメント
      • ごめんなさい。 主記憶上にアプリのバイナリが置かれてるのはlinuxじゃなかった時代のザウルスだったか。

        どっちにしても、同じフラッシュメモリならを主記憶に置くのとI/Oにつなげといてそこからロードするのでは、主記憶に置いといてロードなしに直接実行できるほうが起動は早そう(まけおしみ)。

        今回の記事の対象のHWに関しては、カーネルをフラッシュメモリ非圧縮で 置いとくことが起動高速化に貢献していることは確かですよね。でもよく読むとどこにも「主記憶にマップされてる」とは書いてなかった。がっくり。

        親コメント
        • by Anonymous Coward

          NORにカーネルをマッピングするXIPカーネルじゃないんですかね。
          あとはPrelink+UserModeXIPでアプリ起動もガリガリに高速化してるということも。

          もっとも、そんな贅沢にNORは使えませんけれども。。。

          • by Anonymous Coward
            FLASHでXIPじゃ遅くて仕方ないと思う。
            userlandのXIPはやってると思いますが。

            動画の後ろの方で、非圧縮vmlinuxとinitramfsと画面イメージを
            DMAでNOR FLASH->SDRAMにコピーしてるんで速いよ。
            てな事を説明しているので、NOR FLASHは結構贅沢に使ってるようで。
        • by Anonymous Coward
          > ごめんなさい。主記憶上にアプリのバイナリが置かれてるのはlinuxじゃなかった時代のザウルスだったか。

          カーネルがストレージ上のアプリのイメージをmmapして実行するよ
          ページフォールトが起きるとカーネルがストレージからページをロードする

          もしかしてPIザウルスのことを言っているのか?
      • by Anonymous Coward

        lunuxザウルスもそうですが、組み込み系ではカーネルやユーザーランドプログラムの入ったROM/flashを主記憶に配置してプログラムのロードをそもそも不要にする(データ/スタック/ヒープセグメントの割り当て+初期化は必要)のは定番です。

        lunuxザウルスがどんなものかは知りませんが、linux搭載のザウルスの起動速度は決して速いといえるような代物ではありません。1分弱といったところではないでしょうか?
        また、ブートローダがフラッシュストレージからメインメモリに展開しますので「プログラムのロードが不要」と言うこともありません。
        ついでに言うとカーネルなどはNANDからのロードです。

        そもそもメモリ空間に貼り付けられたフラッシュの方が外部ストレージより速い。というのも相当な思い込みです。

        • saitohさんのいうフラッシュはNORフラッシュでしょう。
          普通、NANDフラッシュを主記憶にはできませんよ。
          NANDフラッシュは外部ストレージと同じ扱いです。

          NORフラッシュはオンチップなものだけではありません。
          CPUのメモリバスにつなげてつかう汎用品があります。
          32bitのバスに2個の16bit幅のNORフラッシュをつなげて使ったりします。
          書き込みは遅いですが、読み出しはSDRAMなみのスピードが出ます。
          サイズも2Gbのものまでありますよ。
          欠点はNANDよりサイズが小さく、高価なことでしょう。

          組み込みでは、ワークメモリはSDRAM(SDRやDDR,DDR2)、コードはNORフラッシュ、
          ストレージはNANDフラッシュを使うということをよくやります。
          # NORで性能が足りなければコードもSDRAMにロードしてしまうこともあります
          親コメント
          • by Anonymous Coward

            普通、NANDフラッシュを主記憶にはできませんよ。

            できますよ。
            件のSheevaPlugなんかどこにもNORフラッシュ付いてませんしね。
            普通にオンチップNANDフラッシュコントローラの先のフラッシュから立ち上がってきます。

            で、これを普通でないと言うつもりなら...

            書き込みは遅いですが、読み出しはSDRAMなみのスピードが出ます。
            サイズも2Gbのものまでありますよ。

            は確実に普通じゃないと思いますね。
            #SDRAM並はちょっと大げさだなぁ。

            • by Anonymous Coward

              > できますよ。
              > 件のSheevaPlugなんかどこにもNORフラッシュ付いてませんしね。
              > 普通にオンチップNANDフラッシュコントローラの先のフラッシュから立ち上がってきます。

              たいていこの手のものは、CPUのオンチップROMかシーケンサでNANDコ
              ントローラから(初期化データ+)ブートローダをDRAMにコピーしてから
              起動(というかジャンプ)のはず。
              SheevaのMarvelのチップはどうだったかな~?

              いずれにせよ、NANDフラッシュはアドレスの概念ではなくセクタの概念での
              制御なのでCPUが主記憶として直接コードをフェッチするものは聞いたことが
              ないですね。NANDはエラー検出&訂正もセクタ単位だし。
              ま、立ち上がるという表現ならNANDフラッシュからに見えますが、主記憶と
              いうわけではないですね。

    • Warp!! by Lineo Solutions
      http://www.lineo.co.jp/products-services/services/warp.html [lineo.co.jp]

      TP InstantBoot by TriPeaks Corporation
      http://www.tripeaks.co.jp/p/product/TPIB.html [tripeaks.co.jp] (サーバが見つかりません)
      http://74.125.153.132/search?q=cache:Gqbkd1fhxvMJ:www.tripeaks.co.jp/p... [74.125.153.132] (キャッシュ)

      など組み込み向けのソリューションがありますよ。

      親コメント
    • by Anonymous Coward

      > システムが1秒で起動したとして、ユーザーがそれを認識してアクションを起すのは更に1秒以上後と考えて良いので、問題が無いと言えます。

      そうかなぁ?
      普通のPCですら、立ち上がる前からキーボードガチャガチャしたり、
      マウスをひたすらカチカチしてる人って少なからずいますよ。
      本来なら起動するのは1秒だって遅いんです。
      だって使いたいと思ったその時からが本当の起動待機時間なんですから。

    • by Anonymous Coward
      > ・カーネル起動後、ユーザプロセスを起動する前にFlash上に保存してある「ユーザプロセス起動後の画面と同じ画像」をフレームバッファに叩き込み、見た目だけは見繕う

      モル(ry
  • by Anonymous Coward on 2009年07月17日 12時07分 (#1606416)
    Mac OSの起動で誕生日に祝ってくれる機能が無くなった理由はこういうことか
    • by Anonymous Coward
      AUTOEXEC.BAT に好きな起動ムービーを登録すれば良いじゃない
  • by SteppingWind (2654) on 2009年07月17日 13時50分 (#1606494)

    周辺機器は1秒未満でウォームアップを完了させろってことか.

    • by Anonymous Coward
      周辺機器をウォームアップさせるのが制御機器(組み込みOS+アプリ)ですから速く起動する必要がある。
      勝手に周辺機器が動いたり活性化されたら困るよ。
  • by kieru_haim (37792) on 2009年07月22日 14時41分 (#1609319) 日記
    しまった、このタレコミ採用されてたのか・・・orz。

    「組み込みLinuxの高速起動」を売りにしてる国内ベンダーを
    いくつか知ってますが、そのベンダーの動きがきになりますね。
    MontaVistaが1秒というもの実現した今、
    「高速起動」だけでは、中小ベンダーのソフトは大手企業には買ってもらえないでしょう。
    「MontaVista」というネームバリューだけで、負けてしまいかねません。

    それ以外の付加価値を見出すしかないわけですが・・・。
  • by Anonymous Coward on 2009年07月17日 12時58分 (#1606455)
    時間かかりすぎだよ3G
  • by Anonymous Coward on 2009年07月18日 3時26分 (#1606966)

    MontaVista Linuxが起動する時間はわずか1秒に過ぎない。
    では、そのブートプロセスを見てみよう

    「起動!」
    プロセッサがゼロアドレスにあるNORフラッシュメモリからブートローダーを
    読み始める。
    ブートローダーがレジスタを初期化した後、おもむろにメモリイメージが展開された
    NORフラッシュメモリ上のアドレスにジャンプすると、すでに起動してしまっているのだ。
    この間わずか1秒。

    • by Anonymous Coward
      おわかりいただけたであろうか
    • by Anonymous Coward
      おれ、最近までダイダダだと思ってただよな

計算機科学者とは、壊れていないものを修理する人々のことである

処理中...