Linuxという言葉は、PCを自作している人やOSに詳しくない人でなければあまり聞きなじみがなく、遠い世界の言葉だと思われます。
しかし、実際のLinuxはPCにかかわる人にとっては非常に身近で、理解できれば便利な存在です。
本記事では、Linuxの成り立ちや特徴を紹介することで、その利便性について知っていただこうと思います。
Linuxとは?
Linuxとは
Linuxは、Unix(ユニックス)系オペレーティングシステムカーネルであるLinuxカーネルのことで、Linuxをカーネルとして周辺を整備したシステム全体のことを指す場合もあります。
Unixとは、コンピューター用のマルチタスク・マルチユーザーのオペレーティングシステムの一種で、それに類似した振る舞いをするオペレーティングシステム(OS)をUnix系と呼びます。
カーネルは階層型に設計されたOSの中核となる部分で、OSはコンピューターのオペレーション(操作・運用・運転)を司るシステムソフトウェアです。
広義の部分を簡単に説明すると、Linuxは“Mac OS”や“Windows 10”のような、コンピューターのすべてのハードウェアを管理しているソフトウェア・OSの1種です。
当初はパソコン用に作られたOSでしたが、現在ではスーパーコンピューター、メインフレーム、サーバー、パーソナルコンピューター、組み込みシステム(携帯電話やテレビなど)など、幅広い種類のハードウェアで使用されています。
OSとは
LinuxはOSの1種であるということで、OSについてもう少し説明します。
OSは、前述の通りコンピューターのオペレーション(操作・運用・運転)を司るシステムソフトウェアです。
ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリに対しては標準的なインターフェースを提供し、ハードウェアには効率的な管理を行います。
例としては、キーボードやマウスなどのデバイスから入力した情報をアプリケーションに伝えたり、ソフトウェアとハードウェアの連携を制御したりといった役割を果たします。
OSは、パーソナルコンピューターやスーパーコンピューターといった各種のコンピューターの他、スマートフォンやゲーム機などの組み込みシステムで内部的に使用されています。
なお、OSはソフトウェアであるため、1台のパソコンに複数インストールすることも可能です。
その場合は、パソコンの起動時にどのOSで起動するか選択することになります。
Linuxの特徴
オープンソースのOS
LinuxはオープンソースのOSなので、ソースコードが無償で公開されており、自由に改良・再配布可能です。
また、基本的に無料で使用できます。
PCを自作せず購入する場合は気づきにくいですが、OSにも価格が設定されています。
例として、WindowsのOSである“Windows 10 Home”の価格は19,360円からとなっており、この部分の負担がなくなることを考えると導入費用のコストダウンとして大きな効果を期待できます。
また、ソースコードが公開されていることから、修正の必要がある場合や開発に使用する場合も柔軟に対応できます。
さらに、自分で中身を書き換えることも可能です。
書き換える場合はPCがうまく起動しなくなるなど失敗する可能性もありますが、無料のものならば再インストールすることでこのデメリットは無視できます。
多彩な種類が用意されている
オープンソースであるLinuxは、多くの人が自分にあわせたカスタマイズを行ったことからさまざまな種類(配布形態)が誕生しており、これはディストリビューションと呼ばれています。
一般的にLinuxディストリビューションは、利用目的にあわせてアプリケーション(ソフトウェア)を集めたものです。
サーバーへのインストールはもちろん、すぐに利用できるようにあらかじめアプリケーションがセットしてあります。
低スペックでも使用可能
Linuxは、不要なものをそぎ落としている軽量OSで、カスタマイズも自由に行えます。
そのため、Windows用としては使用できなくなった古いPCのような低スペックPCでも問題なく軽快に動作します。
また、低スペックPCでも情報の表示にグラフィックを多用するグラフィックベースの操作体系UI“GUI”が使用できるようになっているディストリビューションもあります。
しかし、軽量でカスタマイズの余地がある反面、さまざまな補助的機能もないため、自分でカスタマイズを行う必要がある点には注意が必要です。
Linuxディストリビューションとは?
Linuxは、オープンソースであることから多くの人が自分にあわせたカスタマイズを行っており、種類のことはディストリビューションと呼ばれています。
ディストリビューションには有償、無償を含む多くの種類があり、“Red Hat系”、“Debian系”、“Slackware系”の3つの主流グループに大別できます。
普通のPC、企業でのサーバーなどといった利用目的や、OSを選択できる契約サーバー会社といった条件から自分に合ったディストリビューションを選びましょう。
Red Hat系
商業、企業寄りのイメージが強いディストリビューションの系統です。
クラウド技術サービスを中心とした会社である“Red Hat”が提供している“Red Hat Enterprise Linux(RHEL)”は有償で企業向けに特化しており、もっとも商業的に成功しています。
Red Hat社のディストリビューションから派生したものは、その多くがRPM形式でパッケージ管理を行っています。
なお、Red Hat系ディストリビューションには、有償版だけでなく無償版もあります。
CentOSやFedoraがそれに当たり、CentOSはサーバーで活躍しています。
Debian系
ボランティアが中心になって開発を進めているディストリビューションの系統で、パッケージ管理が非常に優秀という特徴を持っています。
また、本家Debianの組織力はLinuxコミュニティの中でも屈指と言われています。
Debianの歴史は古く、そのため派生ディストリビューションも多く存在しています。
派生の1つである“Ubuntu”は大人気で、難しいイメージというイメージを払拭しました。
UbuntuはUIがWindowsに似ているため、普段Windowsを使用していてLinuxを始めてみるという人はDebian系がよいかもしれません。
逆に、RedHat系を使用していてDebian系にも手を伸ばそうという人は、設定ファイル場所や記述などが異なるため注意が必要です。
Slackware系
もっとも歴史があるSlackwareをベースとしたディストリビューションがSlackware系となります。
Linux普及初期からあるディストリビューションの系統で、玄人向けです。
最近ではRed Hat系、Debian系がメインとなっているため、種類も少ないです。
1番の特徴は“シンプル”という点で、パッケージ内容はインストール時に実行するスクリプト、ソースコード、解説ファイルのみとなっています。
公式に配布されている状態が1つの完成系となっており、ソフトウェアの追加導入や、それにともなうライブラリ管理はユーザーの操作・判断によるものとなります。
すでに実績があるソフトウェアのみを含んだリリースが行われるので、安定性、セキュリティ、速度も高いです。
自動化されていない面が多いものの、カスタマイズしていくという楽しみも味わえます。
代表的なLinuxディストリビューション
Red Hat Enterprise Linux(Redhat系)
前述のとおり、もっとも商業的に成功している有償・企業向け特化のディストリビューションで、業界のデファクトスタンダードです。
ライセンス料は主に技術的サポートやセキュリティーフィックスなどの対価となっており、開発会社としての責任が明確であるため、企業が安心して使用できます。
サポート期間は約10年と非常に長く、セキュリティに脆弱性が見つかった場合の対応も非常にすばやいです。
WEBサーバー会社を選択する際の判断材料として、「Red Hatを使っているサーバーである」という旨の表記があれば、信頼性に関して不足はないでしょう。
ちなみに、非常に高価という点からも会社の信頼性の目安として機能するかもしれません。
CentOS(Redhat系)
Red Hat Enterprise Linuxの有償部分などを除去し、リビルドすることで誕生したディストリビューションです。
特徴はほぼRed Hat Enterprise Linuxと変化がなく扱いやすいので、“商用で無料のOSを使いたい”、“デファクトスタンダードを知りたい”、“保守しやすい環境がほしい”といった目的の場合は候補に上がるでしょう。
セキュリティ面でのアップデートもRed Hat Enterprise Linuxと同様に安定して提供されていますが、あくまで追従する形なのでセキュリティーフィックスが若干遅れるなどのラグが発生する点には注意が必要です。
Debian(Debian系)
Debian系と名前のつくディストリビューションの本家であり、後述するUbuntuの元にもなっています。
組織的でありフリーでもあることが尊重されており、組織規模も最大級です。
歴史は非常に古く、ほぼ最古といえるSlackwareと肩をならべるほどの長さです。
日本国内ではサーバーとしてのシェアはRed Hat Enterprise Linuxほどではないですが、それでもメジャーといえるでしょう。
開発の方向性は保守的で、組織内でよく議論されたうえで開発がすすめられるので、安心して使用できます。
また、パッケージ管理ツールが非常に優秀で、個々のソフトウェアはコマンドで管理されています。
上級者向けのイメージがありますが、長い歴史により日本語の資料も豊富にあるため、解決策を探す際にも苦労することはないでしょう。
Ubuntu(Debian系)
Debianの開発版を元に開発された無償のディストリビューションで“他者への思いやり”がスローガンとなっています。
使いやすさが重要視されており、アプリケーションの観点では、システムツールに加えて写真編集ツール、インターネットブラウザ、メッセンジャーなどが標準で組み込まれています。
Windowsと遜色なく使用でき、デスクトップ用OSとしての利用者が多くシェアが非常に高いです。
日本語環境が充実している他、コミュニティのサポート体制もしっかりとしているので、Linuxをデスクトップとして使用してみたいという入門者ならば選択肢に入るでしょう。
CentOSなどと比べるとセキュリティ面でのアップデートが提供されるサポート期間(保証期間)が短いという点には気を付けておく必要があります。
Linux mint(Debian系)
Ubuntuから派生したディストリビューションで、デスクトップ用として有名です。
簡単に使えることが特徴で、インストールした時点ですぐに日本語入力ができる点は初心者にとって大きなメリットです。
Microsoft Officeに似た機能を持ったOfficeアプリケーションも付随しており、画像編集ソフトのGIMPなども使用できます。
独自のアプリケーションも存在しており、これをうまく活用すると、派生元のUbuntuより使いやすい面も現れます。
その他、日本語版のサイトがあるところも初心者にとって心強い部分です。
Linux用語
Linuxカーネル(カーネル)
Unix系OSであるLinuxのカーネルで、リーナス・トーバルズ氏によって開発が開始されました。
カーネルは、階層型に設計されたOSの中核となる部分で、アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋となります。
システムのリソースや、ハードウェアとソフトウェアコンポーネントのやりとりを管理します。
通常、この用語を使用する場合はリーナス氏が管理・公開している公式版(メインライン・カーネル)を指します。
LTS
LTSは“Long Term Support”の略、つまり長期サポートのことです。
長期サポートが行われているということは、同一のバージョンのままで長い期間安定したシステム運用が可能なので、単純な用語ながら非常に重要性が高く理解しておくべき用語です。
GRUB
GRUBは“GRand Unified Bootloader”の略で、コンピューターの起動時に最初に読み込まれ、ストレージなどからOSを読み込んで起動するブートローダの1つです。
GNUプロジェクトが開発・公開しているオープンソースソフトウェアで、よくLinuxと組み合わせて用いられます。
オープンソース
ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許可し、それを利用する個人および団体の行動や利益を遮らないソフトウェア開発の手法です。
オープンソースのソフトは無料のものが多く、無料でダウンロードできるフリーソフトと似た印象を受けるかもしれませんが、その定義を見ればわかるように本質的には異なる存在です。
オープンソース=無料のソフトということもなく、例えば前述のRed Hat Enterprise Linuxはオープンソースのディストリビューションですが有償となっています。
Linuxディストリビューション
前述した通り、Linuxにはさまざまな種類(配布形態)が存在しており、種類のことはディストリビューションと呼ばれています。
厳密には、ディストリビューションとはLinuxカーネルとその他ソフトウェア群を1つにまとめ、利用者が容易にインストール・利用できるようにしたものを指します。
パッケージ
Linuxが採用しているアプリケーションの配布形態で、動作に必要な各種プログラムやファイルをまとめたものです。
Windowsでは、アプリケーションは“インストーラー”という形態で配布されており、それのLinux版という認識で問題ありません。
パッケージはディストリビューションごとに形式が異なるので注意が必要です。
ディレクトリ
コンピューターのファイルシステムで、ファイルをグループ化するための特殊なファイルのことを指し、整理・管理などの目的で活用されます。
UNIXおよびLinuxでは、ディレクトリはファイルの一種として扱われており、“ディレクトリファイル”と表現されることもあるため、ディレクトリもファイルと同じように名前を付けて他のものと区別して扱います。
ひとまずは、Windowsでフォルダと呼ばれるものという認識で問題ありません。名前のルール(名前に利用できる文字、文字数の制限など)も普通のファイルと同じです。
シェル
シェルは、OSのユーザーのためにインターフェースを提供するソフトウェアで、カーネルのサービスへのアクセスを提供します。
Linuxにおいては、ユーザーの命令をOSへ伝達するプログラムであり、CUI環境ではインターフェースの役割を担います。
さまざまな種類があり、代表的なbashの他、sh、ksh、zsh、csh、tcshなどが存在します。
シェルを実行することでカーネルのさまざまな処理を行うことができます。
コマンド
Linuxのシェルでは、命令文をキーボードで入力します。
この命令文のことをコマンドと呼びます。
例として、“ls”というコマンドを実行すると、“ディレクトリ内部の情報を表示する”という動作が行われます。
なお、コマンドは規則通りであれば必ず実行されます。
そのため、うっかり削除関係のコマンドを入力してしまうと取り返しのつかないことになってしまうので、気を付けましょう。
オプション
オプションは、コマンドの動作条件などを指定するための文字列です。
Unixなどの多くのシステムでは“ -”を前置する慣習があります。
コマンド文においては、操作対象や処理内容の詳細を伝える部分を表します。
サービス
Linux起動時に自動的に起動し、実行されるプログラムのことです。
システム終了までバックグランドで動き続けるプログラムで、さまざまな機能を他のプログラムやユーザーに提供します。
サービスごとにさまざまな機能が提供されており、稼働中のサービスは特定のコマンドで確認できます。
ライブラリ
ライブラリは、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものです。
プログラムの作成時にその実行ファイル内に組み込まれた“静的ライブラリ”と、プログラムの実行時にロードされて複数のプログラム間で共有される“共有ライブラリ”の2種類があります。
使用頻度の高いLinuxコマンド
pwd
pwdは“print working directory”の略称で、現在自分が作業しているディレクトリを表示します。
cd
cdは“change directory”の略称で、現在自分が作業しているディレクトリを移動させます。
“cd (移動先のディレクトリ名)”の形で入力することにより、指定したディレクトリへ移動できます。
ls
lsはディレクトリの内容を確認するコマンドで“list segments”の略称です。
作業中のディレクトリの内容を表示してくれます。
また、オプションとして“ -a”を付け足すことで、隠しファイルを表示させることも可能です。
mkdir
mkdirは“make directory”の略称で、ディレクトリの作成時に使用します。
“mkdir (作成したいディレクトリ名)”の形で入力することにより、指定した名前のディレクトリを作成できます。
オプションを使うことで作成したディレクトリ名を表示することもできます。
cp
cpは“copy”の略称で、ファイルをある場所から別の場所へコピーするコマンドです。
“cp (コピーしたいファイル) (コピー先)”の形で記入することで実行できます。
また、コピー時の名前変更や、異なるファイルシステム間でのコピーも可能です。
mv
mvはファイルやディレクトリの移動、名前の変更を行うコマンドで、“move”の略称です。
“mv (移動させたいファイル) (移動先)”の形で移動を、“mv (名前を変更したいファイル) (変更後の名前)”の形で名前の変更を行えます。
rm
rmは“remove”の略称です。
指定したファイルを削除するコマンドで、“rm (削除したいファイル)”の形で入力することで使用できます。
削除した場合は復元が難しく、前述のとおりコマンドは規則通りであれば必ず実行されてしまうため、十分に注意したうえで使用しましょう。
cat
catは、主にファイルの中身を表示する際に使用するコマンドです。
コマンドの名称は“catenate”(=連結)の略称となっていますが、これは複数ファイルを指定することで、それぞれの内容をつなげて表示できることによります。
“cat (表示したいファイル)”と入力することで、動作を行えます。
“(表示したいファイル)”の部分を複数にすることで、ファイルの内容を連結し、結果を表示させることもできます。
おすすめのLinux学習サービス
ドットインストール(UNIXコマンド入門)
ドットインストールは、動画で学べるプログラミング学習サイトです。
プログラミングを学習したい人にとって定番サイトの1つであり、G-JOBのコラムでも何度か紹介しています。
アカウント登録なしで利用でき、無料会員用の動画は1レッスン2、3分ほどの内容で学習を進めることができます。
Linux自体のレッスンは用意されていませんが、“UNIXコマンド入門[一般ユーザー編]”を受講することで、コマンドに関する知識を学ぶことができます。
paizaラーニング
paizaラーニングは、動画を使ったオンラインのプログラミング入門学習コンテンツです。
1本約3分の動画とそれぞれのチャプターに対応した演習課題で効率よく学習できます。
本サイトには講座として“Linux入門編”が用意されており、利用形態やシステム構成、パッケージングシステム、シェルコマンド、ファイルシステムなどのLinuxに関する基礎知識を学べます。
手ごろな価格で授業形式の学習をしたいという目的であれば、かなりオススメできるサイトです。
エンジニアの入り口
“エンジニアの入り口”は、プログラミング入門やエンジニアリング入門の知識を掲載している初心者のための勉強サイトで、プログラミングやサーバー、ネットワークの基礎知識や勉強方法を習得できます。
前述した2つのサイトと異なり、レッスン方式で学ぶことはできませんが、基礎から体系的に学習していくことができます。
また、基礎知識や環境導入、基本操作、コマンドなど情報量が豊富なことに加えて、無料であるという点も大きなメリットです。
まとめ
Linuxは非常に便利なOSで、普段の仕事ではもちろんプライベートでも活用する機会があります。
また、種類や資料も豊富なので、自分に合った方法で知識を深めていくことができるでしょう。
Linuxを学ぶ必要がある人だけでなく、OSについて興味がある人、PCのカスタマイズをしてみたいという人にもオススメです。