「オペレーティングシステム」の版間の差分
削除された内容 追加された内容
編集の要約なし |
|||
1,639 行
設定後にわざわざジャンプ命令 jmp を通す理由は、CPUの先読みした命令を破棄するためである<ref>白崎博生 著『Linuxのブートプロセスをみる』、株式会社KADOKAWA(発行)、アスキー・メディアワークス(プロデュース)、2014年10月2日 初版、98ページ </ref><ref>林高勲 著『X86系コンピュータを動かす理論と実装 作って理解するOS』、技術評論社、2019年10月9日 初版 第1刷 発行、471ページ</ref> 。ジャンプ命令には、先読みを破棄する機能がある。
なお、パイプラインという仕組みにより、CPUは先読みしている。このパイプラインの先読みを破棄することをフラッシュという。
1,646 行
なので、CPUのパイプラインをフラッシュするためにジャンプ命令を使っている。
== Linuxのブートローダはkernelには無い ==
ある程度、理解が進むと、 Linux など実際に活用されているオープンソースOSのブートローダを調べたいと感じるかもしれません。
まずOSの起動で最初に動くのはブートローダだからです。
しかし Linux を開発している kernel.org のサイトには、ブートローダは無いのです。
Linux で仕様されているブートローダは、Gnu(グニュー)というオープンソース・ソフトウェア団体の作っている GRUB (グラブ)というソフトウェアです。
なのでブートローダをソースコードを探す場合も、Gru Grub のウェブサイトを探す必要があります。
書籍だとアスキー出版『Linuxのブートプロセスを見る』などの題名の書籍で Grub を紹介してるので、ついつい何となく、ソースコードを読むためにリーナスの管理している kernel.org を探しがちですが、しかし、よくよく考えたら、Grub は Linux ではありません(実際、Windows版Grubもある)。
もし『Grubのブートプロセスを見る』だと売れないので、出版社が「Linuxのブートプロセスを見る」という題名にしたのでしょう。
私たちOS開発をしたい読者は、けっして出版社にマインド・コントロールされたままでは、イケません。真実「Grub は Linux ではない」に気がつきましょう。
Grub のソースコードのダウンロードにgitコマンドが必要なので、あらかじめインストールしておくか、Gitコマンドが最初から使える Ubuntu か Fedora などのLinuxをパソコンにインスト-ルしておきましょう。
Git コマンドのインストールと、Git Hub などのウェブサイトとは別物ですので、混同しないようにしましょう。
== 参考文献 ==
|