GNUGuixシステム

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

Guixシステム
Guixのlogo.svg
Guixsd-xfce-icecat-emacs.png
XfceGNU IceCatGNUEmacsを実行しているGuixシステム
デベロッパーGNUプロジェクト[1] [2]
OSファミリーLinuxUnixライク
動作状態現在[3]
ソースモデル自由ソフトウェアFSDG
最新のリリース1.3.0 [4] ウィキデータでこれを編集する /2021年5月11日
マーケティングターゲットデスクトップ
パッケージマネージャーGNU Guix
プラットフォームx86_64、i686、aarch64、arm7、powerpc64le
カーネルタイプモノリシック:Linux-libre(運用)マイクロカーネル:GNU Hurd(開発中)
ユーザーランドGNU
ライセンスGPL
公式ウェブサイトguix .gnu .org

GNUGuixSystemまたはGuixSystem [5] [6](以前のGuixSD [7])は、GNUGuixパッケージマネージャーを中心に構築されたローリングリリース無料オープンソース Linuxディストリビューションです。[8] [9]宣言型のオペレーティングシステム構成[10]を可能にし、簡単にロールバックできる信頼性の高いシステムアップグレードを可能にします。[11] GNU Shepherdinitシステム[12] [13]Linux-libreカーネルを使用し、開発中のGNUHurdカーネルをサポートします [14] 2015年2月3日、このディストリビューションはFreeSoftwareFoundationの無料Linuxディストリビューションのリストに追加されまし[15] GuixパッケージマネージャーとGuixシステムは、それぞれNixパッケージマネージャーとNixOSからインスピレーションを得ました。[16]

アーキテクチャサポート

次のCPUアーキテクチャがサポートされています:IA-32x64ARM7AArch64POWER9[17] [18] [19]

機能

システムサービス

システムサービスはGuixSystemのコア機能であり、ユーザーがデーモンとバックグラウンドサービスの構成を宣言的に構成し、関連する構成を簡単に指定できるようにします。

これにより、ユーザーは単一の構成ファイル内でOS全体を宣言できます(たとえば、torプロキシ、sshdサーバー、および起動時に特定のポートでnginxを介してguix-webを提供するWebサーバーを使用できます)。

システムサービスは次のことができます:[20]

  • ファイルシステムにファイルを生成します(/ etc内のファイルなど一部のアプリケーションで必要)
  • デーモンを設定するためのコードを実行する
  • 特定のユーザーおよびグループアカウントを作成します(例:postgresqlのデータベースユーザー)

メンテナの一人であるリカルド・ウルムスは、このような拡張性について次のように説明しています。[20]

サービスは相互に拡張できます。これにより、たとえば、Webサーバー、ユーザーアカウント、アプリケーション固有のデーモン、データベース、udevルールなどをすべて1つのサービスタイプで必要とする複雑なアプリケーションをセットアップする方法を定義できます。

すべてのサービスはGuileスキームを使用して定義されています。[21]サービスのリストは増え続けており、1.0.0以降、サービスのリストには次のものが含まれています。[22]

  • 基本サービス:必須のシステムサービス。
  • スケジュールされたジョブ実行:mcronサービス。
  • ログローテーション:rottlogサービス。
  • ネットワークサービス:ネットワーク設定、SSHデーモンなど。
  • Xウィンドウ:グラフィック表示。
  • 印刷サービス:ローカルおよびリモートのプリンターサポート。
  • デスクトップサービス:D-Busおよびデスクトップサービス。
  • サウンドサービス:ALSAおよびPulseaudioサービス。
  • データベースサービス:SQLデータベース、Key-Valueストアなど。
  • メールサービス:IMAP、POP3、SMTP、その他すべて。
  • メッセージングサービス:メッセージングサービス。
  • テレフォニーサービス:テレフォニーサービス。
  • 監視サービス:監視サービス。
  • Kerberosサービス:Kerberosサービス。
  • LDAPサービス:LDAPサービス。
  • Webサービス:Webサーバー。
  • 証明書サービス:Let'sEncryptを介したTLS証明書。
  • DNSサービス:DNSデーモン。
  • VPNサービス:VPNデーモン。
  • ネットワークファイルシステム:NFS関連サービス。
  • 継続的インテグレーション:Cuirassサービス。
  • 電力管理サービス:バッテリー寿命を延ばします。
  • オーディオサービス:MPD。
  • 仮想化サービス:仮想化サービス。
  • バージョン管理サービス:Gitリポジトリへのリモートアクセスを提供します。
  • ゲームサービス:ゲームサーバー。
  • その他のサービス:その他のサービス。

