メインコンテンツへスキップ

Linuxを学んできた歴史と感想:なぜLinuxシステムへ移行するのか?

·
カテゴリー Linuxシステム FOSSをめぐる問題
タグ Free Software Distro-Hopping Ubuntu PostmarketOS Termux Android
目次

Linuxを学んだのは、学校に学べと言われたからではなく、波のように断続的にやってきたものだ。なにせ私が専攻していたのは言語関連の学科だった。」

自分がもうLinuxを学び終えたとは思っていない。特にサーバー方面はまだかなり浅い。現在は主にLinuxをメインOSとして使い、文書作成、美工、ゲーム、そしてたまにプログラム開発に使っている。

Linuxを学ぶ利点は、多くのオープンソースソフトウェアの解決策を知れたことで、しかもその多くがクロスプラットフォームであり、数多くの商用ソフトウェアを置き換えられることだ。もちろん、自分用の話であって、業界ではたぶん大半が受け入れられないだろう。

Linuxの学習過程はかなり断片的で、知識点を一つずつ補っていく形だった。最近になってようやく、中国語入力メソッドにはあれほど多くのフレームワークを選べるのだと知った。私はわざわざLinuxの入門講座を受け、鳥哥のLinux私房菜を読んで、初めて順序立てて学ぶとはどういう感覚なのかを知った。理解を深めるため、資工系でデータ構造とオペレーティングシステムを履修した(この二科目はどちらも数学を使わなくて済むから;P)。

編年史
#

2018年

最初の接触は高校時代に使ったUbuntu 16.04だった。32bitのWindows 7は2GBメモリのマシンでは少し重かったので代替品を探し、当時はまだWubiという怠け者向けの方法でインストールしていた。

使ってみると、やはり同じように重かった。もしかするとE3300 CPUのせいではなく、長い間GPUがG41のマザーボード内蔵グラフィックに依存していたからかもしれない(最近になって知った)。だからGnomeデスクトップのアニメーションがlagするのも不思議ではなかった。

その後Lubuntuも大して良くなかった。グラフィックチップの力が足りず、LXDEのウィンドウがしょっちゅうIEみたいにコマ落ちして重なった画面になったからだ。

そのため、断続的に数か月遊んだ後に削除してしまった。ただ、これは一つの始まりだった。

2020年

その後数年は沈黙していたが、2020年になってまたUbuntuにハマり始めた。今から見ればUbuntuはLinuxのすべてではないが、入門には最も向いている。当時、私のPCはWannacryに似たMarsウイルスに感染してしまい、勢いでWindows 10を削除し、Ubuntuをメインシステムにした。しかしLibreofficeに慣れず、結局一か月も経たないうちにWindowsへ戻った。当時はデータ用ディスクまでEXT4にフォーマットしていたが、Windows上ではドライバーを入れないと読めず、互換性も良くなかったので、NTFSへ戻した。

この混乱した時期には、仮想マシンもだいたい使えるようになっていたので、LinuxはVMwareの中に置くようになった。

2021年

2021年は、おそらく最も広く触れた一年だった。Windows 11とLinuxのデュアルブートを作ろうと思っていた。最初はそうだったのだが、Windowsは起動後にしょっちゅうUbuntuのパーティションを壊し(起動後にfsckでディスクを修復する必要があった)、FedoraやKubuntuを入れてもパーティション破損問題は解決しなかったので、また単一システムに戻った。その後Arch Linuxも試したが、面倒すぎた。

9月、Termuxが私の視野を開いた。TermuxはAndroidスマートフォン上で端末を実行でき、Android自体のコマンドだけでなく、chrootに似たLinux環境、つまり制限がさらに多いProotを作ることもできる。root権限は不要だが、VNC、PulseAudio、さらにはX11 serverまで自分で設定しなければならない。感覚としてはArch Linuxを使っているのに似ているが、Prootの機能はやはり限られており、systemdは使えず、ハードウェアアクセラレーションを使うにもドライバーをコンパイルしなければならない。

Termuxを研究したことで、私はLinuxの低レイヤーの細部をさらに知ることになり、dockerを動かすためにcgroups対応のAndroid kernelをコンパイルすることさえした。

この頃にはpostmarketOSにも触れた。スマートフォン向けのLinuxディストリビューションで、Alpine Linuxという超小型ディストリビューションに由来する。ただし、使っているのはかなり珍しいmuslcで、ソフトウェアを移植するには難度がある。

Alpine Linuxはdocker方面で比較的人気があるようだ。クローズドなドライバーのAndroid上でLinuxを動かすには、libhybrisの技術を採用しないと多くのハードウェアドライバー問題にぶつかる。しかしUbuntu touchのようなものだと、少し継ぎ接ぎ怪物めいた感じがする。

