Linuxサーバー管理入門

Linuxの特徴

Linuxはサーバーとしての利用用途に最適です。

Linuxの意味

LinuxというのはOSのカーネルの名前です。カーネルというのはOSの機能の中核という意味です。ディスプレイ、通信デバイス、ハードディスク、マウスなどの入出力を制御したりします。CPUへの命令や仮想メモリ管理などのもLinuxカーネルの役割です。

Linuxカーネルの上に、これを使いやすくしたLinuxディストリビューションが構成されます。

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

これには、UbuntuCentOS、Debian、openSUSE, Redhat Linuxなどがあります。

サーバーの種類

サーバーには、Webサーバー、アプリケーションサーバー、データベースサーバーなどの種類があります。どのような名前のサーバーで呼ばれるかというのは、サーバーで起動しているサーバーアプリケーションの種類によります。たとえば、ApacheやNgixなどのWebサーバーが起動していれば、Webサーバーと呼ばれ、Perlがアプリケーションサーバーとして立ち上がっていれば、アプリケーションサーバーと呼ばれ、MariaDBなどのデータベースサーバーが起動していれば、データベースサーバーと呼ばれます。

Linuxはオープンソースで無償で使える

ありがたいことにLinuxは、オープンソースで無償で使えます。リーナスさんという個人の方が、Linuxを作った人です。Gitを作った人でもあります。2020年現在は、リーナスさんが、Linuxプロジェクトのリーダーで、チームで開発されています。特定の企業が作ったオープンソースではないというのも、特徴です。

Linuxがサーバーに向いている理由

Linuxがサーバーに向いている理由をいくつか書きます。

コマンドを使ったテキスト通信

まずLinuxは、コマンドを使った、テキスト通信が前提だということです。かつてはTelnet、今はSSHで接続するのが主流です。SSHクライアントから接続されて、コマンドを受け取って、プログラミングを実行します。

テキストデータというのは、読みやすく、OS間でポータブルで、ネットワークバイトオーダーにも依存しません。ですので、リモート通信において、命令を送るデファクトスタンダードは、テキストデータです。

GUIは、そのー、まぁ、おまけです。GUIも、リモート接続を前提に作られています。Windowsのリモートデスクトップがデフォルトのようなイメージですね。

でも、Linuxサーバー管理者は、テキストコマンドを使って作業することが、ほとんどでしょう。

GUIを入れるとサーバーのディスク容量もメモリ使用量も増えます。サーバー用途では、コマンドを送ることができれば、機能としては、十分なのですね。

サーバーのための無償で使えるソフトウェアが豊富

LinuxとUnixでは、どれでも、だいたいコマンドが共通して使えます。実は、Linuxのコマンドのように考えている物は、GNUプロジェクトと呼ばれるLinuxとは、別のオープンソースのチームが開発したものがたくさんあります。便宜的にLinuxコマンドと呼びますが、実は、LinuxとGNUプロジェクトが作ったコマンドは、別のものです。

LinuxやUnixの上に、共通で使えるGNUプロジェクトが作ったコマンドがあります。もちろん、別のオープンソース作者やチームが作った、Linux/Unix共通で使える、ソフトウェアもたくさんあります。

インストールも簡単で、Ubuntuではapt、CentOSではyumなどインストールコマンドを実行するだけでできます。

改行がLF

改行がLFです。これは、地味ですが、Linux/Unixの良い特徴です。

テキストがベースなので自動化がやりやすい

テキストがベースなので自動化がやりやすいです。要するに、作業の自動化・効率化とは、データのテキスト化であるということを理解している方であれば、すぐにピンとくるでしょう。

GUIは、自動化には、向いていないのです。GUIを無理に自動化したとしても、仕事の変化への対応は大変ですし、パソコンを立ち上げないといけませんし、そのPCで動かさないといけませんし、見張り番も必要でしょう。

データをテキスト化して、Linxuサーバー上で、Perlなどのプログラムを書くのが、作業の自動化・効率化としては、本筋だと思います。ただ、データのテキスト化(データベースに格納できるようにもする)は、設計センスや技術力がいりますけれどね。