GNUShepherdinitシステム

Guix Systemは、GNU Daemon Shepherdをinitシステムとして使用します。これは、Guixと連携して開発され、Guileでも記述されています。以前は「dmd」と呼ばれていました。これは「デーモンを管理するデーモン」または「デーモンを管理するデーモン」の略ですが、DigitalMarsDコンパイラとの衝突を避けるために名前を変更まし[23]

Shepherdは、ユーザースペース機能をサービスとして非同期的に提供します。これは、Shepherdの下で、何らかの定義された方法でベースオペレーティングシステムを拡張するためにShepherdが使用するためにエクスポートされるジェネリック関数オブジェクト データ型です。systemdとは対照的に、userspaceshepherdプロセスはそのユーザーとして実行されます。ユーザースペースの初期化のシェパードモデルの中核となるのは、拡張の概念です。これは、サービスが他のサービスに階層化されるように設計され、必要に応じてより複雑な、または特殊な動作でそれらを拡張する構成可能性の形式です。[24]これは、多くの最新のinitシステムに見られるインスタンス化ベースの依存関係を表し[25]、システムをモジュール化するだけでなく、サービスが他のサービスと任意の方法でさまざま に対話できるようにします。

Shepherdは、システムのメール転送エージェント(MTA)をインスタンス化するすべてのオブジェクトなど、関連するサービスオブジェクトのクラスを介した動的ディスパッチを可能にするいわゆる仮想サービスも提供します。[26] Shepherdデーモンを介して管理されるシステムは、ユーザースペースを有向非循環グラフとして表すことができます。「system-service」(起動と初期化の初期段階を担当)をルートとし、その後に初期化されるすべてのサービスを拡張機能として使用します。他のサービスを介して直接または一時的にシステムサービスの機能。[24] [27]

GNU Shepherdは、 Guileスキームで記述および構成されているため、システム管理者が高度にプログラムできるようになっていますが、特権のないデーモンやサービスのユーザーごとのプロファイルを管理するためにも使用できます。[28]そのサービスと構成はオブジェクト指向のSchemeコードとして一律に保存され、サービスのコアセットは基本的なGuixシステムで提供されますが、[29]任意の新しいサービスは柔軟に宣言でき、GuileのオブジェクトシステムであるGOOPSを介して、既存のサービスは、インスタンス化時に指定された方法でサービスを動的に書き換えるようにシェパードに依頼することにより、ユーザーの裁量で再定義できます。[30] [31]

GNUShepherdは元々GNUHurdで動作するように設計されていました、後にGuixSystemに採用されました。[32]

リリースと安定性

これまでのGuixシステムには、Guixと共有される不安定な開発gitリポジトリ[33]しかありませんが、ユーザーまたは組織は、チャネル機能を介して安定したリリースチャネルを自分でセットアップできます。[34]

更新

Guixのパッケージは、パッケージメンテナのボトルネックがないため、一般的に非常に最新です。コミュニティの承認を条件として、誰でも更新を提供でき、プロセスはguixrefreshなどのツールによって支援されます。[35]

gitリポジトリへの変更は、コミュニティメンバーによってピアレビューされ、コミットアクセス権を持つ45人の1人によってコミットされます。[36]実際には、これらのビルドはタイプミスまたは同様のエラーのためにユーザーにシステムの破損を引き起こすことがありますが、これらは多くの場合数分以内に解決されます。Guixプルの動作方法は、ユーザーがその間機能しているシステムを維持することを意味します。