Microsoftが出したWSL2もだいたい成熟してきた。ただ私はchrootのように制限が多いシステムはあまり好きではない。処理すべき問題が多すぎるので、おとなしく仮想マシンを開くほうがよい。

2022年

2022年、私はまたUbuntuをメインシステムに戻した。学校と個人の独学による努力のもと、Windowsプラットフォーム上ではすでに主流の文書作成・美編ソフトウェアを学び、基本概念を把握していた。そこで一学期をかけて「Linuxへ移行」した。Windowsという比較的安定したプラットフォーム上でWindows版のオープンソースソフトウェアを多く使い、仮想マシンにも慣れ、準備が終わればほぼ痛みなくLinuxへ移行できる。

ただしその前に、まず一週間ほどManjaro KDEを試した。見た目はきれいだったが、やはりAURでソフトウェアをインストールする方式に慣れなかったし、Manjaroのソフトウェアリポジトリは完全にArch Linuxのものでもないので、問題解決がさらに難しくなる。

最後はおとなしくUbuntu 20.04に替えた。

美工・描画方面にはすでにAdobeの代替案がある:GIMP、Kritia、Kdenlive。文書作成はWeb版Oficeを使う。

ゲーム方面では、私が主に遊ぶ大型ゲームであるWar Thunderは特に問題ない。ただしMinecraft統合版は、おそらく本当にAndroid版でしか遊べない。

現在の考えとしては、本当にWindowsソフトウェアを使う必要があるなら、KVMアクセラレーション付きの高効率Windows仮想マシンも使えるので、Ubuntuをメインシステムにしても問題ない。

いつかVisual Studioが必要にならない限りは……はは、LinuxにはVS Codeしかない。

わけがわからないことに、毎年PCを再インストールしている。今年はうっかりGithubでのサイト構築データまで失ったので、今後はどんな理由であれ、長期保存する文書は必ずデータ用ディスクに置くべきだ。互換性を考えると、データ用ディスクはやはりNTFSを使う。

今はLinuxでコマンドを打つときの警戒心が高くなり、起動ディスクを作ろうとして別のデータディスクをフォーマットしてしまう惨劇はもう起こらない。GUIプログラムで処理するのも、多少は保険になる方法だ。

デスクトップ環境はデフォルトのGnomeを維持すればいい……Manjaro KDEには触れたが、Gnomeのシンプルな風格も悪くない。

自由ソフトウェアへの全面移行はここから始まる
#

なぜLinuxを使うのか?まずFSF(Free Software Foundation) の自由ソフトウェアの定義を見てほしい:

「自由ソフトウェア」とは、ソフトウェアがユーザーの自由、そしてコミュニティの自由を尊重することを意味する。大まかに言えば、それはユーザーがそのソフトウェアを実行、複製、配布、研究、変更、改善する自由を持つことを意味する。

FSFの理念に賛同し、プライバシーのため、安全のため、そして何より自由のために、四年かけて熟成させた末、全面的にLinuxへ転換することを決めた。つまり、PCとスマートフォンのOSはどちらもLinuxでなければならず、その上で動くソフトウェアも大部分が自由ソフトウェアでなければならない。さらにはPC周辺機器(ペンタブレット、ネットワークカード)などもLinuxフレンドリーでなければならない。Linuxがサーバーにしか存在できないわけではなく、同時にデスクトップシステムとしても使えることを証明するためだ。

身分を言うなら、私はせいぜいアマチュアのプログラム開発者にすぎない。PCとスマートフォンの日常用途は、依然として執筆、オフィス作業、美工であり、たまに少しゲームをする程度だ。

ではLinuxへ切り替えて見つけたこと、学んだことを話していこう。いくつかの部分に分ける。以下で言及するソフトウェアには参考用のリンクを付けてある。

PCには自由なシステムを採用する
#

PCスペック:i5-7400 + Nvidia GTX1050Ti、美光500GB SSD + 16 GB RAM。

現在ディスク上にはUbuntu一つしかない。デュアルブートはLinuxを使ううえで何の利点もなく、人をずっとWindowsに入りたくさせるだけで、しかもWindowsはしょっちゅうLinuxパーティションを破壊する。

ディストリビューションにUbuntu + Gnomeを採用している理由は、使っている人が多いからで、GUIと端末を使う比率はおよそ半々だ。

Ubuntuはユーザーを監視する汚いことをしたと非難されたことがあり、また我が道を行くところもある。たとえばSnappyを強く推し、Flatpakに対抗している(後者は大部分のディストリビューションで採用されている)。それでも私は、メインPCではUbuntuを使うのがよいと思っている。仕事と娯楽のバランスを得るためだ。各ディストリビューションに共通する概念を十分に把握したら、いずれUbuntuを離れてGentooやLFSを学べるかもしれない。

一方、もう一台のG41チップセットのマザーボードを搭載した古いPCでは、私はずっとディストリビューションを切り替えている。そこでArch Linux、Fedora、openSUSEを試し、Flatpakを使って各ディストリビューションにおける常用ソフトウェアの差異を埋めている。どこかのパッケージ版が古いという問題が起こらないようにするためだ。

それでもWindowsを使わなければならない時はある。たとえば他人のROM焼き問題に答える時、あるいは教授がVisual Studioを使えと言う時だ。この時の私の解決策はQEMU KVM仮想マシンで、Linux上での効率はVMwareやVirtualBoxよりずっと速い。

こうして状況は逆転した。過去数年はLinuxをWindowsプラットフォーム上の仮想マシンに閉じ込め、たまに遊ぶものとして扱っていた。今は日常のメインがLinuxとなり、Windowsは仮想マシンの中に監禁され、Line PC版のような「頑固ソフト」をたまに開くために使うだけになった。

ハードウェアへの要求はノートPC/変形タブレットにも拡張できる。今後ノートPCを買うなら、キーボードの光り方を駆動したり画面の色を調整したりするためだけに、Windowsしかサポートしないハードウェアを山ほど買うことはないだろう。だからSurfaceは一見良さそうなタブレットだが、第一候補ではない。

小結:今のPCにはメインシステムが一つだけあり、その他のシステムはすべて仮想マシンの中に閉じ込めている。マルチブートは人を気を散らせるだけだ。

自由ソフトウェアへ全面移行する
#

多くのものは自由ソフトウェアで代替できる。たとえ業界や学術機関が採用しなくても、独学や自用ならできる。

注意すべきなのは、オープンソースソフトウェアは自由ソフトウェアと完全に等価ではないということだ。ただし、この基準は現時点ではまだ厳しすぎる。

2021年に6か月をかけて正式にLinuxへ移行する計画を始めた。そこでWindows 11上で段階的に自由ソフトウェアを使い、OfficeやAdobeの美工ソフトウェアから徐々に切り離し、それらを「本当に緊急のとき、他人から送られたファイルが開けないときだけ使うもの」にした。

これらはどれも自由ソフトウェアで置き換えられる。Officeで新しい文書を作るならLibreOfficeを使えばいい。ただし論文は教授に見せる必要を考慮して、今でもWeb版Wordで編集している。

画像編集は主にGIMP、Kritia、Kdenliveで代替している。

GIMPにはスマート塗りつぶし機能があり、画像制作や修正ができ、漫画の中国語化もできる。フォントは主に"NotoSans CJK"を使う。

KritiaはPhotoshopの代わりに描画に使っている。そのためにペンタブレットも蒙恬からワコムに替えた。そうすればコミュニティが提供するドライバーをインストールできるからだ。

Kdenliveは、字幕付けを含め、私のYouTube動画編集作業の大部分を十分こなせる。威力導演や会声会影レベルの編集ソフトを代替できる。

モデリングが必要ならBlenderを使う。Blockbenchのモデルを処理するにも十分すぎるし、時には少し動画特效も作れる。プログラムを書くならコンパイラーとGNU Nanoがあれば書ける。クロスプラットフォームIDEとしてはQT CreatorVS Codeも使える。

ブラウザーはWindows時代にはChromeからEdgeへ移り、その後Firefoxに替えた。Firefoxは現在、市場ではむしろ弱勢で、多くのWebページはFirefoxで見ると正常に動かない。たとえばImgurでドラッグしてアップロードできないなどだ。しかしFirefox Syncはなかなか良く、各プラットフォームにあるので使い続けている。艦隊Collectionなど特定のサービスで遊ぶ時だけChromiumを開く。

FSFはインターネットサービスの利用は自由ソフトウェアの範疇には含まれないと考えているが、それでもネットサービスの変化について少し話しておく。

Googleが私のクラウドをスキャンするので、重要なデータはMEGAへ移し、電子メールはProtonMailに替えた。

ストリーミングサービスは選びようがない。なにせ著作権物だからだ。現在はApple Musicだけ契約してロスレスを聴いている。DRMは自由を損なうものではあるが、どうしようもない。マイナーな音楽は今でも海賊版flacを取りに行かなければならない……物理CDを買うのは大工事だ。

ソーシャルメディアからはまだ離れられないが、LBRYMatrix/IRCなどのプラットフォームに触れた後、もっと普及させてもよいと感じた。特にLinux開発者はIRCでチャットするのが大好きだ。これらはDiscord、Telegramのような比較的不自由な通信サービスを置き換えるために使えるかもしれないし、これらのサービスへアクセスするクライアントも、なおさらオープンソース版を採用すべきだ。

小結:必要でない限り、私はWindows仮想マシンを開かないし、クローズドソフトウェアも使わない。たとえLinux版があっても同じだ。ソフトウェアによってはWeb版だけで解決できるものもあり、その場合は「ソフトウェアを使う」というより「サービスへアクセスしている」と見なすことがある。

Linux上でのゲーム対応状況
#

ゲームは自由ソフトウェアの領域では少し微妙だ。自由でオープンソースなゲームを遊ぶことにこだわる人は少ないからだ。

私が主に遊ぶゲームはMinecraft統合版、艦隊Collection、War Thunderだ。

艦隊Collectionはオンラインゲームなので問題ない。HTML5対応ブラウザーなら遊べる。ただし厳密に言えば、艦隊Collectionには「不自由なJavaScript」を実行している疑いがある。コードが難読化されているためで、以前は解析プレイヤーのFlatchiが皆のために解読してくれていた。

FSFは"LibreJS"を提供しており、Firefoxと組み合わせて使う。ただし基本的にLibreJSを入れると、開けるWebページはIE時代のページくらいしか残らない。

Minecraft Java版はクロスプラットフォーム対応が比較的良い。統合版はLinuxでは少し問題があるが、遊べないわけではない。Java版ランチャーにはオープンソースのMultiMCがあり、Modとバージョン管理に非常に便利だ。

Minecraftといえば、実はオープンソース版のMinetestが代替として使える。同じく高度にモジュール化されているが、人数は比較的少なく、海賊版と誤解されやすい。

War Thunderは数少ないクロスプラットフォームの大型マルチプレイヤーゲームで、Steam起動に依存する以外は大きな問題がない。

一部の古いWindowsゲームはWineで起動できるので、ゲームを遊ぶこともそれほど大きな問題ではない。必要ならGPUパススルーをWindows仮想マシンに渡し、その中でゲームを実行することもできる。

小結:私が遊ぶゲームはいずれもクロスプラットフォーム能力があり、スマートフォン側も同じだ。そのためLinuxへの転換に重荷はない。

自由でオープンソースなスマートフォンへ切り替える
#

AndroidもLinuxベースではないのか?AndroidとGNU/Linuxにはまだ大きな隔たりがある。Androidには独自のCライブラリがあり、スマートフォンメーカーは多くのクローズドドライバーを使う。AndroidとGoogleサービスの結び付きもますます強くなっている。だからAndroidをLinuxスマートフォンの一種と見なすべきではない。

iPhoneは言うまでもなく、エコシステム全体が超クローズドだ。だから以前iPhoneやiPadに夢中になったことがあっても、今後はそれをメイン機の選択肢とは見なさない。Appleがどれほどプライバシーと安全を保障しても、自由がなければ私はこのシステムを使わない。

ROM焼きを覚え、Android上にTermuxLinux Deployを入れてLinuxで遊ぶようになってから、Linuxシステムについてさらに多くを知るようになった。

そこで、ハードウェアからソフトウェアまで自由なスマートフォン、つまりPinePhoneを購入した。これには多くのGNU/Linuxディストリビューションをインストールできる。関連記事:開箱:Pine64 PinePhone,真Linux手機詳細介紹

実際に使ってみると、PinePhoneはごく基本的な通信需要を満たせる。postmarketOSMobianはどちらも面白いスマートフォン向けLinuxディストリビューションだ。ただし前者はmuslCを採用しており、主流Linuxから見ると比較的珍しい選択だ。にもかかわらず、このプロジェクトは大量の古いAndroidスマートフォンをサポートしており、開発に参加する人も比較的多い。

しかし、PinePhoneは現代人のスマートフォン習慣に合っていない。特にバッテリー持ちだ。

数日間メイン機として使った後、やはりAndroidスマートフォンへ戻った。以前はXiaomiでROM焼きをするのが面白いと思っていたが、Sony Xperia 5 IIは今のところ私の好みに合っている:イヤホンジャック、悪くない外部スピーカー、ノッチなし、カメラ・録画・収音が良い、広色域ディスプレイ、4000mAhの電池容量、軽くて小さい。

残念ながら、PinePhoneはまだ以上の需要を満たせない。主な理由はハードウェア性能が低すぎることだ。

