Linux似ているようで別のOS

記事
IT・テクノロジー

Linux似ているようで別のOS

Linux 似ているようで別の OS

Windows、MacOS と並んで Linux は PC の OS として多くの方が利用されている OS です。しかし、Linux の実態は結構複雑です。Linux といえば、似ている部分も多いですが、違う部分も意外に沢山あります。この記事では、Raspberry Pi で広く活用されている、Raspberry Pi OS と Ubuntu の違いの一部を紹介します。


Ubuntu を選んだ理由

Raspberry Pi を試すにあたって、最初に選んだのが Ubuntu(21.04 64-bit デスクトップ版  ARM64)です。 標準では、Raspberry Pi OS がマイクロ SD カードにプリインストールのような形で提供している場合が多いので、この OS を利用されている方も多いと思います。

しかし、あえて Ubuntu を選んだのには理由があります。 普段の開発用に利用している Linux 系の OS が Ubuntu というのが一番大きな理由です。 同じ系統の OS を利用した方が比較などがやりやすいと考えたのが大きな理由です。Ubuntu の他によく仕事絡みで利用している Linux 系の OS に CentOS があります。どちらも「Linux」をベースにした OS ですが、実際に使ってみると、結構違う部分が多いのがわかります。


分かりやすい違いは、OS にアプリをインストールするための、パッケージ管理アプリなどが違います。Ubuntu では、「apt」という管理アプリを利用しますが、CentOS 系では、「yum」を使います。細かい所は、色々違いがあります。

Raspberry Pi を試す場合にも、使い慣れた系統の OS の方が便利なので、最初は Ubuntu を入れる事にしたわけです。

Linux とは言っても、基本はカーネルと呼ばれる、OS の中心部以外は配布パッケージによって大きく違います。

Ubuntu でも違う!?

Ubuntu なら同じかというと、実はこれも色々あります。 既に少し触れていますが、Ubuntu にはサーバー版とデスクトップ版があります。さらに、32-bit 版と 64-bit 版という区別もあります。それだけはありません、CPU の種類によってもインテル版の CPU や、ARM 版の CPU など CPU 毎に違っています。

普段開発で利用しているのは、インテル版の Ubuntu 64-bit 版のデスクトップです。もう一つは、M1 Mac で仮想マシーンとして、ARM 版の Ubuntu 64-bit デスクトップ版を利用しています。


Raspberry Pi は、ARM の CPU を利用しているので、基本的には、M1 Mac で利用している物に近いイメージを利用しています。

デスクトップなどは、あまり違いがなく同じようなっています。見かけ上はほぼ同じで基本的な機能は全く同じです。 しかし、配布されているパッケージには差があって、全て同じというわけではありません。

例えば、Google Chrome は、インテル版では利用可能ですが、実は ARM 版では Google Chrome は現時点は配布されていません。実際は、Chrome の原型の「Chronimum」を利用できるので、機能的にはほぼ同じです。しかし、こうした微妙な違いがあります。

ソースコードが公開されているパッケージの場合は、自分でコンパイルしてイメージを作成すれば、基本的には ARM 系の CPU でも同じパッケージが利用できますが、ソースコードが公開されていないパッケージの場合は、まだ ARM 版で利用できるパッケージが限られています。

Anydesk は Raspberry Pi で利用できない?

ARM 版の Ubuntu では、現時点では、Anydesk のパッケージは配布されていません。 Anydesk は、リモートアクセスをするためのアプリです。同じネットワークに接続されている場合は、リモートデスクトップなどでアクセスする事が可能ですが、外部のネットワークからアクセスする場合には、設定が面倒です。こうした問題を解決するアプリの一つに Anydesk があります。このアプリを利用すると、外部からでも複雑な設定をしなくてもリモートアクセスが可能になります。

このアプリは、Windows、MacOS、多くの Linux で動作します。しかし、現時点では、ARM64 の CPU では動作しません。


Linux 系の OS では、CPU のアーキテクチャを以下のコマンドで見ることができます。 Raspberry Pi 上で動作している Ubuntu で実行すると以下のような結果になります。

$ arch
aarch64
上記は、ARM64 の CPU で実行した例です。

Anydesk のサイトに行くと、一部の ARM アーキテクチャはサポートされています。 Raspberry Pi OS をインストールして、上のコマンドを実行すると、以下のような結果になります。

$ arch
armv7l
同じハードウエアですが、動作している OS で CPU のアーキテクチャが違う場合があります。

インストールのパッケージはこのアーキテクチャをチェックしているため、Ubuntu 上で Raspberry Pi 用の Anydesk をインストールしようとするとエラーになります。

しかし、Raspberry Pi OS から同じことをすると、問題なくインストールができます。

これは、Raspberry Pi OS の方が Raspberry Pi で広く利用されているため、利用できるパッケージが多いということです。

利用目的で OS を選ぶ
Linux 系の OS と言っても、このように使えるパッケージに差があったり、細かい設定のやり方などが異なります。 従って、利用目的をハッキリさせて、それにあった OS を選ぶ必要があります。通常の Web 系の開発で利用する場合、Ubuntu のデスクトップは便利で利用しやすいですが、一部の配布パッケージは ARM64 版ではまだ限られています。

やはり、無難なのは、Raspberry Pi OS で、Raspberry Pi で広く利用されているため、ARM 系の CPU の場合、利用できるパッケージが多いようです。ただし、Apple の Mac が CPU を ARM 系の変えた事もあるので、今後は、ARM 系の CPU でも利用できるパッケージが増えていくのではないかと思っています。

まとめ
Raspberry Pi で利用できる OS は Linux 系の OS を中心に幾つかの選択肢があります。 Linux は元々は、インテルの CPU(x86 系の CPU)を中心に開発された経緯があるので、広く普及している x86 系の CPU を中心にパッケージの配布が行われています。

Raspberry Pi は ARM 系の CPU を採用しているので、OS によっては利用できるパッケージに制限があります。


色々なパッケージを利用したい場合は、Raspberry Pi OS を選ぶのが現時点では無難なようです。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す