【初心者向け】Linuxとは?ディストリビューションや仕組みを解説!

Linuxとは

「Linux(リナックス)って名前は聞くけど、実際に使ったことがない…」

そんなあなたもWebエンジニアを目指しているのであれば、Linuxを避けて通ることは絶対にできなくなります!

キツネ

僕の研修では初日からLinuxを教えてるくらいだからね!

よくわからないからといって後回しにせず、いまのうちにLinuxについてしっかり学んでおきましょう。

Linuxを理解することで、あなたが作りたいシステムを実現しやすくなるはずです。

Linux(リナックス)とは

Linuxとは

まず、注意してほしいのは、「Linux(リナックス)」には2つの意味があるということ。

  1. Linuxカーネル
  2. Linuxカーネルを使っているOS

まずはこの2つが何を指しているのか、確認していきましょう!

Linuxカーネルとは

Linuxカーネル

まず1つ目のLinuxの意味ですが、それは「Linuxカーネル」です。

Linuxカーネルとは、OSに必要な基本機能を集めた核(コア)となるソフトウェアのこと。

このLinuxカーネルのことを単に「Linux」とよぶことがあります。

そして、このLinuxカーネルは、リーナス・トーバルズさんが「UNIX」というOSを参考にして作った(UNIXライクな)ソフトウェアでもあります。

キツネ

参考にしたってことは、LinuxはUNIXに似ているってことだね!

ちなみにリーナスさんは、このLinuxカーネルのプログラムを管理するために、「Git」というバージョン管理システムを作ったことでも有名です。

Linuxカーネルを使っているOSとは

Linuxカーネルを使っているOS

Linuxという用語は、Linuxカーネル以外にもう1つ意味をもっています。

むしろ、こちらの意味で使われることのほうが圧倒的に多いかもしれません。

その意味とは、「Linuxカーネルを使っているOS(オペレーティングシステム)」のことなんです。

OSとは、コンピュータを管理したり操作したりするソフトウェアのことで、以下のような種類があります。

  • Windows
  • macOS
  • iOS
  • Android
  • UNIX

ここでいうLinuxも、WindowsやmacOSと同じ「OSの仲間」ってことですね。

キツネ

Linuxって聞くと、多くの人はこのOSとしてのLinuxを思い浮かべるんじゃないかな。

Linuxのディストリビューションとは

Linuxディストリビューション

プログラミングの勉強をしていると、たまに「Ubuntu(ウブントゥ)」や「CeontOS(セントオーエス)」などの用語を見かけることがあるかもしれません。

実は、このUbuntuやCentOSの正体は、さきほどのLinuxカーネルを使って作られたOSなんです。つまり、これらも「Linux」の定義に含まれます。

簡単にいうと、色々なソフトウェアをLinuxカーネルにくっつけて、新たなOSを作ったってこと。

また、このようなOSを「Linuxのディストリビューション」とよび、非常にたくさんの種類があります。

すべて覚える必要はまったくありませんが、上の2つは有名なので覚えておいたほうがいいでしょう。

用語がたくさん出てきてややこしいので、使い分けられるようにまとめますね。

  • 「Linux」…LinuxカーネルやLinuxのディストリビューションを指す
  • 「Linuxカーネル」…Linuxのコアとなる機能が集まったソフトウェア
  • 「Linuxのディストリビューション」…Linuxカーネルで作られたOSの総称

キツネ

ちなみに、macOSはUnixのディストリビューションだよ!

Linuxカーネルとシェルの関係

Linuxカーネルとシェルの関係

Linuxカーネルは、「OSとしての基本機能を集めたコアとなるソフトウェア」でしたね。

機能自体は、すべてカーネルが持っているのですが、カーネルの機能を僕たちユーザが使うには「シェル(shell)」と呼ばれるソフトウェアを使う必要があります。

  • 「カーネル」…Linuxの機能の核(機能を提供するソフトウェア)
  • 「シェル」…カーネルを覆っている殻(インターフェースを提供するソフトウェア)

シェルを日本語にすると「殻(から)」ですよね。

そう、シェルは核(カーネル)を覆っている殻のようなものなんです。

