なぜITシステムで、Linuxを多く使っているのか?
ITエンジニアをやっていて、或いはITエンジニアを目指す勉強をしていて、黒い画面に白い英数記号だけが表示される、キーボードだけで操作しなければならないマウスが使えない、そんなめんどくさい画面に結構頻繁に遭遇する。
この画面いっぱいの黒い背景と、英数記号(一部例外あり)だけで表示される白い文字列の正体は、多くの場合、俗にLinuxと言われるOS(Operating System)の操作画面で、サーバー、ネットワーク、ソフト開発といった様々なジャンルのITエンジニアにとって、避けて通れない存在となっている。
なんで文字だけなのか?なんでマウスで操作できないのか?なんでこんなOSを使わなければならないのか?なんでこんなOSが増えているのか?
理由がわからないと、もやもやしてストレスの原因にもなるので、今回は「なぜ」Linuxがこんなに増殖したかについて,、独断と偏見に基づいて、わかりやすい(と思われる)理由を4つほどひねり出して、ざっくり解説していく。
1.そもそもLinuxって?
2024年時点のITシステムにおいて、サービスを提供するサーバーをコントロールするOSでは、Linuxというものが多く利用されている。
「Linux」という名称は、一般的なOSやソフトウェア製品と異なる特徴があり、まずは簡単に説明しておく。
「Linux」というものは、狭義では「OSを動かすための心臓部」となるソフトウェア(コード群)を指し、これを「Kernel(カーネル)」と呼称する。
「Kernel」は、コンピューターの内部機器(デバイス)を動かすことに特化しており、ユーザーへの入出力機能や、一般的なアプリケーション、運用管理のツールを持っていない。
この「Kernel」に様々なアプリケーション、ユーティリティ、インストーラー等を組み合わせて、ユーザー(人間)が使いやすいパッケージとして提供される形態を「Distribution(ディストリビューション)」といい、広義で一般的に呼称される「Linux」はこちらを指す場合が多い。
(この記事シリーズでは、特に断りがない場合「Linux」は広義の「Distribution」を指す。)
「Distribution」は、用途に合わせて誰でも作成することができるので、2023年現在有償無償合わせ無数の「Distribution」が存在する。
2.Linuxの特徴
・複数ユーザーが同時に接続して処理を行える
Linuxはその用途に適した、様々な特徴的な機能がある。
Linuxは主に「サーバー」という、多数のユーザーからの同時要求を処理する仕組みで使用されている。
例えば身近なところで、メールサーバーの場合ユーザーがメールの確認を行う時、必ずメールサーバーのOSにログインして、ユーザーのメールディレクトリを確認する。
この動作を何万人というユーザーが、同時にかつランダムに実行し、メールサーバーその複数ユーザーからの要求を的確に処理する。
このような特徴から、企業の基幹システムやWebアプリケーション等の特定/不特定の多数ユーザーリクエストを処理する必要があるサーバーで主に利用されている。
ライバルメーカーのOSもサーバーOSを名乗っているので、当然多数ユーザーの同時接続処理を行えるが、初期のころはその処理が不安定で評判も芳しくなかった。最近でこそ処理性能的には問題は無くなったが、他の要因(高リソース、複雑なシステム)で不利な評価をされることがあり、Linux優位な市場となっている。
・コマンドラインなので、少ないリソースで動作できる
多くの人が「Linux」と聞いて思い浮かべるのは、黒い画面にアルファベットが羅列されている画像だろう。
この黒い画面にアルファベットが羅列されている画像は、Command Line Interface(CLI)と呼ばれ、キーボードのみで様々な処理を実行できる、慣れれば操作性が飛躍的に向上する仕組みとなっている。
(その代わり英語オンリーで、Commandも複雑なので習熟コストは高い)
黒い画面と文字だけなので、グラフィックメモリ容量は最低でも十分機能する。画面処理(画面の書き換え等)でもCPUやメモリーは最低限しか使用されず、搭載したCPUやメモリーの多くの容量をサービスの処理に充てることができる。
またこの軽量さゆえに、クラウド環境でのインスタンスとしても、特殊な用途以外では積極的に選択され、シェア拡大の一因となっている。
ちなみに日本国内の技術参考書等では、「CUI(Character User Interface)」という「GUI(Graphical User Interface)」と対となるような名称での記載が散見されるが、「CUI」は主に日本で呼称され始めている用語で、欧米圏では「CLI」呼称が大勢を占めている。
・対応プラットフォームが豊富
Linuxは様々な機械(CPU)で動作することができる。
メジャーなところでは、Intel(互換)CPUやスマートフォンのAndroid、シングルボードコンピューターのRaspberry Pi等があり、その他にもIBMのビジネス系CPUであるPowerシリーズや、世界各国のスーパーコンピューター、ARMをはじめとする各種組込マイコンの多くでもLinuxシステムが稼働している。
例えばDELLのネットワークスイッチに搭載されているOS10は、Debianをベースとしているし、車載コンピューターも最近ではLinuxベースが増えてきている。
Linux kernelがオープンライセンスで登録され、誰でもソースコードを読み解き改変することができ、需要のある分野への移植が容易に可能であることから、これだけ多くのプラットフォームでの利用につながっている。
全く異なるプラットフォームで、同じOS(正確には異なるが)が動作するというのは、アプリケーションの移植が異なるOS間で行っていた時よりも、はるかに容易に行えるという事であり、さらにシステムの「運用」を共通化することにもつながり、企業にとって様々なコストを抑えること、新しいビジネス創出を容易に行えることなどの直接的なメリットとなっている。
・コストを抑えることができる
前の項でも触れているが、Linux kernelはオープンライセンスで登録され、ソースコードが公開されている。
オープンライセンスでは、ソースコードの公開だけでなくコードの改変や、改変したコードの再頒布も元コードの著作権情報を併記することで許諾されているため、誰でも自由に改造し自分で価格を設定して配布することができる。
そのため、より多くの人に利用してもらおうと、開発者たちは無料でDistributionを配布するようになり、Linux=無料という図式が出来上がった。
この図式は2024年時点でも成立しており、多くのサーバーでCentOSやDebian、Ubuntuといった無償Distributionが稼働している。
大企業やミッションクリティカルシステムで使用されるような、特別な機能やメーカーサポートのついた有償のDistributionも存在しているが、これらもライバルOS製品より明確なコストメリットが存在する。
このLinux(厳密にはLinuxだけではないが)の最大のコストメリットが、「クライアントの接続ライセンス(CAL)」が不要である点となる。
ここ最近の流行であるCloudインスタンス上では、原則CALは不要となっているが、オンプレミスのサーバー上で稼働するライバルOSでは、物理、仮想関係なくその(IIS以外の)サーバーにアクセスする全てのユーザー、或いはデバイス分のCALが必要となる。
CALは、ファイルサーバー、メールサーバー、Active Directory、ADサーバーに同居させない場合はDNSサーバー、DHCPサーバー等々、全てのサーバーにおいて、接続することが可能なユーザー、或いはデバイス分のライセンスを用意しなければならない。
これに対してLinuxは、開発のきっかけとなったUNIXというOSが、元々1台のサーバーを大勢のユーザーが共有して利用するという仕組みであったため、Linuxでもサーバーに対するアクセスは無制限であり、追加ライセンス費が発生することが無い。
この辺り細かいところだが、経営層や運用現場としては非常に大きなコストとなるので、特に大勢が使用する用途のサーバーにはLinuxが選定されることに繋がっている。
3.まとめ
細かく見ればもっといろいろな要因があるが、とりあえずここまでで述べた
・多数ユーザーの同時接続処理を行える
・コマンドラインなので、少ないリソースで動作できる
・対応プラットフォームが豊富
・コストを抑えることができる
という4つが、ここまでLinuxが普及した大きな要因となる。
ライバルメーカーのOSと比べて語られることが多いが、Linuxはその開発経緯からもわかる通り、UNIXという歴史あるOSをIntelアーキテクチャで再現したOSであり、多くの人がサーバーの外部から接続して利用することを前提として作られている。
インターネットが普及し様々な人、物、事がつながる今の世の中、このようなLinuxが普及してゆくのは必然であり、ITインフラやソフト開発エンジニアは、黒い背景と白いアルファベットの羅列から逃げることはできないと覚悟完了するしかない。