コンピュータの起動の不思議

12月 25, 2017

コンピュータの起動って、ブートストラップと言うのですが、まさに計算されたピタゴラスイッチを繰り返しているような感じなのです。いつもスゴイよなーと思います。

電源を入れた、まっさらなCPUは、本当に単純な事しかしません。メモリゼロ番地にある命令を実行する。それだけです。
ゼロ番地には、BIOS(今ならUEFI)が格納されており、最低限の応答を返すソフトが起動します。このソフトが何処のメディアからソフトを起動するかを選択し、ブート可能なメディア(SSDなのか、HDなのか、CDなのか)を選択します。
選択されたメディア(SSD)に入っているソフトがブートローダー(GRUB等)だった場合、このブートローダを起動します。ブートローダでOSを選択します。
Linuxを選択した場合、カーネルをメモリに配置し、カーネルが先頭番地から走り出します。この時点で、やっとこさ様々な周辺機器、チップが使用可能になり、コンピュータが機械として意味を成すようになります。
Linuxカーネルは起動が終了したら、ただひとつのお仕事をします。指定された一つのプロセスを起動するそれだけです。プロセス番号1番のプロセス。
これが、bashだった場合、ただシェルが起動されただけの、シングルユーザモードのOSになります。通常はinitが起動します。
initは、rcという自動実行ソフトによって、設定された様々なデーモン類、ツール類を起動します。これにより、サーバなのか、デスクトップなのか。いろいろなツール類によってお仕事が形づくられます。

この流れを見ると、PCは電源を入れるたびに、コンピュータ自身の進化の歴史をそのまま辿っているようにも見えます。まるで人間が、単細胞生物から細胞分裂し、人間の形になって生まれてくる子宮の中の進化の過程をそのままたどるような。
何も無いところから動きだすのって、最小のスターターがもうちょい大きいものを動かし、その大きいスターターがさらに大きいものを動かし…という事を行うんですね。
PCも、機械も、人間も同じなんだなー。なんて思うと不思議な気がしません?

posted in Gentoo Linux, コンピュータ by maruo

Follow comments via the RSS Feed | Leave a comment | Trackback URL

Leave Your Comment

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード