有力な Linux ディストリビューションが systemd を 採用すると、反対派はディストリビューションをフォークして新しいプロジェクトを開始しました。では、systemd 以外のディストリビューションを探している場合、どのような選択肢があるでしょうか?見てみましょう。
systemd: 簡単な要約
歴史的に、Linux システムの起動シーケンスは、 System V Unix (SysV) で導入された初期化システムのレプリカでした。 SysV init システムは Unix の哲学 に準拠しています。人々が Unix の哲学に言及するとき、彼らは通常、それを「1 つのことを実行し、それをうまく実行する」というよく知られた響きに還元します。そして、それは最初のプロセスとして開始され、次に他のプロセスを開始することでした。時々 ゾンビも淘汰されまし た。
SysV init は十分にその役割を果たしましたが、あまり効率的ではありませんでした。プロセスを次々とシリアルに開始しました。並列性はありませんでした。この設計がスループットのボトルネックとなっていました。これは、最新のハードウェアの速度向上によって多かれ少なかれ隠蔽されており、Linux コンピュータの起動に果てしなく長い時間がかかったわけではありません。しかし、技術的には、もっと効率的にすることができたはずです。
Linux の他のすべてと同様に、ユーザーには選択の余地がありました。代替品も用意されていました。有能なユーザーは、プロセスを並行して開始し、好みの方法で動作する別の init システムを使用するように Linux コンピューターを構成できます。
オプションのいくつかは次のとおりです。
- Upstart : これは Canonical によって開発された取り組みで、 Centos や Fedora などの Red Hat ディストリビューション ファミリに採用されました。 Upstart は現在開発されていません。
- runit : これは、 FreeBSD およびその他の BSD 派生製品だけでなく、 macOS 、 Solaris 、および Linux システム上で実行される独立したクロスプラットフォーム プロジェクトです。これは、デフォルトの初期化システムとして、またはいくつかの Linux ディストリビューションのインストール時オプションの 1 つとして採用されています。
- s6-Linux-init : s6 は、SysV init のシリアルな性質に対処し、Unix の哲学に忠実であり続けようとする SysV init の代替品です。
systemd は SysV init のもう 1 つの代替品ですが、さらに多くの機能が含まれています。これには、物理デバイス、ユーザー ログイン、ネットワーク名解決などを管理するモジュールが含まれており、70 を超えるバイナリと 140 万行を超えるコードで構成されています。比較すると、 Arch Linux の SysV init のコード量は 2,000 行未満です。明らかに、systemd は Unix の哲学を完全に放棄しました。それだけでなく、 ポータブル オペレーティング システム インターフェイス (POSIX) 標準を完全に無視するというさらなる異端を犯しています。
systemd の議論は、私がこれまでオープンソース コミュニティで目撃した中で最も白熱した議論の 1 つです。 (そして、それは何かを語っている。) もちろん、同様に声高に声高に主張する体制支持派と非体制派だけが関係者ではない。私は、systemd が存在することさえ知らない多くの人々と話をします。また、systemd について聞いたことはあるものの、意見を形成するほど詳細は知らない多くの人々と話をします。率直に言って、彼らは気にしていません。彼らはただ物事が機能することを望んでいるのです。
systemd ベースのディストリビューションを使用しているかどうか不明な場合は、次のコマンドを実行してください。
ps
プロセス ID 1 に対する コマンド 。
ps -p 1
応答に「systemd」が含まれている場合は、明らかに systemd を使用していることになります。何か他のもの (通常は「init」) が表示されている場合は、そうではありません。
哲学、アーキテクチャ、エンジニアリング品質
さまざまな人がさまざまな理由で systemd に反対します。一部の人にとって、それは伝統的な Unix 哲学の無視です。これは必須の教義ではありませんが、「Unix のやり方」です。そして、それは時の試練に耐えてきた方法です。パイプラインで出力が次のプロセスの入力になるように パイプ接続できる小さなユーティリティは、 Linux にその感触と特徴を与える核心部分です。これは、1 回限りの要件や短期間の要件に対応する創造的なソリューションを迅速にまとめるのに特に適しています。
他には、systemd の背後にある設計上の決定、つまり「ソフトウェア アーキテクチャ」について疑問を呈した人もいます。システムの起動に関係のない機能をすべて含めるのはなぜでしょうか?他の要素を更新または改善する必要がある場合は、そのまま実行してください。しかし、なぜすべてを 1 つの大規模な相互リンクされたアプリケーション スイートに統合するのでしょうか?
バグ修正 全般、特に 共通の脆弱性とエクスポージャー に対する systemd 開発者の無遠慮な態度について懸念が提起されています。コードの行数が増えるほど、対処する必要があるバグも多くなります。これらのバグがセキュリティ関連であり、独自の CVE 番号が割り当てられている場合は、昨日それらに対処する必要がありました。
systemd ベースの Linux ディストリビューションをやめたい理由が何であれ、問題は次はどこに行くかということです。もしかしたら、まったく新しいことに挑戦してみたいと思っているかもしれません。新しいディストリビューションの詳細を知ることを楽しみにしているかもしれません。一方で、さらに学習を進める時間も意欲もないかもしれません。できるだけ使い慣れたシステムをできるだけ早く復旧して実行したいと考えています。
Debian ファミリー: Devuan
Debian、または
Ubuntu
やその親戚全体のような無数の Debian 派生製品の 1 つを使用している場合は、
Devuan
をチェックするのが理にかなっています。 Devuan は Debian からフォークしたものであるため、ほとんどすべてが馴染みのあるものになります。デフォルトのシェルは Bash で、パッケージ マネージャーは
apt
です。 Devuan は 2014 年に Debian から分岐しました。堅牢で安定しており、活発なコミュニティがあります。
デスクトップ環境 として GNOME を 使用したい場合は、少し追加の作業を行う必要があります。 GNOME は、インストール中にデスクトップの選択肢として提供されません。 MATE 、 Cinnamon 、 XFCE などが利用可能ですが、GNOME はシステムを立ち上げて実行した後で手動でインストールする必要があります。
GNOME は、systemd コンポーネント ( udev ハードウェア デバイス マネージャーと logind ログイン マネージャー) にいくつかの依存関係があります。これらの代替品は、 Gentoo Linux 開発者によって作成されました。
eudev と elogind を使用すると、 systemd に強く依存しているアプリケーションが、systemd がインストールされているかのように動作できます。反systemd純粋主義者もこれに反対し、systemdへのハード依存関係をコード化したソフトウェアに迎合することはsystemdを実行することとほぼ同じくらい悪いことであると主張しています。
Devuan の init システムの選択肢は SysV init または OpenRC です。
Arch ファミリー: Artix Linux
Arch と Manjaro の ユーザーは、 Artix Linux を試してみるとよいでしょう。 Artix は、Arch-OpenRC プロジェクトに基づいて構築された Arch のフォークです。最初のリリースは 2017 年に行われました。
Arch Wiki には systemd を OpenRC に置き換える手順が 含まれていますが、これは正式にサポートされていません。同様に、OpenRC サポートが Manjaro から削除された ため、systemd フリーの Manjaro 派生ディストリビューションは存在しません。
したがって、Arch ユニバースに留まりたい場合は、別の init システムを使用する Artix のような Arch ベースのフォークを選択する必要があります。 Artix は確かにその面で貢献します。インストールプロセス中に、3 つの異なる init システムから 1 つを選択します。選択肢は、OpenRC、runit、s6 です。
Cinnamon、MATE、XFCE など、期待されるデスクトップ フレーバーがすべて利用可能です。 GNOME および i3 タイル ウィンドウ マネージャーを サポートする バージョンもテスト中 です。
パッケージマネージャーは
pacman
です。もちろん、これを使用して
pamac
、
yay
、またはその他の
Arch User Repository
(AUR) ヘルパーをインストールすることができます。デフォルトのシェルは Bash です。
systemd を使用しない Arch の好きなところはすべてこれです。
Red Hat と Fedora: PCLinuxOS
systemd プロジェクトは Red Hat の取り組みです。主な systemd 開発者は Red Hat の従業員です。 Linux 世界の多くの人にとって、「企業」Linux 陣営から出たものはすべて、たとえば、Red Hat、 Oracle 、 Intel 、 Canonical など、自動的に信頼されなくなるようです。
systemd は、とりわけ、Linux を組み込みオペレーティング システムのニーズに合うものに成形するための Red Hat の計画にほかならないと説明されています。 Red Hat が組み込みシステムに合わせたディストリビューションを必要とする場合、ディストリビューションを作成する方がはるかに簡単です。 Arch、Ubuntu、 OpenSUSE に追随するよう説得する必要はありません。
もちろん、systemd が存在するすべての理由は Red Hat にあるため、systemd なしでは Red Hat の派生製品を見つけることはできません。したがって、どこに移動しても、新しくて違うものに感じるでしょう。ただし、少なくとも Red Hat Package Manager (RPM) を使用するディストリビューションを使い続けたい場合は、PCLinuxOS を検討する必要があります。
PCLinuxOS プロジェクトは 、Mandrake が Mandriva になる 直前の、今はなき Mandrake Linux のフォークとして 2003 年に始まりました。 PCLinuxOS の最初のリリースは 2007 年に登場したため、systemd よりもはるかに古いものになります。
PCLinuxOS は「.rpm」ファイルを使用しますが、独自のパッケージ管理ソフトウェア
apt-rpm
を使用してファイルを操作します。これは、Debian 世界の
apt-get
コマンドをモデルにしています。 「.deb」ファイルの代わりに「.rpm」ファイルで動作する、変更されたバージョンの
synaptic
も提供されています。
PCLinuxOS は SysV init を使用し、インストール中に Plasma 、MATE、および XFCE デスクトップ環境の選択肢を提供します。 GNOME など、他のデスクトップ環境を提供する「コミュニティ リマスター」エディションがいくつかあります。デフォルトのシェルは Bash です。
いくつかの VM を起動する
Linux ディストリビューションを使いこなせるかどうかを確認する最善の、そして本当に唯一の方法は、それを試してみることです。これを行う最も簡単な方法は、仮想マシンを使用することです。現在の Linux インストールはそのまま残ります。試してみたいと思うものが見つかるまで、好きなだけ Linux ディストリビューションをインストールして試すことができます。 VirtualBox は これに最適です。
新しいディストリビューションをインストールする準備ができたら、現在のインストールのバックアップをいくつか作成し、それから新しい Linux をインストールします。