ロールバック

システムの更新によってユーザーに壊れたシステムが残った場合、ユーザーは個々のパッケージとシステム全体の状態を簡単にロールバックできます。[37]これは、他のLinuxディストリビューションで非常に一般的な安定したチャネルが、バグを報告して数分待ってguixpullを介して更新しようとするユーザーには不要になったことを意味します

レセプション

DistroWatchWeeklyのJesseSmithは、GNU Guix System 0.15.0(当時はGuixSDという名前でした)をレビューし、「GuixSDには私が好きなパッケージマネージャーがあります」と述べましたが、ハードウェアサポートの制限とドキュメントの制限を批判しました。[38]それ以来、ドキュメントは、チュートリアル、ハウツーガイド、および例を含む6つの言語 のビデオ[39]とクックブック[40]で拡張され、改善されています。

も参照してください

参照

  1. ^ GuixSDコントリビューター。「About—GuixSD」gnu.org2017年4月12日にオリジナルからアーカイブされました2017年3月16日取得 {{cite web}}|author=一般名があります(ヘルプ
  2. ^ 「GNU/LinuxFAQ-GNUプロジェクト-フリーソフトウェアファウンデーション」フリーソフトウェアファウンデーション2013年9月7日にオリジナルからアーカイブされました2017年5月14日取得
  3. ^ 「ダウンロード—GNUGuix」2020年8月1日にオリジナルからアーカイブされました2019年11月3日取得
  4. ^ ルドビク・クールテス; "GNUGuix1.3.0がリリースされました" ; 著者名文字列:Maxim Cournoyer; 発行日:2021年5月11日; 取得:2021年8月27日。
  5. ^ 「About—GNUGuix」guix.gnu.org 2021年12月11日取得
  6. ^ 「無料のGNU/Linuxディストリビューション」{{cite web}}:CS1 maint:url-status(link
  7. ^ 「Guixとは何ですか?」(メーリングリスト)。gnu-system-discuss。2015年1月15日。2020年8月7日のオリジナルからアーカイブ2020年8月3日取得
  8. ^ 「無料のGNU/Linuxディストリビューションのリスト」2020年7月6日にオリジナルからアーカイブされました2015年2月3日取得
  9. ^ 「Guix:新しいパッケージマネージャーとGNUディストリビューション」マイケル・ララベル2015年2月2日にオリジナルからアーカイブされました2015年2月3日取得
  10. ^ 「構成システムの使用」gnu.org2019年4月29日にオリジナルからアーカイブされました2019年4月27日取得
  11. ^ 「パッケージ管理」gnu.org2019年5月21日にオリジナルからアーカイブされました2019年4月27日取得
  12. ^ 「プログラミングインターフェース(GNU Guixリファレンスマニュアル)」guix.gnu.org2020年8月7日にオリジナルからアーカイブされました2020年8月3日取得
  13. ^ 「Guix:新しいパッケージマネージャーとGNUディストリビューション-Phoronix」www.phoronix.com2018年7月6日にオリジナルからアーカイブされました2020年8月3日取得
  14. ^ 「GNUGuix&GuixSD 0.12.0がリリースされました」(メーリングリスト)。guix-devel。2016年12月21日。2020年8月1日のオリジナルからアーカイブ2020年8月3日取得
  15. ^ 「FSFは承認されたディストリビューションのリストにGuixシステムディストリビューションを追加します」フリーソフトウェアファウンデーション。2015年2月3日。2015年2月3日のオリジナルからアーカイブ2015年2月3日取得
  16. ^ 「GNUGuixリファレンスマニュアル-謝辞」{{cite web}}:CS1 maint:url-status(link
  17. ^ 「ダウンロード」gnu.org2021年10月6日にオリジナルからアーカイブされました2021年10月6日取得
  18. ^ MathieuOthacehe。「GuixSDのARMv7への移植」2017年12月25日にオリジナルからアーカイブされました2018年2月17日取得
  19. ^ マルシッチ、クリス; Le Bouter、Léo(2021年4月12日)。「新しくサポートされるプラットフォーム:powerpc64le-linux」2021年5月16日にオリジナルからアーカイブされました2021年10月6日取得
  20. ^ a b ウルムス、リカルド。「Re:Arch LinuxからGuixへの移行の準備を手伝ってください」(メーリングリスト)。2020年8月1日にオリジナルからアーカイブされました2019年5月11日取得
  21. ^ "guix.git"git.savannah.gnu.org2019年5月11日にオリジナルからアーカイブされました2019年5月11日取得
  22. ^ 「サービス」gnu.org2020年8月1日にオリジナルからアーカイブされました2019年5月11日取得
  23. ^ 「guix-develメーリングリスト」2019年9月19日にオリジナルからアーカイブされました2016年11月5日取得
  24. ^ a b 「GNUGuixリファレンスマニュアル:サービス構成」GNUプロジェクト。2019年1月1日にオリジナルからアーカイブされました2016年11月5日取得
  25. ^ "systemd:ユニットの依存関係と順序"Fedoraマガジン。2020年8月1日にオリジナルからアーカイブされました2016年11月5日取得
  26. ^ 「GNUシェパードマニュアル:ジャンプスタート」GNUプロジェクト。2020年8月1日にオリジナルからアーカイブされました2016年11月5日取得
  27. ^ 「GNUGuixリファレンスマニュアル:シェパードサービス」GNUプロジェクト。2019年1月1日にオリジナルからアーカイブされました2016年11月5日取得
  28. ^ 「GNUシェパードマニュアル」GNUプロジェクト。2020年8月1日にオリジナルからアーカイブされました2016年11月5日取得
  29. ^ 「GNUGuixリファレンスマニュアル:サービス」GNUプロジェクト。2018年12月25日にオリジナルからアーカイブされました2016年11月5日取得
  30. ^ 「GNUGuixリファレンスマニュアル:サービスの種類とサービス」GNUプロジェクト。2019年1月5日にオリジナルからアーカイブされました2016年11月5日取得
  31. ^ 「GNUGuixリファレンスマニュアル:構成システムの使用」GNUプロジェクト。2019年4月29日にオリジナルからアーカイブされました2016年11月5日取得
  32. ^ 「GNU羊飼い」GNUプロジェクト。2016年2月12日にオリジナルからアーカイブされました2016年2月12日取得
  33. ^ 「Re:RFCプロシージャが必要です」(メーリングリスト)。2020年8月1日にオリジナルからアーカイブされました2019年4月27日取得
  34. ^ 「チャネル」gnu.org2019年5月7日にオリジナルからアーカイブされました2019年4月27日取得
  35. ^ 「guixrefreshの呼び出し」gnu.org2018年12月26日にオリジナルからアーカイブされました2019年5月16日取得
  36. ^ 「GNUGuix-要約:プロジェクトメンバーリスト」gnu.org2020年8月1日にオリジナルからアーカイブされました2019年4月27日取得
  37. ^ 「guixシステムの呼び出し」gnu.org2019年5月26日にオリジナルからアーカイブされました2019年4月27日取得
  38. ^ スミス、ジェシー。「Guixシステムディストリビューション0.15.0およびReactOS0.4.9」distrowatch.com(778)。2019年7月30日にオリジナルからアーカイブされました2018年8月30日取得
  39. ^ 「ビデオ」2020年8月1日にオリジナルからアーカイブされました2020年3月3日取得
  40. ^ 「クックブック」2020年8月1日にオリジナルからアーカイブされました2020年3月3日取得
  41. ^ 「About—GuixSD」www.gnu.org2015年12月27日にオリジナルからアーカイブされました2018年5月3日取得

外部リンク