オペレーティングシステム入門(1章)

講師紹介

エディフィストラーニング㈱
 

メイン講師:高橋 栄司

サブ講師:神鳥、吉野、宮下、内堀

 
 
 
 

研修で使用する主なユーザは以下の2つです。

ユーザ名 user01 root
パスワード user01 root

 
 

本研修の予定は以下の通りです。
● 1~2日目
オペレーティングシステム(OS)や、その代表例であるLinuxについて学習します。

● 3日目
ネットワークの基礎を学習します。
その後、最後の2時間程度を利用し、総合演習を行います。

 
 

OS および Linuxの概要

OSの位置付け

OSって一体何者(P13,14)

オペレーティングシステム(英語: Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。
https://ja.wikipedia.org/wiki/オペレーティングシステム

要するに、ハードウェアとソフトウェアの仲立ちをしてくれるものがOSです。

「アプリケーションが動作するための基本環境」を提供しています。

普段コンピュータを操作する時に意識しない、後ろ側で動いているたくさんの基本的な機能をOSは提供してくれています。

具体的には例えば、
 ・メモリのどの場所にデータを保存すればいいか
 ・CPUのリソースをどの程度それぞれのアプリケーションに割り振ればいいか
 ・ハードウェアからの処理の依頼をどんな順番で行うか

など、

また、大きく分けて役割は、

  • アプリケーションからの要求に応えること
  • ハードウェアからの応答をアプリケーションに伝えること

の2つに大別することができます。

 
 

OSのはじまり

もともと1960年代あたりのコンピュータにはOSという考え方は存在しなかった。当時はアプリケーションごとにコンピュータを用意するような感覚(専用機)だった。

計算用なら計算用のコンピュータ、事務処理用なら事務処理用のコンピュータとして提供されていた
(目玉焼き用のフライパン、ホットケーキ用のフライパン、チャーハン用のフライパンという風に料理ごとにフライパンをカスタマイズして販売している)

これはコンピュータの商売をしている企業にとって、大量生産ができずに、ひとつひとつのコンピュータの値段が高くなることにつながる。

そこで、商用のコンピュータを売っていたある企業が、効率的にするために作成したのが「OS」だ。開発企業がIBMである。

ここからOSは急速に進化を遂げていくことになる。

 
 

UNIXの誕生

米国ベル研究所でMulticsというOSが作られた。

目指したところは、多機能のOSであり、現在のコンピュータにつながるような素晴らしい発想で作り始められている。
しかし、当時のコンピュータのハードスペックでは残念ながら、OS本体が大きくて複雑になりすぎて、ろくに動かなかったのためそのプロジェクトは失敗に終わる。

Multicsの開発に関わっていたベル研究所のケン・トンプソンがこの失敗を糧として新しいOSを作成した。それが「UNICS」である。

このUNICSというソフトウェアは後に急速な広がりを見せていく。

 
 

UNIXの配布

ベル研究所は米国の電話会社であるAT&T社に属していた。

そのAT&T社は当時、アメリカ独占禁止法によりコンピュータ産業への進出は禁止されていたため、UNIXを作りながらも、UNIXを販売することができなかった。

そのためUNIXは実費程度の少額で色々なところに配られるようになり、特に大学や研究所で急速に普及した。
ソースコードも公開されていたため、ここから様々な派生版のUNIXが誕生することになる。

 
 

ライセンスとシェアの争い

派生版のUNIXが誕生しすぎたため、まとまりがなくなっていく。

また、これが大きなビジネスになる可能性にもAT&T社は気づきAT&Tと契約を結んだ組織のみが、自社のOSをUNIXと宣言できるようになった。
その後は、このライセンス縛りの影響が強く出てくる。

1985年から1995年までの10年間は、色々な会社がシェアを取りにUNIXマシンを製造していた。

ライセンス問題は色々なところでこじれにこじれる。

また、企業間の争いも激しかった。お互いの足を全力で引っ張り合う状態だった。

そしてそんな争いをしていたため、すべてを横からかっさらわれてしまう形でMicrosoft社のWindowsがすべてのUNIX系OSを出し抜き、標準OSの座を一気に手にいれてしまった。

 
 

Linuxの誕生

Linuxは1991年にフィンランドのヘルシンキ大学にいる普通の大学生だったリーナス・トーバルズが開発したOS。

AT&TのUNIXは著作権の問題もあり、色々と面倒だというのがあって独自のものを作成した。

それがLinux。

LinuxはUNIXを参考にゼロから作り直しているので、コマンドなど色々な点は似ているが、ソースはまったく別物になっている。

 
 

Linuxの成長

Linuxはオープンソースライセンスがついた状態で公開され、1991年にLinux version 0.02をリリースし、ここからLinuxの快進撃が始まる。

UNIX系OSはライセンスで縛られていたため、自由な公開や改良がしにくかったが、Linuxはオープンソースなので自由に改変もできるし、それを使った商売もできるようになった。

わずか2年の間に実用に耐えられるだけのLinux ver1.0がリリースされる。

 
 

1995年以降

1995年以降になると、IBMやHP、インテルなどのプログラマーも参加し、Linuxは市民権を獲得していく。2000年代になると、Microsoft社への反発もあり欧州で政府機関に取り入れられていく。

2010年代からはサーバーで圧倒的なシェアを獲得するようになる。実際、2011年から2014年にかけて、企業でのLinuxの導入率は65%から79%に増加した。
反面、Windowsの導入率は45%から36%に減少している。今後も、クラウドの分野を見れば、この傾向が強くなっていくと思われる。

また、スマートフォンのAndroidも、元はLinux

 
 

OSの役割 -OSが無いとどうなる?


OSは、アプリケーションソフトウェアのベースとなる機能を提供するソフトウェアです。

  • もしOSが無いと・・・
  •   以前のコンピュータは、統一された規格がなく、ベンダの独自仕様でした。
      ソフトウェアの対応状況などもベンダや機種ごとに異なっており、互換性も乏しく、アプリケーションソフトウェアの
      移植に多くの時間やコストが必要
    でした。
      また、コンピュータの機種が変わると、操作が変わってしまうため、ユーザにも多くの負担を強いていました。

  • OSがあれば・・・
  •   アプリケーションソフトウェアを開発する場合、OSに対応したアプリケーションソフトウェア(例:Windows、
      iOS、Linuxなど)を作成すれば、そのOSが動作するどの機種でも動作します。
      操作方法がOS(正確にはOSの搭載しているウインドウシステム)単位で統一されるので、機種が変わって
      もユーザは操作を覚えなおす必要はありません。
      たとえば、富士通のデスクトップ型コンピュータでWindows 10を使用しており、その後NECのノート型コン
      ピュータ(ノートPC)に買い替えても、同じOS(Windows10)がインストールされていれば、操作性が変わ
      ることはありません。
      一方で、アップルコンピュータのMacに買い替えると、OSも異なるので操作性や画面デザインも異なります。ま
      た、アプリケーションソフトウェアもMac OSに対応したものが必要になります。

 
 

アプリケーションからOSの機能を使う


アプリケーションプログラムを開発する場合、OSは次のような機能も提供してくれます。

  • ハードウェアの違いを吸収・抽象化
  •   たとえば、アプリケーションのウインドウをダブルタップすると、ディスプレイの種類やサイズなどの違いに関わらず、
      拡大・縮小できます
      ※ ディスプレイの仕様の違いをOSが吸収しているので、開発者は、これらの違いを意識せずにアプリケーション
      を開発できます

  • 統一された操作性を提供
  •   たとえば、バックキー(機種によってはタップするタイプのソフトウェアキー)で、前の画面に戻ることができます
      ※ 機種が異なっても、同じ操作性が提供されます

  • 共通機能の提供
  •   たとえば、キー入力が必要なアプリケーションソフトウェアは、OSの提供するソフトウェアキーボード機能を呼び出
      して入力できます
      ※ アプリケーションはOSの提供する機能を利用できるので、すべてをアプリケーション側で開発する必要はあり
      ません。

 
 

OSの用途(主なOS)


一般に、コンピュータ用のOSには、WindowsやLinuxなどがあります。
また、スマートフォンやタブレットPC用のOSには、iOSやAndroidがあります。
上記以外では、家電製品やコピー機などの電子機器用のOSというものも存在します。

=============================================
One Point

サーバ用OS
サーバ用のOSの代表例としては、WindowsとLinuxがあります。

Windowsは、サーバ用( Windows Server 2012やWindows Server 2016など )とクライアント
(Windows 8やWindows 10など)用の2系統に種類が分かれています。
両者は、基本的には同じものですが、ユーザ向けのほうは実際に操作を行っているユーザへの応答性を優先する
ように、チューニングされています。サーバ用途のWindowsは、ネットワークを通じて要求を送信してきたユーザへの
応答を優先するようにチューニングされており、さまざまなサーバ向けの機能を標準で搭載しています。

Red Hat Enterprise Linux、CentOS、Debian、ubuntuなどは、すべてLinixディストリビューションの名称で

本来、「Linux」とはカーネルというOSの中核部分の機能のみを指す言葉でしたが、実際のOSは、カーネルだけで
はなく、システムの構築・運用に必要な様々なソフトウェア群とまとめて提供されます。カーネルとこれらのソフトウェ
アをまとめたものを、ディストリビューション(distribution)といいます。詳細は、本章内で後述します。
=============================================

 
 

    前ページで確認した通り、Linuxは、以下のような様々な用途のプラットフォーム(基盤)として動作しています。
    特に、サーバ、モバイル、大規模システムではLinuxが広く利用されています。

  • サーバコンピュータ
  •   Webサーバ、メールサーバ、データベースサーバ、アプリケーションサーバなど、ネットワーク上でユーザにサービス
      を提供します。
      次ページに示す通り、インターネットでは、多くのこのようなサーバ機能が、Linuxで提供されています。

  • クライアントコンピュータ
  •   日本のビジネス用途のコンピュータは、Microsoft Office(ExcelやWord)を利用するために、
      Windowsを利用することがほとんどですが、海外では、低価格PCの多くにLinuxをプレインストールして販売
      しているものも多く存在します。

  • モバイル、組み込み機器
  •   Linuxは、スマートフォン(Android)や家電製品などにも組み込まれています。

  • 大規模システム
  •   Linuxは、メインフレームやスーパーコンピュータのOSとしても利用されています。スーパーコンピュータの性能ラ
      ンキングであるTop500やGreen500のほとんどがLinuxを採用しています。

 
 

WebサイトにおけるOSのシェア

 
 

サーバとは?


 

    ネットワーク環境で利用することを前提としたソフトウェアは、クライアント/サーバ型(モデル)とピアツーピア(P2P)
    型の2種類に分類できます。

  • クライアント/サーバ型
  •   特定の機能(サービス)を提供する側と、これを利用する側(クライアント)に、役割を分担します。
      クライアント/サーバ型の例は次の通りです。

      • WebサーバとWebブラウザ
        Webサーバの機能を提供するソフトウェアには、IIS(Internet Information Services)、Apache
        などがあります。これらのWebサーバソフトウェアをインストールし、動作させているコンピュータをWebサーバ
        といいます。
        Webサーバのクライアント機能を提供するソフトウェア(Webブラウザ)には、Internet Explorer、
        Mozilla Firefox、Opera、Google Chromeなどがあります。

  • ピアツーピア(P2P)型
  •   クライアント サーバ型のように、サーバ専用のコンピュータや、クライアント専用コンピュータのような役割を分けな
      い方法です。

    ピアツーピア型の場合は、コンピュータが、用途によって、サーバになったりクライアントになったりします。
    ピアツーピア型は、サーバ専用のコンピュータを用意する必要が無いため、手軽に構築できるというメリットがありま
    す。コンピュータが数台程度の小規模環境で、ファイルやプリンタを共有する程度の目的であれば、ピアツーピア型
    の利用形態でも充分な場合も多くあります。一方で、一般的には、企業で利用する場合、以下の要件が考えら
    れます。
     • サーバは常に起動しておき、いつでもアクセスできるようにしてほしい
     • 重要なデータのバックアップを定期的に行いたい
     • 専任の管理者を配置し、サーバの一元管理をしたい
     • ユーザのアクセス履歴をログに残したい
     • サーバを、セキュリティ上の目的から、空調や入退出が管理された専用の部屋で管理したい
    企業では、上記の例以外にも、運用管理面でさまざまな考慮が必要になります。このため、企業ではほとんどの場
    合において、これらの要件を実現しやすいクライアント サーバ型の利用形態を採用しています。

 
 

 

    クライアント/サーバ型やピアツーピア型は、もともとはソフトウェアの利用形態を指す用語でしたが、現在ではサーバ
    用のアプリケーションがインストールされたコンピュータのことも「サーバ」、ユーザの利用するコンピュータを「クライアン
    ト」と呼びます。

    サーバ用途のコンピュータと、クライアント用途のコンピュータの基本的な構成は同じです。 ただし、以下のような機
    能強化が行われています。

      • 高性能なCPUを搭載している
      • 大容量の高速なメモリを搭載している
      • 大容量のハードディスクを搭載している
      • 高速な通信が可能なネットワーク機能を搭載している
      • 製品によっては、ハードディスクやネットワーク機能など、一部のハードウェアが二重化(冗長化)されている

    ハードウェアの形状も、さまざまです。Webで画像検索をしてみましょう。

     • タワー型
       拡張性に優れていますが、設置スペースを多くとってしまいます。このため、たくさんのサーバが必要な時に設
       置場所が問題になります。

     • ラックマウント型
       ラック(棚)に固定して使用します。たくさんのサーバハードウェアを、少ない設置スペースで利用できます。

     • ブレード型
       1枚の電子基板上に、CPUやメモリ、ハードディスクなどのコンピュータに必要な部品を搭載しています。複
       数のブレードをまとめて1つの筐体(きょうたい:コンピュータの外側の箱(ケース)のこと)で扱うため、ラッ
       ク型よりも少ない設置スペースで利用できます。また、電源や冷却ファンなどの一部のハードウェアを、筐体
       内のブレードで共有するため、省電力化も実現できます。

タワーサーバー


最も基本的なタイプ。 価格とサイズは平均的なデスクトップと同程度。

タワーサーバは、以下のような中小規模用途に最適。

  • スペースの制約が懸念され、データルームを設けずに処理を一元化する必要がある
  • ネットワークリソースの監視と管理を簡単にする必要がある
  • 一元管理により、侵入と攻撃を受けにくくする必要がある

企業が購入する1 台目のサーバとしては、タワー型が最も一般的。サーバに搭載するハードドライブとプロセッサーの数は、選択できる。
 

ラックサーバー


このシステムでは、ラック内にサーバを積み重ねます。
CD ラックに CD を積み重ねるのとよく似た方法です。この方法は設置スペースを節約できますが、以下のような企業に適しています。

  • データセンターの統合により、スペース効率を最大化する必要がある
  • さまざまなアプリケーションとワークロードに対応するために各種サーバを柔軟に組み合わせる必要がある
  • サーバ内に専用の大規模ストレージを搭載する必要がある

ラックサーバは、サーバに関する知識がある企業や、より多くのサーバを必要としている中規模企業に適しています。

 

ブレードサーバー


このシステムは、3 種類の中で最もコンパクトなサーバ。
ブレードサーバという名称は、そのきわめて薄型の形状に由来するもので、1 つのエンクロージャ内に複数のブレードサーバを縦に積み重ねて収納できます。

電源など、一部のハードウェアコンポーネントは、サーバ間で共有します。

非常にコンパクトなサイズであるため、少ないスペースで多くのサーバを収納できます。

  • 処理能力の向上
  • スペースの削減
  • 電力の削減
  • 管理にかかる時間と費用の削減

ブレードサーバは、大規模な処理能力を必要とする企業、またはデータセンターの構築を計画している企業に適しています。
 
 

Linuxの特徴

 

    これまでに学習した内容も含めて、一度Linuxの主な特徴を確認しておきましょう。

  • UNIX系OS
  •   LinuxはUNIXというOSと同等の動作をするように、ゼロから作り上げられた独自のOSです。
      このため、LinuxはUNIX系OSとも呼ばれています。

  • 豊富なディストリビューション
  •   目的に応じた様々なディストリビューションが用意されおり、ユーザが自由に選択できます。

  • 様々なハードウェアのOSとして広く利用
  •   Linuxは、ユーザのコンピュータやサーバだけでなく、負荷分散装置や携帯電話、スーパーコンピュータなど様々な
      ハードウェアのOSとして利用されています。

  • 無償で利用できる
  •   Linuxディストリビューションは、無償で提供されています(Red Hat Linuxなど、有償のディストリビューションもあり
      ます)。

    構築するシステムに合わせて機能を詳細に調整できる

      システムに合わせて機能をチューニングできます。たとえば、アプリケーションに多くのメモリを割り当てられるように最小
      限の機能だけインストールする、組み込み機器向けに最適化する、などです。

 
 

Linuxは、リーナス・トーバルズが開発したUNIXライクな「OS」のことです。

大きな特徴はオープンソースであることで、無料で改変可能なプログラムである

Linuxは世界中の有志たちがボランティア的に作り上げ、無料で使え、中身も完全に公開されている状態で世に放たれている異色のOS。

開発からわずか15年ほどで、様々な分野で一気に広がりを見せ、分野によっては主力OSがLinuxになっているところも増えてきた。

  • とにかく無料で使える
  • 中身が弄れる
  • サーバーを自由に建てられる
  • Androidみたいな新しいOSが作れる
  • 家電や車、ゲーム、高性能コンピューター

 
 

OSの機能

 

管理者・開発者視点でのOSの機能

 

Linuxを使ってみよう

広義のOSと狭義のOS


 

    OSには、狭義と広義の2つの定義があります。

  • 狭義のOS
  •   狭義のOSはカーネルのことを指します。カーネルはOSの中核部分で、「制御プログラム」ともいいます。

  • 広義のOS
  •   カーネル、ライブラリ、基本的なコマンドプログラム、システムの管理などに使用するソフトウェア、アプリケーション
      ソフトウェア、フォントなどを組み合わせてパッケージ化したもので、Linuxではディストリビューションともいいます。
      Linuxには、Red Hat Linuxのような有償のものや、CentOSやUbuntuのような無償のものなど、様々な
      ディストリビューションがあります。


 

「Linux」は、厳密には二つの意味で分けられます。

  • 狭義のLinux:Linuxカーネルのこと
  • 広義のLinux:Linuxディストリビューションのこと

カーネルの主要機能

 

    カーネルは、OSの中核をなす機能を提供するプログラムであり、カーネルの機能の違いがOSの性質を表します。
    カーネルが提供する機能には以下の例があります。

  • リソース管理
  •   CPU、メモリ、周辺機器などのリソースを管理し、他のプログラムがこれらを利用できるようにする。

  • プロセス管理
  •   プロセスの生成、実行、終了、リソースの割り当て、プロセス間通信、排他制御などの制御。

  • メモリ管理
  •   プロセスごとに仮想的なメモリ空間を作り、プロセスにメモリを割り当てる。必要に応じて、メモリの内容をハード
      ディスクに退避させることで、物理的に搭載されているメモリ以上のメモリ空間を利用できるようにする。

  • デバイス管理
  •   デバイスドライバは、カーネルが周辺機器を制御するためのプログラム。
      カーネルはデバイスドライバが物理的に周辺機器にアクセスするための機能やメモリ空間を提供する。

  • システムコール
  •   Linuxカーネルに用意されている、アプリケーションから呼び出し可能なプログラム群。
      アプリケーションは、システムコールを呼び出すことでカーネルの機能を利用する。

Linuxカーネルが提供する代表的な機能を一部紹介します。

  • ファイル管理
  • プロセス管理
  • ユーザー管理
  • メモリ管理
  • プロセススケジューラ

等。 (他にもたくさんあります)
 
 

カーネルと特権/非特権モード(参考)


 

そしてカーネルはアプリケーションからの要求に対して、
システムコールを介することで処理しています。

システムコール

「非特権モードで動作しているプログラム」「特権モードで動作しているカーネル」に処理を依頼することです。


 
 
カーネルはコンピュータ上の全てのリソースにアクセスできる特別な存在です。

もし一般のプログラムが、カーネルと同じように好き勝手にコンピュータ上の全てのリソースをいじることができたら、一体どうなるでしょうか?

プログラムごとにメモリなどのPC上のリソースを自由にいじられると、重大なエラーが発生するだけでなく、最悪PCが停止する可能性があり、非常にリスキーです。

そこでLinuxカーネルではプログラムの実行環境を、

 ・全てのリソースを扱うことができる、「カーネルモード」
 ・一部のリソースしか扱うことができない、「ユーザーモード」

の二つの世界に分けています。

ユーザーモードでは原則、他のプログラムに対して影響を与えるような動作をすることができません(他のプログラムに対して影響を与える心配がないので、安心してプログラムを動かすことができます)。

カーネルに対しての窓口をシステムコールに絞ることで、プロセスに対する管理能力と安全性を高めています。

  • 全ての処理をカーネルが統括することができるので、プログラム同士で処理のバッティングが起こらない
  • 不用意にプログラムが他のプログラムの内容を書き換えない

などです。

 
 
 
 

【ハンズオン】 仮想マシンの起動


本研修では、仮想化(virtualization)ソフトウェア(以下仮想化ソフト)のひとつであるVirtual Boxを使用し、
仮想化環境上でLinuxディストリビューションのCentOSを動作させます。

仮想化ソフトとは、コンピュータ上に「疑似的に作られた仮想的なコンピュータおよびネットワーク環境」を提供するこ
とができるソフトウェアです。
仮想化によって、物理的な1台のコンピュータ上で、仮想マシンと呼ばれる複数の仮想的なコンピュータを動作させ
ることができます。

仮想化ソフトの提供する仮想的なコンピュータのことを仮想マシンといいます。仮想マシンは、仮想化ソフトの提供
する仮想ネットワークによって相互に接続されています。
仮想マシンには、OSやアプリケーションを自由にインストールできます。たとえば、仮想マシン1にはLinuxとサーバア
プリケーション、仮想マシン2にはWindowsとクライアントアプリケーションをインストールし、仮想ネットワークを通じ
てデータを送受信することもできます。

仮想化によって、本研修のような検証環境を容易に構築することができます。
また、1台の高性能なサーバに複数のサーバ用途の仮想マシンを動作させることでサーバを統合し、設置スペース、
管理の手間、消費電力、ハードウェア投資コストを削減することもできます。

現在のIT基盤において、仮想化技術は広く利用されているため、本研修で仮想化環境に実際に触れ、仮想化
がどのようなものかを体験しておきましょう。

 
 

仮想化ソフト上で、Linuxの仮想マシンを起動する場合は、以下の手順を実行します。

VirtualBox(仮想化ソフト)を起動します。
作成済みの仮想マシン「1) Linux入門」を選択し、[起動]をクリックします。
仮想マシンのウインドウが起動したら、「user01」をクリックし、パスワードを入力します。