このシェルを操作することで、シェルの中にあるカーネルに指示を出していきます。

また、カーネルを操作するシェルにもいくつかの種類があります。

  • sh
  • bash
  • zsh

ほかにも色々ありますが、よく使われるのは「bash(バッシュ)」です。

最近のLinuxでは、このbashがデフォルトのシェルとして設定されているので、bashが使えるようになればLinuxの操作で困ることはないでしょう。

キツネ

もちろん、あとからシェルを変更することもできるよ!

「でも、Linuxを触っていてbashなんて意識したことないけどな…」

そんな方もいるかもしれませんね。でも、Linuxにログインして黒い画面を操作していませんか?

そのインターフェースこそがシェルなんです。

キツネ

Linuxを操作できるのはシェルがあるからなんだと覚えておこう!

Linuxの特徴

LinuxはCUI(キャラクタユーザインターフェイス)

CUIとは

Linuxはシェルを使うことで操作できます。

このシェルは「CUI(キャラクタユーザインターフェイス)」で操作することが特徴です。

だいたいの方は、WindowsやmacOSのような「GUI(グラフィカルユーザインタフェース)」しか使ったことがないと思います。

  • 「GUI」…画面上で視覚的に操作できる直感的なインターフェース
  • 「CUI」…キーボードで入力される文字だけで操作するインターフェース

GUIは、WindowsやMacのようなグラフィカルな画面をマウスなどで操作できるインターフェース。これらのOSを普通に使ってる分にはGUI操作になりますね。

CUIは、Windowsの「コマンドプロンプト」やMacの「ターミナル」のような、文字だけでやりとりするインターフェースのことです。意識しないとあまり使わないかもしれません。

ですが、LinuxはこのCUI操作が基本になります。GUIに慣れてしまっている方は、少し苦手意識を持ってしまうかもしれません。

ただ、これも慣れなので、使っていれば「CUI便利じゃん!」となるので安心してください。

また、LinuxはCUIなのでグラフィカルなツールは使えません。

たとえば、Linuxの中でプログラミングをする場合、テキストエディタもCUI対応のものしか使えないということになります。

キツネ

CUI対応のエディタっていえば、EmacsやVimが有名だね!

ちなみに、あとからLinuxにGUIを導入することもできますが、実際の業務でGUIが使われることはほとんどありません。

キツネ

プログラマーなら必ずCUIに慣れておこう!

LinuxはOSS(オープンソースソフトウェア)

Linuxは、「OSS(オープンソースソフトウェア)」です。

OSS(オープンソースソフトウェア)とは、ソースコードを無償で公開し、誰でも自由に改良・再配布ができるようにしたソフトウェアのことです。

Linuxがここまで世に普及した理由として、無償で利用でき、改変できるOSSだったからこそといわれています。

様々なディストリビューションが存在するのも、このOSSの影響ですね。

LinuxはWebシステムのデファクトスタンダード

いまやLinuxは、Webシステムで使われるOSとして、デファクトスタンダード(事実上の標準)になりました。

Windowsと違ってLinuxは無償で使えるため、企業がシステムを導入する際のコストダウンに直結したのです。

キツネ

Windowsの場合、マシンを増やすたびにお金がかかっちゃうからね!

ちなみに、これからLinuxを使い始めるなら「CentOS(セントオーエス」)をおすすめします。

無償で使えるのはもちろん、実際の業務で使われることが多いので勉強にも最適だからです。

まとめ

  • Linuxとは「Linuxカーネル」と「カーネルを使っているOS」の2つの意味がある
  • Linuxカーネルを使って作られたOSを「ディストリビューション」とよぶ
  • Linuxカーネルは、シェル(主にbash)によって「CUI」操作される
  • Linuxは「OSS」で、無料で使えて改良や再配布できるから広まった
  • 勉強で使うLinuxは「CentOS」がおすすめ

正直、Linuxは実際に使ってみないと理解が進まない部分が多いです。

キツネ

「習うより慣れろ!」だね!

ただ、その前にLinuxのディレクトリ構造についても確認しておきましょう。

Linuxを扱うための前提知識として、どうしても必要になってくるからです。

テキストのコピーはできません。