しかしAndroidスマートフォンのソフトウェア選択も変化し始めている。ROM焼きではPixel Experienceを選ばず、LineageOSを選び、microGをインストールしてGMSフレームワークを置き換え、Googleサービスへの依存を下げようとしている。

さらに、ソフトウェアはできるだけF-Droidから探す。自由ソフトウェア理念に賛同する人なら絶対に見逃せない。ただ残念なことに、スマートフォン上で使いやすく自由な音声・映像編集ソフトウェアはまだ一つもなく、結局Google Playから有料または広告だらけのクローズドソフトウェアをダウンロードするしかない。

スマートフォンゲームについては、私が遊ぶのは前節で触れた数本だけで、それ以外のスマホゲーは遊んでいない。

小結:Linuxスマートフォンを使うことで、私は自由ソフトウェアへの理解を深め、それをAndroidスマートフォン上でも実践するようになった。たとえシステムそのものが十分に自由ではなくても、自由なLinuxシステムへ無限に近づけることはできる。

その他、改善したいところ
#

上で触れた移行問題について、ここで少し補足し、まとめておく。

LinuxはPC側では確かに日常のメインとして使えるが、スマートフォンはまだ成熟していない。

予算があるなら、私はもうNvidiaグラフィックカードを買わない。Linuxへのサポートが非常に悪く、死んでもオープンソース化しない。コミュニティが開発したNouveauドライバーはリバースエンジニアリング由来で、それほど安定しておらず、画面のフリーズを引き起こしやすい。そのため私はまだX11からWaylandサーバーへ切り替える勇気があまりない。

以前はゲームのレイトレーシングを体験してみたいと思っていたが、今はドライバーの開放性のほうが重要だと思っている。だから将来はAMDかIntelを選ぶだろう。

外付けハードウェアについては、ペンタブレットの対応は悪くない。しかしUSB Wifiネットワークカードを買う時、プラグアンドプレイで使える機器を出すメーカーが本当に少ないと感じた。多くは別途ドライバーをコンパイルしなければならない。台湾では輸入が少ないせいなのだろうか?PCIEインターフェイスのネットワークカードはメインラインカーネルのサポートを得やすいが、各大手メーカーのUSBネットワークカードは、サードパーティドライバーをインストールしなければならない。そうでなければプロプライエタリドライバーだ。どうやらMediaTekのものだけが、別途ドライバーをインストールしなくても使えるようだ。(出典)

インターネットサービスについては、Googleフォトにはもう新しい写真をアップロードしていない。写真はハードディスクに保存しており、将来は自前NASの方向へ進むつもりだ。実際のところ、現在もメモ、カレンダーはGoogleサービスにかなり依存している。Proton社のものを使うのも長久の計ではなく、最後にはこれらすべてをself-hostingで解決しなければならない。

スマートフォンでPinePhoneを使うことは、なお社会実験および普及活動に近い。PinePhoneを使い続ければ原始人になってしまう。

私はハードウェアを購入することでスマートフォンLinuxの発展を支持しているだけで、実際に一些APP的使用心得:PinePhone日常使用與其他用途も書いた。PinePhoneはRaspberry Piに似ていて、いじり方はまだたくさんあるからだ。

しかし日常利用は、今のところ本当にまだ無理だ。PCのように思いのままにはできず、性能も足りない。

自由ソフトウェアを使うことは、世界に逆らっているようにも見える。しかし私は一人ではない。こうした問題に注目すればするほど、本質の所在を意識するようになる。Scott McNealy談及的下賊船的代價は小さければ小さいほどよい。そうでなければ自分の権益を犠牲にし、さらには企業や組織全体を危険にさらすことになる。

最後に、自由ソフトウェアを普及させる習慣を身につけることは、皆にMicrosoft Officeを捨てるよう勧めるところから始め、段階的にハードウェアへ広げていけばよい。自分のデジタル人権を意識した人が、自分自身に対して、そして同時に人々の福祉に対して貢献できるようにするためだ。

私が知っていることは多くない。しかし自由を支持する理念は徐々に自己の哲学として内面化されてきた。だからこそ、主流ではなく、盲従しない選択肢に触れることには、やはり必要性がある。


最後までお読みいただきありがとうございます。本サイトでは公開コメント欄を設けていません。私はソーシャルな反応やアクセス数を追い求めるためではなく、自分の考えを誠実に探求するために文章を書いています。記事を丁寧にお読みいただいたうえで、ご感想やご意見をお寄せいただければ幸いです。誤字・誤り・技術的な問題などを見つけた場合、またはフィードバックを共有したい場合は、Aboutページに記載しているメールアドレスまでお気軽にご連絡ください。