Linuxの起動プロセス-6つのステップを詳細に説明

オペレーティングシステム(OS)は、リソースを管理し、周辺機器を制御し、他のソフトウェアに基本的なサービスを提供する低レベルのソフトウェアです。Linuxでは、一般的な起動プロセスには6つの異なる段階があります。

1.BIOS

BIOSはBasicInput / OutputSystemの略です。簡単に言うと、BIOSはマスターブートレコード(MBR)ブートローダーをロードして実行します。

コンピュータの電源を最初にオンにすると、BIOSは最初にHDDまたはSSDの整合性チェックを実行します。

次に、BIOSは、マスターブートレコード(MBR)にあるブートローダープログラムを検索、ロード、および実行します。MBRは、Linuxのライブインストールなど、USBスティックまたはCD-ROMにある場合があります。

ブートローダープログラムが検出されると、それはメモリにロードされ、BIOSがシステムの制御をプログラムに与えます。

2. MBR

MBRはMasterBoot Recordの略で、GRUBブートローダーのロードと実行を担当します。

MBRは、ブータブルディスクの最初のセクターにあります。これは通常/dev/hda/dev/sdaハードウェアに応じて、またはです。MBRには、非常に古いシステムのGRUBまたはLILOに関する情報も含まれています。

3.グラブ

GNU GRand UnifiedBootloaderの略であるGNUGRUBと呼ばれることもあり、ほとんどの最新のLinuxシステムの典型的なブートローダーです。

多くの場合、GRUBスプラッシュ画面は、コンピューターを起動したときに最初に表示されるものです。いくつかのオプションを選択できるシンプルなメニューがあります。複数のカーネルイメージがインストールされている場合は、キーボードを使用して、システムを起動するカーネルイメージを選択できます。デフォルトでは、最新のカーネルイメージが選択されています。

スプラッシュ画面は、選択してオプションを選択するまで数秒待ちます。そうしないと、デフォルトのカーネルイメージがロードされます。

多くのシステムでは、GRUB構成ファイルは/boot/grub/grub.confまたはにあり/etc/grub.confます。単純なgrub.confファイルの例を次に示します。

#boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.el5PAE.img

4.カーネル

カーネルは、Linuxを含むあらゆるオペレーティングシステムのコアと呼ばれることがよくあります。システム内のすべてを完全に制御できます。

ブートプロセスのこの段階では、GRUBによって選択されたカーネルが、最初にファイルで指定されたルートファイルシステムをマウントしgrub.confます。次に/sbin/init、プログラムを実行します。これは常に最初に実行されるプログラムです。これは、プロセスID(PID)で確認できます。PIDは常に1である必要があります。

次に、カーネルは、実際のファイルシステムがマウントされるまで、Initial RAM Disk(initrd)を使用して一時ルートファイルシステムを確立します。

5.初期化

この時点で、システムはランレベルプログラムを実行します。ある時点で/etc/inittab、Linuxの実行レベルを決定するために通常見つかるinitファイルを探します。

最近のLinuxシステムは、代わりにsystemmdを使用して実行レベルを選択します。TecMintによると、これらは利用可能な実行レベルです。

実行レベル0poweroff.targetと一致します(runlevel0.targetpoweroff.targetへのシンボリックリンクです)。

実行レベル1rescue.targetと一致しますrunlevel1.targetrescue.targetへのシンボリックリンクです)。

実行レベル3はmulti-user.targetによってエミュレートされますrunlevel3.targetmulti-user.targetへのシンボリックリンクです)。

実行レベル5graphical.targetによってエミュレートされますrunlevel5.targetgraphical.targetへのシンボリックリンクです)。

実行レベル6reboot.targetによってエミュレートされますrunlevel6.targetreboot.targetへのシンボリックリンクです)。

緊急事態emergency.targetと一致します。

その後、systemmdはランレベルプログラムの実行を開始します。

6.ランレベルプログラム

Depending on which Linux distribution you have installed, you may be able to see different services getting started. For example, you might catch starting sendmail …. OK.

These are known as runlevel programs, and are executed from different directories depending on your run level. Each of the 6 runlevels described above has its own directory:

  • Run level 0 – /etc/rc0.d/
  • Run level 1 – /etc/rc1.d/
  • Run level 2  – /etc/rc2.d/
  • Run level 3  – /etc/rc3.d/
  • Run level 4 – /etc/rc4.d/
  • Run level 5 – /etc/rc5.d/
  • Run level 6 – /etc/rc6.d/

Note that the exact location of these directories varies from distribution to distribution.

If you look in the different run level directories, you'll find programs that start with either an "S" or "K" for startup and kill, respectively. Startup programs are executed during system startup, and kill programs during shutdown.

That's everything you need to know about the Linux booting process. Now go out there and make Tux proud.