andLinuxとは?
Windows上でのLAMP開発
いわゆるLAMP(Linux、Apache、MySQL、PHP、PerlあるいはPython)環境の開発は、近年すっかりおなじみとなりました。読者の中にも業務あるいは趣味で携わっている方もいるでしょう。
しかし、その中でもクライアント環境自体もLinuxを使っているという人は案外少ないのではないでしょうか。多くの人は、日常使い慣れたWindows上で開発を行い、コードなどがある程度できた段階でLAMP環境に転送して動作確認をしているのではないでしょうか。
実際に稼働する本番環境にて、開発したシステムの最終的な動作確認をすることは当然必要ですが、開発の途中で本番環境に転送して確認するのは、手間が掛かります。そこで開発しているWindows上で何とかLAMP環境が動かないものかと思っている人や、あるいは最近急速に普及しつつある仮想化技術を用いてすでにWindows上で確認しているという人もいるでしょう。
そこで、まずWindows上にLAMP環境を構築するにはどのような方法があり、それぞれどのような特徴があるのかを紹介します(図1)。
Windows上でLinux環境を構築する主な方法
図1に示したようにWindows上でLinux環境を構築する方法としては、大きく分けて以下の3種類があります。
1.Linux APIのエミュレーション
2.仮想マシンを利用する
3.Linux kernelをWindowsサブプロセスとして実装
1の方法を採るものとしては、Cygwin(http://www.cygwin.com/)があります。Cygwinは、WindowsのWin32 APIでLinuxのAPIをエミュレーションすることで、Linuxのプログラムを動かすシステムです。X環境を導入すれば、Windowsアプリケーションと同様にXアプリケーションを実行できるように設定することもできます。
2は、VMwareやVirtual PC、VirtualBoxなどに代表される仮想化ソフトウエアを使って、Windows上に仮想マシンを構築し、そこに通常のLinuxディストリビューションをインストールする方法です。この方法では、物理PCにインストールするのと基本的に同じ環境をWindows上に構築できます。
3の方法を採るものには、Cooperative Linux(coLinux)(http://www.colinux.org/)や、それをベースに開発された、これから本連載で紹介するandLinux(http://www.andlinux.org/)などがあります。これは、LinuxのkernelをWindows上のサブプロセスとして動作するように移植し、その上に通常のLinux環境を構築する方法です。OSSの仮想化システムであるXenは、パッチを当てたkernelからドライバーを通して仮想化されたWindowsデバイスと通信する準仮想化を実現しますが、3の方法はこれに似たアーキテクチャをとります。
この方法では、andLinux上の環境は通常のLinuxそのものですから、Linuxのバイナリをそのまま持ってきて動作させることができます。また、andLinux自体はWindowsのアプリケーションですから、一般的なWindowsアプリケーション同様にインストーラから簡単にインストールすることができます。さらに、エミュレーションではなくWindowsアプリケーションなので、動作が比較的高速であるという特徴があります。
なお、さらに別の方法として、LAMPのAMP部分については各ソフトウェアのWindows版を利用するという方法もあります。有名なパッケージとしては、XAMPP for Windows(http://www.apachefriends.org/jp/xampp-windows.html)があります。この方法ではLinux環境をそのまま構築できるわけではありませんが、Windows上にLAMP(実際にはWAMP)環境を構築する目的は達成できます。
各方法の特徴と違いについては、次ページ以降でさらに詳しく説明します。