- UNIXとは
- Linuxとは
- UNIXとLinuxの違い
- UNIX系OSとWindows系OSの違い
- UNIX系・Windows系OSそれぞれのメリットとデメリット
- UNIXに関するよくある質問
- まとめ
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
UNIXとは
まずUNIXの成り立ちや背景、特徴について解説します。UNIXの設計や思想は多くのOSにも受け継がれています。そのため、UNIXの成り立ちや背景、特徴を知ることは、ひいてはOSの歴史や仕組みを理解することにもつながります。
UNIXの概要
UNIXとは、多くのコンピューターで利用されているOS(オペレーティングシステム)の1種です。OSとは、ユーザーとハードウェアやソフトウェアを仲介する役割をもつ基本ソフトで、あらゆるコンピューターに入って動作しています。UNIXは、現存する中で最も古いOSであり、また多くの派生OSが存在します。
派生OSは「UNIX系OS」と呼ばれ、多くの種類が存在します。例えば、MacOSやLinuxもUNIX系OSの1つです。
UNIXは非常にシンプルな構成で安定しており、世界中の多くのシステムで採用されています。
UNIXの成り立ち
UNIXは、ケン・トンプソン、デニス・リッチーらによって、1969年にAT&Tベル研究所で誕生しました。UNIXが開発された目的は、ミニコンへの搭載です。1960年代からミニコン(特定の業務領域に特化した小型コンピュータ)が普及し始めたものの、大型の汎用コンピュータ向けOSを搭載することはできないため、よりシンプルでサイズの小さいOSが望まれていました。こうした背景から、UNIXは汎用コンピュータ向けOSから機能をそぎ落としつつ、開発されたのです。
1973年には、カーネルをC言語で記述しなおしたUNIXが登場します。カーネルとはOSの核であり、主にハードウェアに対する制御プログラムが集約されている部分です。開発当初、UNIXのカーネルはアセンブラで記述されていましたが、移植性を高めるためにC言語で書き直されたようです。
C言語によって移植性と汎用性を高められたUNIXは、1974年に教育・研究機関を対象としてソースコードの公開が進められます。
C言語でリファインされたあとのUNIXは、安定性と汎用性の高さが評価され、サーバーOSの定番として知られるようになりました。また、UNIX系OSと呼ばれる派生OS・互換OSが登場したことでUNIXの地位は不動のものとなり、特にWebサーバー向けのOSは、大半がUNIX系OSで占められているのが現状です。
UNIXの特徴
UNIXは、シンプルな構造で優れた特徴をもっています。ここでは、UNIXの特徴を整理しておきましょう。
コマンドラインインターフェース(CLI)
UNIXでは文字列による操作を基本とするUI(コマンドラインインターフェース、以下CLI)が採用されています。WindowsやMacOSなどで採用されているGUI(グラフィカルユーザーインターフェース)に比べると、画面全体が黒く文字だけが強調されるCLIは、使いにくいと感じることがあるでしょう。すべての操作にコマンドを要することから、コマンドを覚える必要もあります。
しかし、ある程度の知識を身に着けて操作に慣れてくると、CLIは非常に効率が良い仕組みだと気づくでしょう。ドラッグアンドドロップやファイルの検索などは、CLIによるコマンド操作のほうが圧倒的に速いからです。
また、GUIは描画のために一定のコンピュータリソースを必要とします。一方、CLIには描画性能がほとんど求められないため、より小さなリソースでコンピュータを操作することができます。サーバーではWebサーバーやメールサーバーなどサービスにリソースを多く使うため、OSを小さなリソースで動かすことができるのは大きなメリットです。
さらに、シェルスクリプトによる処理の自動化も容易なため、実際の運用や開発では今でもCLIを使用することが多いのです。シェルスクリプトとはコマンドを羅列すれば自動的に実行するプログラムのことです。GUIによる操作と比較して自動化が簡単にできるため、主にサーバーの運用・保守やバッチ処理等で使われます。
派生OS・互換OSの存在
UNIXには、多数の派生OS・互換OSが存在します。こうしたOSはUNIXに機能を付与したり、使いやすくカスタマイズが施されていたりするため、現在でもサーバーOSとして活用されています。派生OSや互換OSの数という意味では、UNIXの右に出るOSは存在しないと言っても良いでしょう。ここでは代表的な派生OS・互換OSを紹介します。
『BSD(Berkeley Software Distribution)』
BSDは、米国カリフォルニア大学バークレー校の開発者グループが開発しているUNIX系OSです。UNIX Version7から発生しました。厳密に言えばBSDはOSの名称というよりも「ソフトウェア群」の名称です。BSDから派生したOSとしてはFreeBSDが有名で、TCP/IPをサポートし、インターネットへの対応が進められたOSでした。そのため、ネットワークインフラやサーバーなどで利用されています。
『SunOS』
SunOSは、サンマイクロシステムズ社がBSDをベースに開発したUNIX系OSです。SunOS5.0移行は「Solaris」という名称に変更されました。
『Solaris』
Solarisはサンマイクロシステムズが開発したSunOSをベースに作られ、現在はオラクル社が所有しています。UNIXは学術・研究機関を対象にして開発されたOSですが、Solarisはビジネスユースを前提として開発が進められました。具体的には、信頼性や安定性を向上させる機能や、日々の運用に役立つ機能などが付与されています。
特に現在では当たり前になった「マルチコア・マルチスレッド対応」をUNIX系OSでいち早く取り入れたことは、注目に値する事実です。マルチコア・マルチスレッドに対応したことで、マルチコアCPUの持つ性能を存分に引き出し、複数のタスクを高速に処理できるようになりました。
また、信頼性や安定性が向上している点から、エンタープライズレベルのサーバーやビジネスアプリケーションなどで用いられています。
『Linux』
Linuxは「UNIX系OS」として語られることもありますが、厳密に言えば「UNIXを参考にしながらゼロベースで開発されたOS」です。互換性はあるものの、全く別のOSであることを覚えておきましょう。
マルチタスク・マルチユーザーに対応
UNIXは、マルチタスク・マルチユーザーに対応したOSです。マルチタスクとは「複数の処理を1台のコンピュータで同時に実行すること」、マルチユーザーは「複数の人間が1台のコンピュータを同時に使用できること」を指します。
UNIXが開発された1960〜70年代は、コンピュータが非常に高価だった時代でした。1台あたり数千万円という価格であったため、できるだけコンピュータを効率よく使いまわすためにマルチタスク・マルチユーザーが実装されたと言われています。ちなみに現在、一般的なPCやスマートフォンにインストールされているOSは「シングルユーザー・マルチタスク」であることが大半です。
高い安定性
UNIXは構造がシンプルで、なおかつ軽量なCLI操作を基本とすることから、サーバーOSとして高い安定性を誇ります。サーバーは一般のPC向けよりも稼働時間が長く、システム内における重要度も高いため、安定性が最優先とされることが多いでしょう。
特定のハードウェアに依存しない
C言語で書き換えられる前のUNIXは、カーネルがアセンブラで記述されていたため、特定のコンピュータ以外では動作しない(=機種依存性が高い)OSでした。しかしカーネルを高級言語(C言語)で書き換えたことで機種依存性が低くなり、これを機に本格的な普及が始まったと言われています。
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
Linuxとは
次に、UNIXとよく似たOSであるLinuxについて解説します。UNIX系OSの中でも最も普及しているOSであり、世界中のサーバーOSで最も高いシェアを誇っています。Linuxも多くの種類が存在するので、それらも含めて理解しましょう。
Linuxの概要
Linuxは1991年にリーナス・トーバルズ氏によって開発されたオープンソースのOSです。
Linuxは、UNIXとの互換性を維持しつつゼロベースで開発された「Linuxカーネル」を持つOSです。ちなみに狭義のLinuxは「Linuxカーネル」そのものを指し、これにGNU(UNIXと互換性を持つソフトウェア群)による機能が組み合わされたものをLinuxディストリビューションと呼びます。Linuxは利用目的に応じてさまざまなディストリビューションが存在します。
Linuxの特徴
Linuxは、UNIXと同様に「コマンドラインインターフェース」「マルチユーザー・マルチタスク」「サーバーOSに適した安定性の高さ」といった特徴を持っています。また、機能拡張や更新が頻繁で、派生OSが豊富であることも見逃せません。
これはLinuxがオープンソースであることに由来しています。UNIXと異なりLinuxは、ソースコードが無償で公開されています。これにより多くの開発者によってLinuxカーネルを用いてさまざまなOSが生まれ、コミュニティの中で熟成されていきました。現在ではサーバー用途のみならず個人向けのPC用OSとしても活用されています。ちなみに主な派生OSとしては、次のようなものが挙げられます。
RedHat系OS
RedHat系OSとは、その名の通りRedHat社が開発している有償の派生OSです。エンタープライズアプリケーションでの利用を目的として開発されており、ミッションクリティカルなシステムで使われています。有償ライセンスのため、サポートも行われており、企業システムなどで採用されることが多いです。代表的なRedHat系OSは「Red Hat Enterprise Linux (RHEL)」「Cent OS」があります。
『Red Hat Enterprise Linux (RHEL)』
RedHat社が開発する代表的なRedHat系OSです。長期間のサポートサイクルと、厳格なテストプロセスを経て、高い安定性と信頼性を誇ります。また、広範囲のハードウェアとソフトウェアをサポートし、多様なアプリケーションやサービスで利用できます。パッケージ管理システムとしてrpmを採用しています。
『Cent OS(Cent OS Stream)』
Cent OSは商用版Linuxの代表格「Red Hat Enterprise Linux (RHEL)」のクローンでありながら、無償利用が可能なOSとして人気を集めています。ビジネスユースを想定していることから安定性が高く、機能も豊富です。ちなみに、Cent OSは今後「Cent OS Stream」としてRHELへの統合がアナウンスされています。
Debian系OS
Debian系OSとは、Debianプロジェクトによって有志に開発されている派生OSです。RedHat系OSより歴史が長く無償で提供されています。一方でRedhat系OSのような企業によるサポートはありませんので個人利用向けと言えます。ここからはDebian系OSで最も有名なUbuntuをご紹介します。
『Ubuntu』
UbuntuはDebian系OSで、一般のPCで利用することを想定して作られました。2004年に公開されたUbuntuは、2005年10月の「Ubuntu Japanease Team」発足を経て日本語化が進み、近年は日本国内でも急速に知名度が向上しています。視覚的・直感的に認識しやすいGUIを備え、無償OSでありながらWindowsやMacOSと同じような操作感を得られる点が評価されています。
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
UNIXとLinuxの違い
では、UNIXとLinuxの違いについて整理していきましょう。前述したようにUNIXとLinuxは全く別系統のOSです。しかしこれは、開発の時系列が繋がっていないというだけで、実際には非常によく似ているのです。
例えばOSの核である「カーネル」がメモリ管理・プロセス管理・I/O管理といった機能を提供するという点は、UNIXもLinuxも同じです。さらにカーネルとの対話(コマンド操作)を「シェル」と呼ばれるソフトウェアを介して行う点も共通しています。加えて、主要なコマンドの多くが共通しているため、一般的なコマンドライン操作を行う上での操作感に大きな差はありません。このようにUNIXとLinuxは、設計や機能などの点で明確に違いを述べることが難しいのです。
ただし、実際の使用を想定した場合には、いくつかの相違点が浮かび上がってきます。それは、次のようなものです。
想定環境の違い
UNIXは、特定領域に特化した小型コンピュータでの利用を想定し、開発されました。また、学術機関や研究機関を対象として公開されており、当初はビジネスユースを想定していなかったと考えられます。
これに対してLinuxはビジネスユースを想定して開発されているため、想定環境の面で違いがあると言えるのです。
ただし、両者ともに複数の派生OSが登場しているため、派生OS同士を比較すると想定環境の違いはわかりにくいかもしれません。なぜなら、UNIX系OSの中にもビジネスユースを想定したOSが存在し、現在はUNIXもLinuxも商用利用が進んでいるからです。
ライセンスの違い
UNIXとLinuxの明確な違いのひとつが「ライセンスに対する考え方」です。UNIXは、2005年にSolarisが無償化されたことから、「無償利用が可能なOSである」と認識されることがあります。しかしこれは誤りで、原則としてUNIXは「ソフトウェアライセンス(使用許諾)が必要な有償OS」です。
UNIXのライセンスはAT&T社が保有しており、UNIXに関する開発はライセンス許諾を受けた企業が行っています。これに対してLinuxは、原則として「ライセンスフリー」です。OS本体(Linuxカーネル)は誰もが自由に入手でき、ライセンス料も発生しません。そのため、UNIXとは異なりLinuxは多くの開発者に使われ、世界中で広まりました。
このように、「UNIXのライセンスは特定の企業が保有している」、「Linuxはライセンスフリーである」という違いがあるわけです。
ただし、一部の商用版Linuxではサポートやアップデートの利用権料が発生します。つまり、「ソースコードの利用料は無償であっても、アップデートやサポートを受ける権利は有償」というスタンスです。
ファイルシステムの違い
ファイルシステムとは、データが格納されている場所を管理する仕組みを指します。ファイルシステムには複数の種類があり、「ファイル名の長さ」「格納できるファイルの数」「最大サイズ」「権限など属性情報を格納できるか」という点で違いがあります。つまり、どのファイルシステムを使用するかで、使い勝手に差が出るわけです。
UNIXとLinuxでは、使用されるファイルシステムに違いがあります。以下は、それぞれで使用されているファイルシステムの一例です。
UNIXで使用されるファイルシステムの代表例
『FFFS』
「Fat Fast File System」の略称で近年のUNIX のベースとなっています。UFS(Unix File System)を改良して開発されたものであり、パフォーマンス向上を目的として設計されています。主にBSD系のUNIXシステムで用いられています。
『ZFS』
Solaris10で採用されたファイルシステムです。FreeBSDやLinuxでも利用できます。エクサバイトレベルのファイルを扱えるほか、チェックサムによる訂正機能、RAID機能などもサポートしています。高いデータ保護を誇り、大規模なストレージシステムでも使われています。
Linuxで使用されるファイルシステム
『ext4』
旧バージョン(ext3)との互換性を維持しつつ、ファイルサイズや最大ボリュームの拡張、読み書きの高速化などが施されています。
デフォルトシェルの違い
UNIXとLinuxの共通点として「シェル」の存在が挙げられます。シェルはカーネルとの対話を可能にするソフトウェアで、人間とカーネルとをつなぐ「窓口」としての機能を提供します。人間が入力したコマンドは、シェルを介してカーネルに伝えられ、カーネルはコマンドに応じたプログラムを呼び出して実行しているのです。
このシェルにも複数の種類があり、UNIXとLinuxで使われるシェルに違いがあります。
UNIXでよく使われるシェル
『Bsh(Bourne Shell:ボーンシェル)』
BshはAT&Tベル研究所によって開発されたシェルです。長年UNIXに携わっている人材であれば「シェル=Bsh」というイメージを持つことが多いでしょう。ほとんどのUNIX系OSで利用できます。また、Bshをベースに多数の派生シェルが生まれています。
『ksh』
Bshを基にAT&Tベル研究所によって開発されたシェルで、開発者David Korn氏の名前から、Korn Shell(ksh)と呼ばれています。シェルスクリプトの生産性向上を目的とした機能が実装されています。主にSolarisのほか、IBM社のUNIX「AIX」等で使用されています。
『csh』
Bshをベースに、C言語に似たスクリプト構文を持たせたシェルが「csh」です。UNIXがC言語で開発されていることもあり、C言語に慣れた開発者にとって扱いやすく、プログラミングのようにシェルスクリプトを作成できます。BSD系OSや、一部のUNIX系OSで使用されています。
『tcsh』
さらにcshを元に、UIのブラッシュアップしたシェルが「tcsh」です。FreeBSDに標準搭載されたことで普及しました。コマンドライン編集やスペルチェック、コマンド補完機能などが追加されています。
Linuxでよく使われるシェル
『bash』
RedHat系のLinuxに標準で搭載されているシェルです。GNUプロジェクトの一部で、オープンソースソフトウェアとして公開されています。オプションや変数が豊富で、柔軟なカスタマイズが可能なシェルです。また、シェルプログラミング環境も手厚くサポートされています。ただし、機能の豊富ゆえに動作がやや重いという弱点もあります。
コマンドの違い
UNIXとLinuxは共通したコマンドを持つ一方で、同じ動きを実現するために全く異なるコマンドが必要になることもあります。そこで、UNIXは「Solaris」、Linuxは「Red Hat Linux」を例に挙げ、コマンドの実例を紹介します。
パッケージ取得、更新時のコマンド
UNIXやLinuxにアプリケーションをインストールするときは「パッケージ」と呼ばれるデータの塊を利用します。パッケージにはプログラム本体・ライブラリ・設定ファイル・ドキュメントなどが含まれており、パッケージを展開・更新することでアプリケーションを利用できるようになるわけです。このパッケージを管理するコマンドは、SolarisとRed Hat Linuxで以下のように違いがあります。
Solaris
pkgコマンド
Red Hat Linux
rpmコマンド
yumコマンド
即時シャットダウン後、再起動する場合のコマンド
サーバー構築・運用でよく発生するオペレーションとして「シャットダウン」「再起動」があります。このオペレーションを実行するコマンドも、SolarisとRed Hat Linuxでは異なります。
Solaris
shutdown -i6 -g0 -y
シャットダウンを意味するコマンド(shutdown)に、OSの動作レベルを指定するオプション(-i)で6(再起動)を指定し、シャットダウンまでの秒数(-g)も0を指定します。末尾の「-y」は対話式の答え(シャットダウンしますか?の問いにyesと答える)を先に指定する場合のオプションです。
Red Hat Linux
shutdown -r now
シャットダウンを意味するコマンド(shutdown)に、再起動を表すオプション(-r)と即時実行を表すオプション(now)を組み合わせることで実行されます。
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
UNIX系OSとWindows系OSの違い
UNIX系OSとWindows系OSそれぞれを比較した場合、多くの違いがあります。
ここでは、それらの違いについてまとめてみました。
UNIX系OS | Windows系OS | |
---|---|---|
用途 | 主にサーバー | 主にデスクトップが多いが、サーバーでも使われる |
扱いやすさ/td> | コマンドベースのため、初心者には扱いにくい | GUIベースのため、初心者にも扱いやすい |
安定性 | シンプルな構成で安定性が高い | 安定しているがUNIX系に比べると低い |
ソース | 一部公開(Linuxなど) | 非公開 |
導入コスト | 比較的安価で利用できる | ライセンス料+利用料で高価になりやすい |
サポート | なし(一部OSには有償であり) | Microsoft社による充実したサポート体制 |
Windows 10からLinux対応は始まっている
Windows10以降、WSL(Windows Subsystem for Linux)が導入されました。これは、Windows上でLinux環境を構築できるコンポーネントです。
UnixやLinuxでは開発環境が整いやすいため、環境はそれらを利用しつつも、ドキュメント作成はWindows環境で行う、というケースが一般的です。しかしその場合、別途PCを用意したり、ネットワークを揃えるなどの環境が必要です。
WSLを利用すれば、Windows環境内にLinux環境を構築できるため、1つのPCで両方の環境が扱えます。また、WSL側からもWindows側からもファイルやフォルダにアクセス可能であるため、作業効率が向上しスムーズな開発が可能です。
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
UNIX系・Windows系OSそれぞれのメリットとデメリット
サーバーで広く使用されているOSは、UNIX系OSとWindows系OSの2つに分類できます。サーバーOSは通常のPCに使用されているOSと異なり、接続している配下のコンピュータを管理する機能を搭載しているため、処理速度や安定性に優れています。また、両者は全く異なるOSですので、基本的に同じプログラムは動きません。ここからはUNIX系OSとWindows系OSの違いについて確認していきましょう。
メリット | デメリット | |
---|---|---|
UNIX系 | ・ライセンス料が発生せず、低価格で 導入できる ・低スペックマシンでも動作する ・非常に安定しており、セキュリティも高い |
・CUIがメインであり、コマンドが使えるなど ある程度のスキルが必要 ・サポート費用が有料 ・非対応のソフトが多い |
Windows系 | ・パソコンのWindowsと操作方法が 似ており扱いやすい ・サポート体制がしっかりしている |
・利用にはライセンス料が必要 ・サーバー接続数分の利用料が必要 ・サイバー攻撃の標的にされやすい |
UNIX系は、低価格で導入でき、かつ安定性が高いのが特徴です。その代わりCUIがメインであるため、コマンドを覚えるなど学習コストがかかります。
Windows系はパソコンのWindowsと似ているため、誰でも扱いやすいのが特徴です。しかし、OSの利用だけでなく接続数分の利用料もかかるので、UNIX系と比較してコストが高いというデメリットがあります。
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
UNIXに関するよくある質問
ここでは、UNIXに関してよく聞かれる質問を集めてみました。それについての回答をご紹介します。
Q1. UNIXとはどのようなOSですか?
UNIXは現存する最古のOSです。動作が安定しておりマルチユーザー・マルチタスクに対応しているなど品質が高く、多くの派生OS・互換OSが存在します。通信プロトコルの仕組みも備わっていることから、複数のユーザーがネットワークを通じて同時に利用できるため、主にサーバー用途として使われます。
Q2. UNIX系とWindows系の違いを教えてください
UNIX系とWindows系の主な違いとしては「扱いやすさ」と「導入コスト」があげられます。
UNIX系はライセンス料が低価格かつ高品質なため、導入しやすいOSです。しかし、コマンドをメインに扱うことから、使用には難易度がやや高く初心者に不向きという点があげられます。
対してWindowsはGUIが備わっているため、パソコンでWindowsを扱ったことがある人なら扱いやすいという点がUNIXと異なります。しかしライセンス料だけでなく、サーバー接続数分の利用料がかかるため、導入コストが高い点があります。
Q3. UNIXは何に使われていますか?
UNIXは主に企業のサーバーやワークステーションなどのサーバー系OSとして使われます。例えば、企業の基幹システムのインフラを担うアプリケーションサーバーやデータベースサーバー、Webサーバーなどです。
他にも、UNIXはプログラミングに必要なライブラリが豊富に備わっているため、プログラミング学習用の環境として使われることもあります。
\ITエンジニア・クリエイター専門/
\ITエンジニア・クリエイター専門/
まとめ
UNIXは現存する最古のOSであり、MacOS、Linuxなど多くの派生OS・互換OSが存在します。高い安定性とマルチユーザー・マルチタスクに対応しているなどの特徴から、主にサーバーOSとして利用されます。
同じOSとしてはWindows系がありますが、UNIXはWindows系と異なる点もあります。ライセンス料が安く低価格で導入しやすい点、コマンドベースのため扱うにはスキルが求められるという点が挙げられます。
サーバーOSを選択する際には、これらの特徴を十分押さえたうえで、適切なOSを選択しましょう。
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて