私はこのスキルを学び、理解する方法を探しています。これは私が言わなければならないでしょう:
- Slaxが起動し、{RAMに自分自身をコピーするのと同じことを行います}
transitions control to the kernel/file system it just made
- SYSLINUXはFAT32 / NTFSシステムから起動して{作業を実行}してから
boots into a kernel
- ISOLINUXはCD / DVDから起動し、{作業を実行}します。
boots into a kernel
これは名前がありますか? GRUBでチェーンローディングを使用するのと似ていますか?
- GRUBが起動し、選択メニューをロードして選択します。チェーンローディング選択の場合
passes control to something else
。
カーネルを使用してFAT32 / NTFSパーティションの.isoをRAMに抽出し、起動時にRAMドライブがあったかのようにRAMドライブから起動する方法を探しています。私がこれをする理由の詳細については、以下を参照してください。この問題。
しかし、ここでは、コアが別のコアに「変換」される方法の詳細を要求しています。これは名前がありますか?私はそれについて聞いて、INT13h
それがGRUB /チェーンのロードに使用されると思います。これが「別のカーネルで再起動」技術ですか?そうでなければ、どのように達成されますか?
答え1
私の推測はこんな感じです。http://linux.die.net/man/8/kexec
kexec(8) - Linux のマニュアルページ
名前
kexec - 新しいカーネルで直接起動する
要約
/sbin/kexec [-v(--version)] [-f(--force)] [-x(--no-ifdown)] [-l(--load)] [-p(--load- )] [-u(--アンロード)] [-e(--exec)] [-t(--タイプ)] [--mem-min=addr] [--mem-max=addr]
説明する
kexecは、現在実行中のカーネルから別のカーネルをロードして起動できるようにするシステムコールです。 kexec はカーネル内でブートローダ機能を実行します。標準システムブートとkexecブートの主な違いは、kexecブート中にBIOSまたはファームウェア(アーキテクチャによって異なります)で通常実行されるハードウェア初期化が実行されないことです。これは再起動に必要な時間を短縮する効果があります。カーネルを設定するときにCONFIG_KEXEC = yが選択されていることを確認してください。 CONFIG_KEXEC オプションは kexec システムコールを有効にします。
答え2
Int 13 は割り込みです。具体的には、「13」はBIOS/ファームウェアディスクサービス/ APIへのエントリポイントであるため、ディスクの入出力にこの特定の割り込みを使用できます。 Int 9などだけでなく、他の割り込みもあります。割り込みは、実行コンテキストをプログラムからファームウェア/BIOS、OSドライバ/オペレーティングシステムなどに切り替えてファームウェアの助けを受ける方法です。 GRUBは、OSカーネルがメモリになく、独自のロード(ステップ1、1.5、モジュールなど)が必要なときにハードドライブからブートローダをロードする初期段階でINT 13を使用するため、GrubはデフォルトでBIOS /ファームウェアに依存します。 GRUBロード部分の操作を完了します。
ファイルシステムからISOをロードする最も簡単な方法は、GRUBループバック/ループモジュールを使用してISOを起動することです。 GRUBはハードドライブのMBRにインストールするのが最善です。コンピュータを起動すると、GRUBブートメニューでGRUBコマンドを入力して、ISOを含むファイルシステムからISOをロードし始めます。 ISOをRAMディスクに抽出するためにカーネルは必要ありません。 GRUBは他のカーネルに依存せずに、これらすべてを直接実行できます。
たとえば、Debian の場合、次のようになります。 insmod Loopback linux (hd0,1)/deb.iso/install.amd/vmlinuz initrd (hd0,1)/deb.iso/install.amd/initrd.gz boot
(GRUBが利用可能なモジュールとこれがEFI | BIOS起動であることを確認する必要があります)
チェーンロードはGRUB / Bootloaderを使用して別のGRUB / Syslinux / Bootloaderを起動して他のオペレーティングシステムをロードします。通常、次のことを行います。 GRUB-MBR--->vmlinuz ロードするには、次のようにします。