- Chris Hoffman
@chrisbhoffman
- Updated July 12, 2017, 10:20pm EDT

AndroidはLinuxに基づいているかもしれませんが、あなたがPCで使ったことがあるタイプのLinuxシステムに基づいているということではありません。 典型的な Linux ディストリビューションでは Android アプリを実行できず、Android では使い慣れた Linux プログラムを実行できません。
Linux は Android のコア部分を構成していますが、Google は Ubuntu などの Linux ディストリビューションにあるような典型的なソフトウェアやライブラリのすべてを追加してはいませんでした。 これがすべての違いになります。
“Linux” vs. Linux カーネル
RELATED: 「Linux」は単なる Linux ではない: Linux システムを構成する 8 つのソフトウェア作品
ここでの大きな違いは、私たちが Linux をどのように意味しているかということに帰着します。 人々はさまざまなことを意味するために「Linux」という言葉を使っています。 最も基本的なところでは、LinuxはLinuxカーネルを意味します。 カーネルはどんなオペレーティング・システムでも核となる部分です。
また、Linuxディストリビューションを単に「Linux」と呼ぶこともあります。 しかし、Linux ディストリビューションは Linux カーネルだけではありません。 GNU シェル・ユーティリティ、Xorg グラフィカル・サーバ、GNOME デスクトップ、Firefox ウェブ・ブラウザなど、他の多くのソフトウェアが含まれています。 そのため、GNU/Linux という用語は、Ubuntu、Mint、Debian、Fedora、Arch、openSUSE などの「Linux ディストリビューション」に対して使われるべきと考える人々もいます。 Linux はオープンソースであるため、Google の Android 開発者は、自分たちのニーズに合わせて Linux カーネルを変更することができます。 Linux は、Android 開発者が独自のカーネルを書く必要がないように、あらかじめ構築され、すでにメンテナンスされたオペレーティング システム カーネルを提供します。 たとえば、PlayStation 4 はオープンソースの FreeBSD カーネルを使用し、Xbox One は Windows の最新バージョンにある Windows NT カーネルを使用しています。
デバイス上で実行中の Linux カーネル バージョンも、Android の設定にある [電話] または [タブレット] で確認することができます。 Linux ディストリビューションとは何か、そして、それらは互いにどのように違うのか。
Android が「Linux ディストリビューション」として適格であるかどうかについては、いくつかの議論があります。
Android デバイスを起動すると、Linux ディストリビューションと同じように Linux カーネルがロードされます。 しかし、他のソフトウェアの多くは異なっています。 Android には、標準的な Linux ディストリビューションで使用されている GNU C ライブラリ (glibc) は含まれていませんし、典型的な Linux ディストリビューションで見られるような GNU ライブラリもすべて含まれてはいません。 また、Xorg のような X サーバーも含まれていないため、標準的なグラフィカル Linux アプリケーションを実行できません。
典型的な Linux アプリケーションを実行するのではなく、Android では Dalvik 仮想マシンを使用して、基本的に Java で書かれたアプリケーションを実行します。 これらのアプリケーションは、一般的な Linux をターゲットにしているというよりも、Android デバイスと Android が提供するアプリケーション プログラミング インターフェイス (API) をターゲットにしています。
Why You Can’t Run Desktop Linux Software on Android
RELATED: Unix とは何か、そしてなぜそれが重要なのか」
Android にはグラフィカルな X サーバーやすべての標準 GNU ライブラリが含まれていないため、Android 上で Linux アプリケーションを単純に実行することはできません。 Android用に特別に書かれたアプリケーションを実行する必要があります。
Androidには、Linuxにあるようなシェルがあります。 しかし、Android Terminal Emulator のようなアプリをインストールすることで、この端末環境にアクセスすることができます。
デフォルトでは、ここでできることは多くありません。 ターミナルはまだ制限された環境で実行されるので、あなたの Android デバイスをルート化せずに完全なルート シェルを得ることはできません。 必要な多くの標準コマンドは利用できません。そのため、デバイスを root 化する人は一般に、多くのコマンドライン ユーティリティをインストールする BusyBox アプリケーションをインストールします。 これらのユーティリティは、アプリケーションがルート アクセスで何かを行うために使用されます。
Why You Can’t Run Android Software on Desktop Linux
RELATED: Windows で Android ゲームをプレイする (および Android アプリを実行する) 方法
Linux には Dalvik 仮想マシンが含まれていないため、Android アプリを実行することはできません。 Dalvik 仮想マシンと Android の他のすべてのソフトウェアをデスクトップ Linux マシンに単純にドロップすることはできません。たとえば、Android アプリを Xorg を通して標準デスクトップのウィンドウに出力するには、さらに作業が必要です。 理論的には、十分な作業をすれば、開発者はDalvikをデスクトップLinux上で動作させることができ、デスクトップLinuxユーザーは自分のデスクトップ上でAndroidアプリを実行することができます。 現在休眠中の Ubuntu for Android 製品はこのようなことを試みており、携帯電話上で Ubuntu と Android を統合し、それらの Android アプリを Ubuntu のデスクトップ上で実行できるようにしました
BlueStacks やその他の Android アプリ エミュレーターは Windows や Mac でこれを実現しようとしています。 これらは仮想マシン内の仮想ハードウェア上で Android を実行し、デスクトップ上で Android アプリを-パフォーマンス上のペナルティはありますが-実行できるようにします。 しかし、これらのソリューションはあまり普及していません。
Google の Chrome OS も Linux をベースにしています。 Android と同様に、Chrome OS は標準の X ウィンドウ システムを提供しないので、標準の Linux アプリケーションは Chrome OS 上で実行できません。 Androidとは異なり、Chrome OSは標準的なデスクトップLinuxディストリビューションに近いので、開発者モードを使用して、不足しているLinuxデスクトップソフトウェアをインストールできます。
Image Credit: ranti on Flickr, Anatomy and Physiology of Android
Chris Hoffmanは、「ハウトゥギーク」編集長である。 10年以上にわたってテクノロジーに関する記事を執筆し、PCWorldのコラムニストも2年務めた。 また、ニューヨークタイムズ紙への寄稿や、マイアミのNBC 6などのテレビ局でテクノロジー専門家としてインタビューを受けたり、BBCなどのニュースメディアにも取り上げられたりしています。 2011年以来、クリスは2,000以上の記事を執筆し、約10億回読まれています。