Linuxの特徴
Linuxはサーバーとしての利用用途に最適です。
Linuxの意味
LinuxというのはOSのカーネルの名前です。カーネルというのはOSの機能の中核という意味です。ディスプレイ、通信デバイス、ハードディスク、マウスなどの入出力を制御したりします。CPUへの命令や仮想メモリ管理などのもLinuxカーネルの役割です。
Linuxカーネルの上に、これを使いやすくしたLinuxディストリビューションが構成されます。
Linuxディストリビューションの種類
これには、Ubuntu、CentOS、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などのプログラムを書くのが、作業の自動化・効率化としては、本筋だと思います。ただ、データのテキスト化(データベースに格納できるようにもする)は、設計センスや技術力がいりますけれどね。