はじめに
以前の記事で紹介したサーバーカーネルとデスクトップカーネルの比較は、実は完全には終わっていませんでした。そこで、本稿では以前の記事を完結させ、さらにUbuntuサーバーに含まれているサービスと、いくつかの興味ぶかい問題点、適している用途について説明します。Ubuntuは結局のところCanonicalの高性能サーバーを稼働させるためのものなのか、それとも本当に役に立つものなのかといった点を検証していきます。
CPUファミリ
サーバーカーネルはCONFIG_M686=yを使用し、デスクトップカーネルはCONFIG_M586=yを使用します。これは、サーバーカーネルはPentium Pro命令セット用に最適化されており、デスクトップカーネルは586および686 CPUファミリ全体が対象であることを意味します。一般的な486カーネルであっても最新のコンピュータ上で動作するため、このことに大きな意味はありません。カーネルをコンパイルする場合、実際にパフォーマンスを向上するには、CPUに適したCPUオプションを選択します。これにより、CPUの命令セットが完全にサポートされます。
リークがあるIPC名前空間
仮想化の大流行を迎えるまでは、カーネルでは、あらゆる場面でプロセス間通信(IPC)オブジェクト(共有メモリセグメント、メッセージキュー、セマフォ)の単一セットが使用されていました。しかし、仮想環境では、各自のIPCを各自のコンテナに制限する必要があります。どこででもリークさせるわけにはいきません。そこで、IPC名前空間、つまり仮想IPCが作り出されました。これは、サーバーカーネルで有効であり(CONFIG_IPC_NS=y、CONFIG_UTS_NS=y)、デスクトップカーネルでは有効ではありません。このことは、デスクトップカーネルにおける仮想環境ではリークが発生し、安全でないことを意味するのでしょうか。どうもそのようです。おそらく誰か優秀な人が詳しく説明してくれることでしょう。
注目すべき最後の相違は、サーバーカーネルでは複数のIPv6ルーティングテーブルがサポートされますが、デスクトップカーネルではサポートされないことです。
付属パッケージ(確認できたもの)
「Ubuntu Server Edition」のページには、次のような記述があります。
約15分で...LAMP(Linux、Apache、MySQL、PHP)サーバーが起動し、使用できる状態になります。これはUbuntu Server Editionだけの機能であり、インストール時に有効です。
実際には、これはUbuntu Server Editionに限った機能ではありません。さまざまな既成のLinux LAMPスタックがあり、たとえばXAMPP for Linuxは非常に包括的で多機能なLAMPサーバーです。同じページでは、ディスクレス方式の優秀なシンクライアントサーバーであるLinux Terminal Serverのすばらしさについても強調しています。しかし、どういうわけかこれはUbuntuサーバーには含まれていません。
私は、リリースノートまたはそれに類するものでパッケージリストを確認しようと考えましたが、どこにも見つけることができませんでした。それどころか、Ubuntuサーバーに付属するものの詳細な説明すら見つかりませんでした。そこで、テストシステムにUbuntuサーバーをインストールし、すべてのパッケージグループをインストールしてみました。そして、dpkg -l
を実行して完全なパッケージリストを作成しました。Ubuntuサーバーにはコンパクトな優れた355のパッケージがあり、すべてを選択すると899 MBになります。
また、Ubuntuサーバーには、2.6.22-14カーネル、Apache 2.2.4、MySQL 5.0、PostgreSQL 8.2、PHP 5.2、Perl 5.8、Python 2.5から成るLAMPスタックが含まれることがわかりました。つまり、LAMPにはいくつかのオプションがあり、データベースとしてはMySQLまたはPostgreSQLを選択でき、スクリプトとしてはPHP、Perl、またはPythonを選択できます。
不可解な誇大広告はさておき、UbuntuサーバーではSambaを利用してプラットフォーム間のネットワーク認証、ファイル共有、プリンタ共有を実現できます。ntfs-3gを使用して、Windows NTFSファイルシステムへの読み取り/書き込みアクセスさえ可能です。また、優れたSMTP/POP3/IMAPメールサーバーであるPostfixとDovecotがあり、印刷にはCUPS、ネームサービスにはBINDを使用でき、AppArmorでセキュリティを強化できます。イーサネット、ダイヤルアップ、ワイヤレスをサポートするネットワーキングパッケージもほどほどに揃っており、一般的なネットワーキングユーティリティも基本的に揃っています。シリアルコンソールもサポートしていますが、Ubuntuでは旧式のSys-V initではなくUpstart initシステムが使用されているため、/etc/inittab
ではなく/etc/event.d/ ttyS*
で構成されます。