ここでは、Linux初心者がエンジニアになるために必要な知識、基本操作について説明していきます。
Linuxとは
◎基本ソフトウェアと応用ソフトウェア
動作しているコンピュータには、大別すると「ハードウェア」と「ソフトウェア」の2つの部分があります。
ハードウェアは、コンピュータ自体を指し、ソフトウェアは、ハードウェアで動作するプログラムを指します。
また、ソフトウェアも大別すると、「基本ソフトウェア」と「応用ソフトウェア」の2つがあります。
基本ソフトウェアは、Operating System (OS)のことを指し、LinuxやWindows、Mac OS Xがその例です。
応用ソフトウェアは、WordやExcelなど基本ソフトウェア上で動作するアプリケーションのこと指します。
従って、基本ソフトウェアが搭載されていないとコンピュータを動かすことは不可能であり、ほとんどのコンピュータに搭載されているLinuxを学ぶことは多種多様なコンピュータを駆使することが可能になると言っても過言ではありません。
Linuxの特徴
Linuxはどういった仕組みで動作するのでしょうか。ここでは、Linuxの特徴について説明していきます。
ソフトウェアは、基本ソフトウェアと応用ソフトウェアの2つに分かれますが、基本ソフトウェアはさらに「カーネル」と「ユーザーランド」の2つの領域に分けられます。
◎カーネル
オペレーティングシステムの中核となる部分で、ハードウェアと直接やりとりを行うなど最も中心的な機能を受け持つ部分ですが、カーネルだけでは、機能が少なすぎて、実用的ではありません。
また、ハードウェアの違いを吸収して、プログラムがどのようなハードウェア上でも同様に動作する役割もあります。
◎ユーザーランド
OSが動作するのに必要な、カーネル以外の部分です。
ファイルシステムやファイル操作コマンド、シェルなどの基本的なソフトウェア群を指します。
⇒カーネルは、コンピュータの言葉として用いられている2進数しか理解することができないため、ユーザーランドが人間とコンピュータの仲介役を担い、互いが理解できる言語に翻訳しています。
Linuxを使う
LinuxはWindowsと異なり、基本的にコマンドを用いて操作を行います。コマンドはユーザーランドで動作しています。
普段私たちが使用しているWindowsやMacOS は、グラフィカル的なUI(User Interface)であるため、マウス入力による操作が可能です。
WindowsやMacがマウス入力による操作がメインであるのに対して、LinuxはキャラクタベースのUIでありキーボードでコマンドを入力する操作がメインです。
Linuxもデスクトップ環境を導入することで、WindowsやMacのようなマウス入力が可能となります。
※UI:User Interfaceの略。人間とコンピュータの仲介役を担い、情報のやり取りを行う仕組み。マウス等のポインティングデバイスを用いてアイコンを指示するようなグラフィカルな操作が可能なGUI(Graphical User Interface)とキーボードを用いてコマンドによる入力操作が可能なCUI(Character User Interface)の2つに分けられる。
◎シェル
Linuxには、シェルという対話型のコマンド入力環境が用意されており、シェルは入力されたコマンドを理解し、実行しています。
また、シェルには主に2つの機能があります。1つは、コマンド入力を受け付けることで、もう1つは、シェルスクリプトの実行することです。
シェルスクリプトとは、コマンド入力を自動化するためのもので、1つのファイルにコマンドを1行ずつ記述して作成します。シェルスクリプトを作成することで、コマンドの実行を自動化することが可能なので、作業の効率化につながります。
ディストリビューションの誕生
Linuxは1991年に誕生して以来、日々改良が進んでいます。はじめは単機能しか備えていなかったものが、様々なハードウェア上で動くようになりました。しかし、当初のLinuxはインストール作業が非常に困難で、一部のコンピュータスキルが高い利用者しか使うことができませんでした。
これらの作業を簡単に行うことができるようにするため、様々な団体によってLinuxを使う上で必要なプログラムを組み合わせて使いやすくしたものが、ディストリビューションです。代表的なものとして、Canonicalが開発しているRed HatやDebian Project、Ubuntuなどがあります。
◎パッケージ
Linuxに対して追加機能を提供するものがパッケージです。従来、Linux上で応用ソフトウェアの実行を行うためには、ソースをダウンロードし自らビルドする必要がありました。しかし、この作業は非常に時間と手間がかかるので、ディストリビューターによってビルドされた応用ソフトウェアを簡単に導入できるパッケージが作られるようになりました。
※ディストリビューター:Linuxのディストリビューションを開発する団体のこと。
◎パッケージマネージャ
応用ソフトウェアを導入するためには、複数の応用ソフトウェアやこの動作を補足するライブラリが必要な場合があります。依存するプログラムがさらに別のプログラムに依存しているとなると、正確な場所・順序でインストールしなければなりません。
仮想環境
Linuxを学習するためには、Linux専用のパソコンを用意するのが最善ですが、中々準備することは難しいと思います。
そこで、ここでは、WidowsやMac OS専用のパソコンでも、Linux環境が使えるように仮想環境を構築することをおすすめします。
仮想環境とは、すでにOSが走っているコンピュータの中に、1つのアプリとして仮想的なコンピュータを構築することです。そうすることで、WindowsやMac OS上でもLinux環境を構築することができます。