Linuxシステムと起動


  1. Linux

    1. Linuxとは

       Linux系OSは UNIX を母胎として発展しているOSで、フリーソフトのOSとして多くのプログラムが開発/移植されています。
       Linux系にも完全にフリーなものと、特定の企業が最近の開発や更新をまとめて ディストリビューション として販売・メンテナンスを行っているものがあります。

    2. Linuxの特徴

       Linuxには、小型実時間性を重視した機器組み込み型タイプ、GUIを組み込みアプリケーション実行用のタイプなどがありますが、多分、最も多く利用されているのは豊富で実績のあるネットワークサービス機能を組み込んだ ナットワークサーバー型の組み込みだと思われます。

       DHCP:ネットワーク接続情報の提供
       FTP  :ファイル転送サーバー
       WWW :ホームページサービス
       DB   :データベース
       Samba :WindowsとLinuxのファイル共用サービス
       Smtp :メール転送

      など、多くの実績のあるネットワークサービスを利用することができます。

  2. ブートローダ

    1. ブートローダ

      PCを起動すると最初にマザーボードのBIOSが起動し、ハードディスクのMBR (Master Boot Record)という領域に記録されている情報に基づき、ハードディスクからOSを読み込みます。

    2. LILO

      Linux で標準的に利用されているブート・ローダは LILO (LInux LOader) です. 最近のディストリビューションには GRUB(GRand Unified Bootloader)というブート・ローダが標準になっているものもあります。LILOは lilo.conf ファイルの内容を参照して、Linuxシステムを立ち上げます。

      例 "/etc/lilo.conf
      boot=/dev/hda
      map=/boot/map
      install=/boot/boot.b
      prompt
      timeout=50
      message=/boot/message.ja
      linear
      default=linux
      
      image=/boot/vmlinuz-2.4.4-18k
              label=linux
              read-only
              root=/dev/hda1
      
      other=/dev/hda1
             optional
             label=dos                

  3. Linuxの起動:initと終了

    1. init

      Linuxは起動すると init コマンドを実行します。init コマンドは /etc/inittab を参照して、起動処理を実行します。起動すると、ランレベル0から順に実行されます。各ランレベルで設定されたサーバーを起動します。
       各ランレベルは次のような機能を組み込みます。

      # 0 - halt (Do NOT set initdefault to this)
      # 1 - Single user mode
      # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
      # 3 - Full multiuser mode
      # 4 - unused
      # 5 - X11
      # 6 - reboot (Do NOT set initdefault to this)

      Xウインドウシステム(GUI)を利用する場合 ランレベル5 を、そうでない場合ランレベル3まで立ち上げます。立ち上げるランレベルは /etc/inittab ファイルの id:5:initdefault: の行で設定します。id:5 の5を3に設定すると、ランレベルル3で立ち上げを終了します。

      /etc/inittab

       id:5:initdefault:
       
    2. 終了

      ターミナル上からのシステムの停止は次のコマンドで行います。

       shutdown -h now

      -h は halt のオプションで, now は直ちに動作を行うことを示しています。 now は時間を指定することで停止する時間を設定できます。

       halt

      でも終了を行います。

  4. ランレベルとサービスの起動

    1. ランレベルの設定

       各ランレベルでは、/etc/rc.d ディレクトリにある rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d ディレクトリにあるスクリプトファイルでサービスが起動されます。

    2. スクリプトファイル

       Sxxで始まるスクリプトファイルは対応するサービスを起動します。Kxxで始まるスクリプトファイルは実行されません。

    3. サービスの確認

       各レベルのサービスは chkconfig コマンドで確認できます。

    4. ログイン

       システムが起動すると、ログイン画面になります。利用者名とパスワードを入力します。インストール直後は root ユーザのみがログイン可能です。ネットワークサービスは起動をすると(ログインしなくとも)処理を開始します。

    5. 実行

       ログインを行うと、コマンド入力が可能になります。Xウインドウの場合、ketrm などのコマンド入力用のウインドウを開きます。インターネットサーバーの場合、サーバーが起動し待機状態に入ります。起動している処理(デーモン)は 次のコマンドで モニタできます。
       >ps -aux
      [root@hibashi mito]# ps -aux
      USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
      root         1  0.0  0.4  1372  476 ?        S    11:26   0:04 init
      root         2  0.0  0.0     0    0 ?        SW   11:26   0:00 [keventd]
      root         3  0.0  0.0     0    0 ?        SW   11:26   0:00 [kapmd]
      root         4  0.0  0.0     0    0 ?        SWN  11:26   0:00 [ksoftirqd_CPU0]
      root         9  0.0  0.0     0    0 ?        SW   11:26   0:00 [bdflush]
      root         5  0.0  0.0     0    0 ?        SW   11:26   0:00 [kswapd]
      root         6  0.0  0.0     0    0 ?        SW   11:26   0:00 [kscand/DMA]
      root         7  0.0  0.0     0    0 ?        SW   11:26   0:00 [kscand/Normal]
      root         8  0.0  0.0     0    0 ?        SW   11:26   0:00 [kscand/HighMem]
      root        10  0.0  0.0     0    0 ?        SW   11:26   0:00 [kupdated]
      root        11  0.0  0.0     0    0 ?        SW   11:26   0:00 [mdrecoveryd]
      root        15  0.0  0.0     0    0 ?        SW   11:26   0:00 [kjournald]
      root        72  0.0  0.0     0    0 ?        SW   11:26   0:00 [khubd]
      root      2798  0.0  0.0     0    0 ?        SW   11:26   0:00 [kjournald]
      root      3042  0.0  0.0     0    0 ?        SW   11:27   0:00 [eth0]
      root      3093  0.0  0.4  1436  576 ?        S    11:27   0:00 syslogd -m 0
      root      3097  0.0  0.3  1368  428 ?        S    11:27   0:00 klogd -x
      rpc       3107  0.0  0.4  1544  544 ?        S    11:27   0:00 [portmap]
      rpcuser   3126  0.0  0.5  1520  684 ?        S    11:27   0:00 [rpc.statd]
      nobody    3162  0.0  0.8  2180 1052 ?        S    11:27   0:00 [proftpd]
      root      3202  0.0  0.4  1360  492 ?        S    11:27   0:00 /usr/sbin/apmd -p
      named     3240  0.0  2.4 29816 2924 ?        S    11:27   0:00 [named]
      root      3253  0.0  1.2  3508 1504 ?        S    11:27   0:00 /usr/sbin/sshd
      root      3267  0.0  0.7  2020  852 ?        S    11:27   0:00 xinetd -stayalive
      root      3279  0.0  0.9  4160 1080 ?        S    11:27   0:00 /bin/sh /usr/bin/
      mysql     3309  0.0  3.5 26772 4232 ?        S    11:27   0:00 [mysqld]
      root      3376  0.0  1.1  4512 1396 ?        S    11:28   0:00 [master]
      postfix   3386  0.0  1.2  4584 1468 ?        S    11:28   0:00 [nqmgr]