アカウント名:
パスワード:
ブートローダを作る必要もない恵まれた環境でカーネルをいじってる方からみると、この案件に対してはそのような感想しか持たれないのかもしれません。
ブートローダの実装が本質的にアーキテクチャやプラットフォームに依存することは確かですが、それでもブートローダに必要とされる機能で、共用可能なコードはたくさんあります。
eCos/RedBoot [redhat.com] というブートローダはx86/arm/mips/ppc/sh といった多種多様のアーキテクチャ・プラットフォームに対応していますが、これはプラットフォーム HAL と Ethernet や IDE HDD といったドライバさえ書ければ、T
そうでしょうか? ターゲットにカーネルのイメージを転送するのに最初から ICE や JTAG などが使えるか、または優れたモニタないしブートローダが始めから存在するような恵まれた開発環境をお使いの方はそのような感想を持たれるかもしれませんが、そんなものが存在しない場合、カーネル開発を始める前に何らかのブートローダを自作する必要があるかと思います。
移植の初期段階においては、ホストでソースを編集してコンパイルしてターゲットに vmlinux をダウンロードして実行、という一連の流れの RTT を縮めるのが最も重要なので、単純なモニタプログラムを自作して間に合わせるよりは、多少時間をかけて eCos/RedBoot のようなブートローダをきちんと移植したほうが、結局は開発期間の短縮につながるようです。
一回のダウンロードにシリアルを使って数分待たされるのと、TFTP で十数秒で終わるのでは、やはり開発効率には雲泥の違いがあります。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
次世代GRUBで800万(゚Д゚)? (スコア:0)
次世代GRUBとやらの概要を見てみたんだが、
>メモリ管理のような基本的な機能も持っておらず、また、その実装はIA32に特化してしまっており、汎用性も考慮されていない。
メモリ管理はOSの役目だし、ブートローダはCPUやアーキテクチャに依存するのは仕方ないし、
そもそも286みたいに一度プロテクトモードになるとリアルモードに帰って来れない石もあるわけで
ブートローダがプロテクトモードで動くと、リアルモードのOS(DOSなど)は起動できないのですが…
しかも
>ブートローダはサイズの制限が厳しいため
Re:次世代GRUBで800万(゚Д゚)? (スコア:3, 参考になる)
ブートローダを作る必要もない恵まれた環境でカーネルをいじってる方からみると、この案件に対してはそのような感想しか持たれないのかもしれません。
ブートローダの実装が本質的にアーキテクチャやプラットフォームに依存することは確かですが、それでもブートローダに必要とされる機能で、共用可能なコードはたくさんあります。
eCos/RedBoot [redhat.com] というブートローダはx86/arm/mips/ppc/sh といった多種多様のアーキテクチャ・プラットフォームに対応していますが、これはプラットフォーム HAL と Ethernet や IDE HDD といったドライバさえ書ければ、T
Re:次世代GRUBで800万(゚Д゚)? (スコア:0)
>eCos/RedBoot [redhat.com] という
(中略失礼)
>これまでの grub について見ると実装が x86 に依存しすぎており、そう簡単にはいかなかったわけです。
それならeCos/RedBootでいいのでは?
そもそも、環境の豪華さの全然違うPCと組み込み機器で同じブートローダなりOSなりを
使おうということ自体に無理があると思うのですが…
Re:次世代GRUBで800万(゚Д゚)? (スコア:0)
> OSなりを使おうということ自体に無理があると思うのですが…
実際に組み込み系で動作している UNIX 系 OS があるけど、
それについて何か言うことはありますか?
# ただ単にいちゃもんつけてるだけやん。
Re:次世代GRUBで800万(゚Д゚)? (スコア:0)
組み込みOSとしてのUNIX系OS、例えばLinuxなんか
CPUやチップに合わせてちまちま移植している状況なんで
ブートローダーなんてどうでもいいっす。
っていうか、OSの移植のほうがよほど手間。ブートローダーは明後日おいでって感じ。
Re:次世代GRUBで800万(゚Д゚)? (スコア:2, 参考になる)
そうでしょうか? ターゲットにカーネルのイメージを転送するのに最初から ICE や JTAG などが使えるか、または優れたモニタないしブートローダが始めから存在するような恵まれた開発環境をお使いの方はそのような感想を持たれるかもしれませんが、そんなものが存在しない場合、カーネル開発を始める前に何らかのブートローダを自作する必要があるかと思います。
移植の初期段階においては、ホストでソースを編集してコンパイルしてターゲットに vmlinux をダウンロードして実行、という一連の流れの RTT を縮めるのが最も重要なので、単純なモニタプログラムを自作して間に合わせるよりは、多少時間をかけて eCos/RedBoot のようなブートローダをきちんと移植したほうが、結局は開発期間の短縮につながるようです。
一回のダウンロードにシリアルを使って数分待たされるのと、TFTP で十数秒で終わるのでは、やはり開発効率には雲泥の違いがあります。