自分はフリーソフトウェアの理念と、それによって実現しているシステムに関心があります。 多くのものが資本の理論とビジネスによって分断され、差をつけられていく流れが加速していく社会にあって、 インターネットによって形成された物理的な距離を越えたコミュニティとそれらによる相互扶助でつくられる開かれたソフトウェアの在り方はとても対比的です。
ビジネスというのは秘匿、独占し、差を作ることによって価値を創出し、そこに金銭を流す仕組みなのでフリーソフトウェアコミュニティの相互扶助と相性が悪いです。 オープンソースというライセンス形態が開発されましたが、それでも営利企業はこれらコミュニティの成果を利用しているわけですから、ビジネス活動によってコミュニティを破壊してしまうようなことがないよう、コミュニティへもコントリビュートすることはある種の義務と言えるでしょう。
さて、ベンダーロックインという言葉があります。最近よく使われるようになりましたが、クラウドサービスなどが一部の企業によって提供されており、そのうちの一社に自社のビジネスが依存してしまうことによるリスクを指して使われることが多いようです。 クラウドサービスだけでなく、多くのサービスに、またビジネスだけでなく個人としてもこれは当てはまります。
個人のレベルにおいては、これは自由と便利の対比として捉えています。 フリーソフトウェアやそれに準じるサービスにはビジネスとして提供されているサービスに比べて便利さで劣る場合が多いですが、一方でそれを自分でなんとかできる自由があります。 この自由こそが「フリー」ソフトウェアの本質です。
この自由を担保する、ということがこの記事のモチベーションのひとつです。
例えば、今利用しているサービスが突然なくなる、アカウントをBanしてくる、法外な料金設定になってしまう、などのリスクが発火したとき、自身のデータにフルアクセスできたり、やりたいことを継続できるでしょうか。 またプライバシーなどの懸念からオプトアウトしたいとき、その選択ができるでしょうか。
こういった自由度を常にある程度確保しておきたいと考えています。
私の好きなマンガのひとつ、ハイキュー!!にはこんな言葉があります。
強いって自由だ
自由を体現するには、ある種の強さが必要です。 ソフトウェアにおいては、エンジニアリングの力とでもいいますか、ソフトウェアに関するあれこれをある程度自力でなんとかできる知識やスキルが必要ということだと解釈しています。
私はソフトウェアエンジニアですから、そういった環境に身を置くことにも、自由と利便性のバランスという価値観に準じるということにも価値があります。
ところで、この自由という意味でもソフトウェアの多様性というのは重要だと思います。 みんなが同じものしか使ってない、開発してないというのはエンジニアリング視点で面白みも欠いていますしね。
前置きが長くなりましたが、こういった、ある意味では自分のただの矜持から、最近自身のメインマシンのOSをZorinOSに変更しました。
Raspberry Piはどうした?
Raspberry Pi 5にSSDを付けてUbuntuを利用していましたが、やはりパフォーマンスと安定性の面で日常利用にはつらみがありました。
拡張には限界があるので、たとえばディスクリートGPUなども使えません。 ローカルでLLMやStable Diffusionなどを動かすときは、メインマシンを使っていました。
また、いくつかのパッケージではARM版がないことも課題でした。 例えば私はEmacsのcompletionに昔からTabNineを利用しているのですが、TabNineは未だにARMをサポートしておらずこれが使えませんでした。
ただ、こちらは2024年7月にとうとうARM版がリリースされたようですね。
とまあ、そんなこんなでRaspberry Pi自体と2つのハードの運用のつらみが重なって最近はまたWSLを使っていました。
NixOS使ってなかった?
実は一時期利用していたNixOSは利用をやめて、nixpkgsをUbuntu上で利用していました。
個人的にNixOSは好きなんですが、一番のネックは組込み系の開発などでtoolchainをもってきても実行できないことでした。
NixOSはそのコンセプト故にローカルにダウンロードしてきた実行ファイルをそのまま実行することができません。 delivationとして定義して配置する必要があります。
そうすることで再現性のあるNix configurationとして書き下すことができるわけですが、 それがいいところであり、またペインポイントでもあったという感じです。自分には根性が足りませんでしたorz
どちらかというとWindows on Linuxの方がいい
実際のところ、だいたいの作業はLinux側で完結できるので、本来はWSLよりWindows on Linuxの方が好ましいというのがあります。
特に組込み系の作業のときはWSLよりはLinuxそのまま利用している方がシンプルで好ましいと思っています。
Windowsを使う必要があるのは「Windowsでないと動作しないアプリを使う」ときだけです。 例えばAdobe製品やAffinity、Steamのゲームとかですね。
Linux上でWindowsをVMで利用するのもよいですが、VMWareも今後どうなるかわかりませんし、ゲームなどはせっかくなのでVMでプレイしたくないです。
というわけで、結局デュアルブートしか勝たん、ということになりました。
ZorinOSの導入所感
ZorinOSの紹介と導入については公式の案内もありますし、たくさん記事もあるので詳しくは書きません。
選択の理由としてはまず、デスクトップユースなので、素直にDebian/Ubuntu系でいいかなと思いました。
Ubuntu系の選択肢にはZorinの他に、Ubuntu、Linux MintやelementaryOSもありましたが、 インストールのしやすさ、あとUbuntuはデフォルトのGNOME UIがあまり好みでなく、elementaryOSはGUIのカスタマイズ性やFLOSSらしい思想との距離感がある感じを受けたことから、Zorinにしました。
まずデュアルブートですが、Zorin OS 17時点でのインストーラーにはWindowsを残したままインストールするオプションが用意されています。。
なので事前準備として実施したのは以下だけです。前提として、別SSDにそれぞれのOSをインストールしています。
- 別SSDを用意して、EFI利用のためにGPTパーティションにしておく(Windows側のSSDは元々GPT)
- セキュアブートオプションをDisabledにしておく
あとは、ブートローダーの設定をします。 GRUBがWindowsのブートローダーがあるSSDの方に入りますので、UEFIのブートオプションでGRUBを優先します。
これだけでした。
Zorin OS 17時点でのインストーラーは、更にNVIDIA driverも一緒にインストールするオプションも用意されているので、インストールのハードルは格段に下がっていると思いました。
まとめ
ZorinOSはOpen Of the Boxでかなり満足度の高いインストールサポート、Ubuntu、Windows、Macのいいところをうまく取り入れたようなデスクトップ環境を提供していると感じました。
プリンターやWifi、blutoothも問題なく使えていますし、ハイバーネートと復帰も問題ありませんでした。
日本語については、システム言語は英語で使っているのでわかりませんが、おそらく問題ないと思います。 IMについてはibusとuimがデフォルトで選択できるようで、ibus-skkを使っていますがこちらも問題ありませんでした。
というわけで、ZorinOSの満足度は今のところ非常に高いです。しばらく使いこんでみようと思います。