「user01」が表示されない場合は、Linuxのウインドウ内をマウスで1回クリックしてから、[Enter]キーを押し
てください
本演習で使用するuser01のパスワードは、ユーザ名と同じuser01です。

==============================
OnePoint

パスワード
ユーザ名と同じパスワードは、セキュリティ上は推奨されていません。
本テキストでは、何度もログイン(サインイン)とログアウト(サインアウト)を繰り返すので、入力しやすく、忘れに
くくするためにこのようなパスワードにしています。
実際の環境では、推測されにくいパスワードを設定するようにしましょう。
==============================

 
 


仮想マシン起動後の状態は、上図の通りです。

現在は、VirtualBoxが作成する仮想マシンのウインドウを通じて、仮想マシンにインストールされたLinux
(CentOSディストリビューション)を操作している状態です。今まで使用していたWindowsコンピュータ以外に、
Linuxがインストールされたコンピュータを、もう一台支給された、と考えるとわかりやすいでしょう。仮想化環境では、
コンピュータのCPUやメモリの限界を超えない範囲であれば、2台め、3台めの仮想マシンを作成し、起動すること
もできます。

【ハンズオン】ログイン、ログアウト、シャットダウン

WindowsやLinuxなどのコンピュータ用のOSを利用する場合、以下の操作を行う必要があります。

  • ログイン(サインイン)
  • • 本人確認のために、あらかじめ登録されたユーザとパスワードを入力します。
    ユーザ名やパスワードは、利用中のコンピュータに登録されているものを利用する場合と、ユーザを管理す
    るサーバに集中管理されているものを、ネットワークを経由して利用する場合とがあります。
    • 本研修では、操作中のLinuxに登録されているユーザ名とパスワードを使用します。
    ユーザ名:user01
    パスワード:user01
    • WindowsやLinuxでは、ログイン時のユーザ名によって、デスクトップや個人用ディレクトリ(フォルダ)、
    スクリーンセーバなどの個人ごとの環境が個別に保存されています。

  • ログアウト(サインアウト)
  • • アプリケーションを終了し、ログイン前の状態に戻ります。

  • シャットダウン
  • コンピュータの電源を切るときは、必ずOSから「シャットダウン」操作を行ってください。
    OSは、バックグラウンドでさまざまなプログラムが動作しています。
    OSは、さまざまなプログラムが動作するために必要なデータや、設定、稼働状況の記録などを、いったんメモリ
    に展開し、メモリ上で編集などの操作を行い、必要に応じてハードディスクに保存します。バックグラウンドで動
    作しているプログラムも含めて、メモリ上のデータをディスクに反映し、すべてのプログラムを正常に終了させるた
    め、シャットダウン操作が必要です。


 
 


Linuxにログインすると、上図のような画面が表示されます。この画面をデスクトップ(desktop:机上、卓上)
といいます。
Linuxでは、デスクトップにも種類があり、好みのデスクトップが選択できますが、本研修で利用しているCentOSと
いうLinuxでは、GNOMEというデスクトップ環境が自動的にインストールされます。
このため、本研修でもGNOMEデスクトップ環境を使用します。

GNOMEデスクトップでは、画面の上部に必要な操作を行うための要素が配置されています。

① トップバー
[アプリケーション]と、[場所]というメニューがあります。
Windowsのスタートメニューに相当します。
[アプリケーション]は、アプリケーションソフトウェアを起動したり、Linux(CentOS)そのものの設定を行うため
のメニューを呼び出すときに利用します。

② システムメニュー
スピーカの音量調整、ネットワーク設定の呼び出し、ユーザーの切り替え、コンピューターのシャットダウンなどを
行うためのメニューがあります。

③ home
現在ログイン中のユーザのホームディレクトリ(自分だけがアクセスできる専用のディレクトリのことで、
Windowsではフォルダと呼ぶ)を開きます。

④ Trash(ごみ箱)
削除したファイルやディレクトリはごみ箱に移動します。ごみ箱を開くと、ごみ箱の中のファイルの一覧、ごみ箱の
中にあるファイルを元の位置に戻す、ごみ箱を空にする、などのごみ箱の操作を行うためのウインドウが表示さ
れます。

 
 


たとえば、WebブラウザのFireFoxを起動する場合は、[アプリケーション]メニューの、[インターネット]-[FireFox
ウェブ・ブラウザ]を選択します。
(仮想マシンは、インターネットには接続できないように設定しているため、FireFoxを起動してもWebの閲覧はで
きません)

また、起動したアプリケーション(この例ではFireFox)のウインドウは、ウインドウ右上にある3つのボタンで、最小
化、最大化、閉じる(終了)が行えます。


 
 

現在の作業を中断し、ログイン前の状態に戻ることをログアウト(またはサインアウト)といいます。ログアウトする
場合は、上図の①をクリックし、[ログアウト]メニューを選択してください。

また、コンピュータの電源を切る場合や、コンピュータを再起動する場合は、上図の②をクリックします。すると、再
起動、シャットダウン、キャンセルが選択できるメニューが表示されます。
すでに説明しましたが、WindowsやLinuxなどのコンピュータのOSは、さまざまなプログラムが動作するために必要
なデータや、設定、稼働状況の記録などを、いったんメモリに展開し、メモリ上で編集などの操作を行い、あとから
必要に応じてハードディスクに保存します。バックグラウンドで動作しているプログラムも含めて、メモリ上のデータを
ディスクに反映し、すべてのプログラムを正常に終了させるため、必ずいきなり電源を切断するのではなく、OSの
シャットダウン操作を行う必要があります。

