08:35瑞起、初のUWBゲームパットを先行予約開始。19:21ドワンゴ、ZEN大学設立。【特集】LANケーブルなんて自分で作ればいいじゃない。Proで試してみた要注意。06:24UbuntuとWindowsのストアアプリ第1回ではUbuntuの基本的な歴史を紹介したところで、今回はWindowsに対するUbuntuの利点を紹介しよう。ちなみに今回の比較対象はWindowsとUbuntuのみに限定している。OS、OpenIdiana、HaikuにGenodeなどなど、今も開発が続いているものだけでも枚挙にいとまがない。ユーザー数だけで言えばWindowsが他を圧倒していることには異論がないはずだ。その多くが「多種多様なOSの中から、Windowsを選んだ」ではなく「PCを買ったらWindowsが入っていたのでそのまま使い続けている」に該当するだろう。そんな利用者に向けて「別の選択肢の可能性」を提案することが目的となる。最初にタイムがマネーな読者に向けて、結論だけ述べておこう。「一般的なユーザーが使う上で、UbuntuがWindowsに対して特別優れている点はあまりない」。個々の機能においては、「これいいよね」というものはたくさんある。あるのだが、Ubuntuの強みを語れば語るほど玄人向けの話になってしまうのだ。「Ubuntuを初心者にはおすすめできない」かと言うとそこまででもない。まごうことなき本物の初心者であれば、おそらくUbuntuでも困ることはないはずだ。困りはしないのだが、そんなユーザーはそもそもOSを変えるという発想には至らない。Watchの読者なら好きな方を使えばいいんじゃない?」ぐらいが関の山、となってしまう。本サイトであれば「あえてWindowsを使っている」という読者も多いとは思われるが、そこは「こういうユースケースならUbuntuに分があるのか」という風に読んでくれるとうれしい。言うわけで、これだけハードルを下げておけば、この先も心穏やかに読んでいただけるものと思っている。その手にした刃物のようなものを置いていったん落ち着こう。便利なパッケージ管理システム「Ubuntuの利点」としてよく挙げられるものが、最初から用意されている「パッケージ管理システム」の利便性と、インストールできるソフトウェアの充実度だ。昨今のソフトウェアプラットフォームにおいて、エコシステムの成長速度や充実度合いは非常に重要な要素となっている。AndroidもiOSも、いろんな便利なソフトウェアがあるからこそみんなが使っているのだし、みんなが使っているからこそ日々さまざまなソフトウェアがリリースされている。どんなに優れたOSであってもソフトウェアがなければ、ユーザーは増えない。Ubuntuも登場から急速にユーザーを増やせたのは、すでにDebianが構築していたソフトウェアエコシステムに便乗できたのが大きい。3万個を超えるソフトウェアを、単一のUIでインストールし、必要に応じてアップデートできるのだから、単なる数字だけならWindowsにも負けていないことが分かるだろう。Debian/Ubuntuやその派生ディストリビューションは「debファイル」をパッケージフォーマットとして採用し、debファイルの生成・管理ツールとしてdpkgを、dpkgのフロントエンドとしてAPTシステムを採用している。このうちdebファイルとdpkgは、Debian登場間もない0.91の頃には登場している。Murdock氏が作成した単なるシェルスクリプトだった。Wettstein博士のStopALOPに触発されて」と書いてある。StopALOPは当時存在したLinux向けのパッケージ管理システムの1つで、名前を直訳すると「脱毛症の阻止」だ。当時のソフトウェアのインストールが如何に面倒な作業だったかよく分かる。Tool)に改名し、今に至る。Tool)」だったりもしたが、今は特に何の略でもない「APT」ということになっている。APTは大まかにわけると次の3種類のコンポーネントで構築される。パッケージリポジトリソースパッケージバイナリパッケージ(debファイル)「パッケージリポジトリ」が各種パッケージを配布する主体だ。これはHTTPサーバーさえ用意し、APTの流儀に従ったファイルを用意すればだれでも構築できる。APTの各種ツールは、このリポジトリからHTTP経由でファイルをダウンロードする。ソースパッケージは、ソフトウェアのソースコードをdebファイルの流儀に従って再アーカイブしたものだ。オリジナルのソースコードに加えて、Debian/Ubuntuによるパッチファイル一式、パッケージのメタデータファイルなどが同梱されている。バイナリパッケージは、ソースパッケージを元にビルド等を行なったバイナリデータだ。これもdebファイルの流儀に従って構築された単なるアーカイブになっている。ソースパッケージさえ入手すれば誰でも再ビルドできる。ユーザーがソフトウェアをインストールする時にダウンロードするのはバイナリパッケージになるため、単なる「パッケージ」と呼ぶとこちらを意味することが多い。Ubuntuのパッケージ管理システムを利用すれば、多種多様なソフトウェアに対して次のような機能を利用できる。Softwareやaptコマンドでソフトウェアを検索しインストールする。そのソフトウェアが依存している他のソフトウェアやライブラリもセットでインストールしてくれるので、うまくいけばコマンド1つで完了するのだ。パッケージ名アップデートもシステムに組み込まれているのは、大きなポイントだろう。Ubuntuの場合、インストール済みのソフトウェアの更新通知はOSが担っている。ソフトウェアリポジトリに定期的に問い合わせを行ない、インストールされているソフトウェアのうち更新があったら、ユーザーに通知しアップグレードを促す。ちなみにインストール時点ではセキュリティアップデートの場合、自動的にアップグレードする設定になっているものの、このあたりは柔軟に変更可能だ。Ubuntuにおけるソフトウェアの更新ダイアログ(GUI版)「ソフトウェアとアップデート」ツールを起動すると、アップデート周期や適用方法などを変更できる。このようなことが実現できるのは、Ubuntuが「フリーソフトウェア」によって構築されていることに起因している。ソースコードが公開されており、改変や再配布の自由が保証されているため、「Ubuntu側で」ソフトウェアをUbuntuのリリースごとにビルドし、パッケージとして単一の仕組みで再配布できるからこそ、ユーザーは統一的なUIでさまざまなソフトウェアをインストールできるようになっているのだ。Debianはこのパッケージの品質を非常に重要視している。更新時はソースパッケージが幾人かの目でチェックされ、共通のビルドシステムによってビルドされ、リポジトリにアップロードされる。20年以上前から現在で言うところの「CI/CD」に近い仕組みを実現していたのだ。品質チェックの方法も人間だけには頼らず、静的解析ツール(lintian)等を通す前提になっている。他にもインストール・アップグレード・削除テスター(piuparts)やバイナリパッケージの自動テストツール(autopkgtest)なども使われている。Ubuntuがリリースされたら、通常のアップデートのUIから、新しいリリースにアップグレードできる。よってソフトウェアの更新で問題になることはほとんどないだろう。Ubuntu自体の新バージョンへのアップグレードもほとんど問題が起きることはない。これは「Ubuntuの公式のリポジトリからソフトウェアをインストールしている」場合のみに限定される。Ubuntuの場合、比較的簡単にサードパーティのリポジトリを追加できるし、追加したほうが便利な場合も多い。サードパーティのリポジトリはDebianの厳密な品質管理を経ていないことが多いため、アップデート等で困ることに遭遇しやすい。Ubuntuのパッケージ操作に関してはさまざまな便利機能もあるため、また別の機会に紹介しよう。ソースコードにアクセスできるUbuntuのパッケージ管理システムは、リポジトリから提供しているのがフリーソフトウェアであることからこそ、Ubuntuプロジェクトとしてその品質を担保できている。万人向けとは言えないものの、その「ソースコードに簡単にアクセスできる」こと自体も、Windowsとそのエコシステムに対する強力なアドバンテージだ。世にあるソフトウェアのほとんどは何らかの不具合を抱えている。「何もしていないのに壊れた」は現実に起こりうる事象だ。そんなときソフトウェアが悪いのか、ハードウェアが悪いのか、使い方が悪いのか、運が悪いのかを切り分けるのはそれなりに大変だ。そこでソースコードにアクセスできると、難易度がぐっと下がる。普通に接しているだけなのに、突然キレるソフトウェアたちもちろんコードを理解できないといけないし、たとえ文法を理解していても「お前は何を言っているんだ」と思うコードはたくさんある。それでもブラックボックスなソフトウェアの原因追求をするよりは遥かに楽だ。問題点と対応策がはっきりしたら自分で修正できる。修正した結果は、開発元に修正提案を投げるもよし、Ubuntu側に不具合報告する手もあるだろう。自分でパッケージに適用すれば次のバージョンを待つ必要もなくなる。「ソフトウェアとアップデート」で「ソースコード」にチェックをいれると。パッケージ名」でソースコードを取得できる。これらはあくまで理想論である。人はソースコードは読まないし、読んでも自分で修正しようとは思わない。いう選択肢があるという程度でしかない。空気を吸うようにアセンブリ言語を解釈できる人なら、別にソースコードがなくても問題とはならないだろう。実際にUbuntuを使ってみるとわかるが、「いざとなったらコードを読んで確認しよう」は「理不尽な不具合」に遭遇した際の心理的バリアとして非常に有用なのだ。残念なことに、このバリアを多用すると時間がものすごい勢いで溶けていく。フリーソフトウェアの利点の1つが「複製・再配布の自由」だ。今まさに動いているUbuntuシステムをストレージごと複製し、他のマシンに展開して同時に使うことも可能だし、仮想マシン上で動かしてもまったく問題ない。トラブル時にとりあえず状態をまるっと保存して、別のPCで動作確認みたいな使い方もできる。ところでUbuntuは主にフリーソフトウェアで構築されているが、すべてがそうなっているわけではない。代表的なものが「ファームウェア」と呼ばれるバイナリデータだろう。ネットワークデバイスやGPUはドライバーソフトウェアだけでなく、メーカーが配布するファームウェアのロードが必要になることが多い。これらのバイナリデータは再配布については問題ないものの、ソースコードが公開されているわけではないため、中身を理解したり改変することはかなり難しくなる。ファームウェアに起因する不具合は結構多い。当然のことながらUbuntuと言えどストレスフリーになれるわけではない点に注意しよう。「Ubuntuが初心者向けって言ったって、結局GUIでは完結できずCLIでの操作が必要になるんでしょ?」とはよく言われる。それは間違っていない。Interface)を操作することのほうが多いだろう。Interface)に比べたら、はるかに初心者に優しい。UbuntuもWindowsと同じく、基本的な操作であればGUIだけで完結できる。完結はできるのだが、何かUIが想定していない特別なことをしようと思ったら、CLIを使うことが多い。これは「CLIでないとできない」こともあるのだが、それ以上に「CLIのほうが楽にできる」という意味合いのほうが強い。Ubuntuの設定も、おおよそGUIでなんとかなる言い方を変えると「CLIの操作ができるなら大抵のことは実現できる」とも言える。アプリケーションの検索やインストールなんかは前述したようにaptコマンドだけで完了するし、他にもCapsキーにCtrlキーを割り当てたいなら、端末アプリを開いて次のコマンドを実行するだけだ。"['ctrl:nocaps']"何より他人に手順を支持する場合に、コマンドの羅列で済むのがいかに便利かは、技術系の記事を読み書きする人なら理解してもらえると思う。Ubuntuを使えば使うほど、CLIの操作がいかに楽なのかが分ってくる。学習コストは高いもののそれだけの価値はあると思ってほしい。Ubuntuの利点に対するよくある誤解たまに「Ubuntuの利点」としてあげられることがあるものの、実はそこまででもないものも説明しておこう。「Windowsに比べて軽量」というのは、Linuxを使う上で期待されるものの1つだ。Windows自体が「新しいPCで動かす」ことを前提にリリースしているため、「型落ちマシンをLinuxで再活用」という話はよく出てくる。Ubuntuの場合、「最新のWindows」に比べると要求スペックはそこまで高くない。Skylake以降のそこそこのマシンなら特に問題なく動くだろう。「すごく軽量か」というとそうでもない。CPUはもうサポートしていないし、デスクトップ版ならメモリも4GiB以上は欲しいところだ。GPUも3Dアクセラレーションが欲しい。古いPCでも軽量に動作するOSを求めているなら、Ubuntu以外を選ぶことをおすすめする。Ubuntuの派生だとXubuntuやLubuntuが軽量性をうたっている。x86_64非対応CPUだと最近は選択肢が少なくなってきた。32などをカスタマイズして使うのがいいかもしれない。Windowsでよくある不満の1つが「リリースするたびにUIがころころ変わる」ことだという話を聞く。Ubuntuもこの点は変わらない。リリースごとにベースとなるGNOMEやUbuntu自身の変更によってUIがそれなりに変わるため、変化に対応する力が必要だ。Windowsと異なり、OSやUIに対するカスタマイズ性は高いし、他の選択肢も用意されているため、気になるなら自分で変えてしまうという自由はある。「ウィルス対策ソフトがいらない」もコメントが難しいところだ。確かにWindows向けのウィルスはUbuntuでは動かないことが多い。広い意味での「マルウェア」と考えた場合、Linux向けのマルウェアはそれなりに存在する。よって「まったく対応しなくていい」かというとそんなことはない。悪意のあるソフトウェアが利用できるセキュリティ脆弱性は、Ubuntuにもたくさん存在するし、そもそも人間が使うという点ではWindowsと違いはない。セキュリティ対策は必要であるものの、Ubuntuのデスクトップ版であればまずは「怪しいプログラムは実行しない」「怪しいサイトにはアクセスしない」「パスワードはきちんと長いものを設定する」といった当たり前の対応を心がけることが重要だ。そのほかの具体的な対策例は、別の機会に紹介することにしよう。Windowsに対してUbuntuが弱い点もちろんWindows側のUbuntuに対する利点をあげればきりがない。ユーザーが多いから、日本語の情報も充実している。何より便利なソフトウェアや面白いゲームがたくさん存在する。Edge、Teamsなどなど、Linux向けのGUIアプリケーションもリリースしている。SteamのようにWindowsゲームがLinux上でも動くようになってきた。それでも「ちょっとしたGUIのツール」なら、Windowsのほうがまだまだ充実しているだろう。周辺機器も基本的にWindowsやmacOSのみがサポートされている。USBやBluetoothといった標準的な接続方法やプロトコルが充実してきたおかげで「専用ドライバー」は不要になってきたし、Ubuntuでも大抵は認識するものの、それでもそのデバイス専用の設定ツールはWindows/macOSだけというのはよくある話だ。ビジネス的には「スケープゴートがいる」のもWindowsの利点かもしれない。Windowsで何かトラブルが起きれば、とりあえず「Microsoftのせい」にしておけば溜飲は下がる。このように真面目に考えれば考えるほど、「Ubuntuでなければいけない」理由はないように見える。Ubuntuが目指しているのは「Ubuntuでもいい」と言える世界だ。今回あげた利点はもちろん、あげられなかった利点でもいいので、何か1つでも琴線に触れるものがあれば、ぜひUbuntuも試してみてほしい。初回から2回に渡ってUbuntuの位置づけ的な話をしたので、次からはもう少し実用的な話を始めることにしよう。【第4回】これで脱・初心者。