特に、上図の③にある、仮想マシンのウインドウの閉じる([×])ボタンをクリックして仮想マシンを終了させるとき
は注意が必要です。
仮想マシンのウインドウの閉じる([×])ボタンをクリックすると、3つのメニューが選択できるウインドウが表示されま
す。

  • 仮想マシンの状態を保存
  • ノートPCの蓋を閉じるように、現在の状態を保存して次回起動時にはすぐに保存時の状態に復帰します。
    一時的に利用を中断する場合に便利です。

  • シャットダウンシグナル送信
  • Linuxに、シャットダウンの命令(シャットダウンシグナル)をVirtualBoxから送信し、Linuxをシャットダウンし
    ます。

  • 仮想マシンの電源オフ
  • コンピュータの電源を、いきなり切断する操作と同等のことを行います。このため、本メニューは通常は使用せず
    に、障害によって仮想マシンが操作を受け付けなくなってしまった状態の時にだけ使用します。


     
     

    【ハンズオン】 端末を開いてコマンドを入力する

    Linuxでは、マウスによるメニュー操作でも使うことができますが、キーボードから入力するコマンド(命令)でも利
    用することができます。

    キーボードからコマンドを入力し、Linuxを操作する場合は「端末」ウインドウを開きます。
    端末は、Widowsのコマンドプロンプトに相当します。

    端末は、現在利用中のLinuxを操作するときにも利用できますが(上図の「使い方1」)、別のLinuxにネット
    ワーク経由でログイン(リモートログイン)し、操作するときにも利用できます(上図の「使い方2」)。
    サーバはサーバルームやデータセンター、クラウドサービス上などの、一般社員からは隔離された場所にあるため、
    図の「使い方2」のような、リモートログインする使い方が一般的です。

    たとえばLinuxをシャットダウンする場合は、 「端末」ウインドウで以下のように入力します。
    (この後もLinuxを利用するため、実際にはシャットダウン操作は行わないでください)

    shutdown -h now


     
     

    GUIとCUI


      Linuxは、以下のGUIとCUIという2つのユーザインターフェイスを提供します。

    • GUI(Graphical User Interface)
    •   • マウスなどを用いて画面上のアイコンやメニューをクリック(またはダブルクリック)し、様々な操作を行う方
         式のインターフェイスです。
        • WindowsやMAC OSで採用されています。
        • 直感的でわかりやすい操作方法が提供されます。
        • ExcelやWord、Webブラウザなど、ユーザが日常的に利用する様々なアプリケーションソフトウェアが、
         GUIを前提としています。
        • シェルが変わると操作も変わってしまうため、GUIによる操作はOSの種類やバージョンが変わると覚えなおす必
         要があります。

    • CLI (Command Line Interface)または CUI(Character-based User Interface)
    •   • キーボードからのコマンド入力によって処理を行い、処理結果を文字で返す方式のインターフェイスです。
        • [Ctrl]+[Alt]+[F2]キーを押し、GUIが無い完全なCLIの様子を確認してみましょう。
        • 元のGUI画面に戻す場合は[Ctrl]+[Alt]+[F1]キーを押します。

      ユーザとしてOSを利用する場合は、Microsoft ExcelやWordなどが利用でき、Webサイトも閲覧できるように
      するために、GUIが必須です。一方、サーバの場合は、クライアントからの要求に対して応答ができればよいため、
      必ずしもGUIは必要がありません。このため、サーバではCUIのみ利用できる状態になっている場合もあります。
      CUIのメリットは以下の通りです。

    • CLIのメリット
    •   • プログラムの連携がしやすい
        • 処理の自動化がしやすい
        • 作業効率が良くなる

      これらの理由から、Linuxでは、サーバにはGUIは必ずしも必要なものではないと考えられています。このため、サー
      バでは、GUIのシェルが使えない場合もあります。つまり「Linuxにおいては、CLIこそ本質であり、基礎である」とも
      言えます。

     
     

    シェル入門

    シェルとコマンド

      Linuxには、多くのコマンドが用意されており、これらのコマンドを使いこなすことで様々な処理を行うことができます。
      ただし、コマンドに慣れるまでは、入力ミスや指定漏れなどが原因で、コマンドが正常に実行されないことがあります。
      このため、コマンドを入力したら終わり、ではなく、コマンド実行後に何らかのエラーメッセージが表示されていないか
      を必ず確認しましょう。エラーメッセージが表示されたら、その内容をきちんと読み取り対処することが重要です。

      ユーザの入力したコマンド(命令)を読み込み、解釈して、コマンドに応じた動作を実行するのがシェルです。ユー
      ザはカーネルを直接操作することはできません。このため、シェルがカーネルの境界(インターフェイス)となって、
      ユーザからのコマンドを受付け、カーネルに実行を依頼し、カーネルから実行結果を受け取って画面に表示していま
      す。
      カーネル(OSの中核)をCLIやGUIのシェル(殻)が包んでおり、ユーザはシェルが提供するコマンドを通じて
      カーネルに処理を依頼している、と考えると良いでしょう。主なシェルの種類と特徴は、以下の通りです。

    • sh(Bourne(B)シェル)
    •   もっとも古くから存在し、Linuxに限らずFreeBSDやSolaris、HP-UXやAIXなど多くのOSで利用できる

    • csh
    •   現在は後継のtcshがあるためほとんど使われていない

    • bash(Bourne Again Shell)
    •   shを基本として機能を拡張したシェル(shと後方互換性を持つ)
        多くのLinuxディストリビューションでデフォルトのログインシェルとして採用されている。

    • tcsh
    •   cshの後継、対話型操作で便利な機能を多く持つ
        MAC OS バージョン10.2までの、デフォルトのログインシェル

    • zsh
        比較的新しいシェルで、ほかのシェルの機能を取り込み、さらに独自拡張を加えた多機能なシェル

      Windowsではシェルは選べませんが、Linuxではシェルとカーネルが分かれているため、シェルを自由に選択できま
      す。このため、Linuxでは以下のようなことも実現できます。
        • シェルを自分好みのものに変更できる
        • FreeBSDやSolarisなどの、ほかのUNIX系OSを利用する際も、シェルが移植されていれば同様の操
         作が行える

     
     

    プロンプト


    プロンプト(Prompt)は、シェルがコマンド入力を促していることを表す記号のことで、促す、引き起こすなどの意
    味があります。
    Linuxでは、プロンプトに表示される記号で、権限のない一般ユーザとしてログインしているか、権限を持つ管理者
    としてログインしているかが区別できます。

    Linuxでは、rootという名前の、管理者としてすべての操作が行える権限を持ったユーザ(スーパーユーザ)がイ
    ンストール時に自動的に作成されます。何らかの管理作業を行う場合、一般ユーザからスーパーユーザである
    rootに切り替えてコマンドを入力することがありますが、自分がどちらのユーザとして認識されているかはプロンプトで
    判断することになるので、両者の違いを覚えておきましょう。


     
     

    プロンプトとコマンドライン


    コマンドは、プロンプト記号の後ろに入力します。
    コマンド入力部分のことをコマンドラインといいます。
    キーボードから入力された文字列が、コマンドラインのどこに挿入されるかは、カーソル位置で判断します。
    Linuxでは、コマンドは大文字と小文字を区別するため、「コマンドは小文字で入力する」と覚えておきましょう。

     
     

    [Tab]キーによる補完入力

    Linuxには、[Tab]キーの1回押し、または2回押しによるコマンドの補完入力および候補表示機能があります。
    入力ミスを防ぎ、コマンドを素早く入力するためにも、本機能を活用しましょう。


     
     

    過去に入力したコマンドの再利用

    [↑][↓]キーなどで、過去に入力したコマンドを呼び出して、再利用することもできます。
    何度も同じようなコマンドを入力する場合に便利なので、ぜひ活用しましょう。

    ==============================
    OnePoint

    Virtual Boxを利用するときの[Ctrl]キー

    ホットキーとは、仮想マシンからホストOSにキー制御を戻す場合に使用する特殊なキーのことで、仮想化ソフトウェ
    アによって、デフォルトのホットキーが異なります(変更することは可能です)。
    キーボードの左右にある[Ctrl]キーのうち、VirtualBoxでは、右側の[Ctrl]キーを「ホットキー」と位置付けていま
    す。
    このため、本ページおよび本ページ以降で紹介している[Ctrl]キーを利用した便利なキー操作では、右側の
    [Ctrl]キーが利用できないので、左側の[Ctrl]キーを利用してください。

    ==============================

     
     

    コマンドラインの編集(参考)


     
     

    困ったときは



    実行中のコマンドを強制終了する場合は、[Ctrl] + [c]キーを押します。思いがけず処理時間が長くなってしまっ
    たコマンドを強制終了するときなどに使用します。

    現在の画面をいったんクリアする場合は、[Ctrl] + [l](小文字のL)キーを押します。

    コマンドを入力するときに、書式などを簡単に調べたい、という場合は、 --help オプションを試してみましょう。詳細
    な情報を調べる場合は別の方法については後述します。

     
     

    章末問題(MUST)


     
     

    本章の最後にコマンド入力機能の確認をしましょう。解答は、章のまとめの次のページにあります。

    1.  hで始まるコマンドの候補を表示してください。

    2.  hostで始まるコマンドの候補を表示してください。

    3.  hostnameコマンドを補完入力の機能を使って入力してください。

    4.  calコマンドを実行してください。

    5.  calコマンドにはどのようなオプションが指定できるか調べてください。

    6.  3か月分のカレンダーを表示してください。

    7.  端末ウインドウに表示されているコマンドや実行結果を消去してください。

    -Linux入門

    © 2021 スタートダッシュ