GNU Guix Sistemi - GNU Guix System

Guix Sistemi
Guix logosu.svg
Guixsd-xfce-icecat-emacs.png
Guix Sistemi çalışıyor Xfce, GNU IceCat ve GNU Emacs
GeliştiriciGNU Projesi[1][2]
İşletim sistemi ailesiUnix benzeri
Çalışma durumuGüncel[3]
Kaynak modelÜcretsiz yazılım, FSDG
En son sürüm1.2.0[4] / 23 Kasım 2020; 8 gün önce (2020-11-23)
Pazarlama hedefiMasaüstü Bilgisayar
Paketleme yöneticisiGNU Guix
Platformlarx86_64, i686, kol[5]
Çekirdek tipMonolitik: Linux libre (operasyonel) Mikro çekirdek: GNU Hurd (geliştiriliyor)
UserlandGNU
LisansGPL
Resmi internet sitesignu.org/yazılım/ guix

GNU Guix Sistemi (Önceden GuixSD[6]) bir yuvarlanan sürüm GNU / Linux dağıtımı GNU Guix paket yöneticisi etrafında inşa edilmiştir.[7][8] Bildirime dayalı bir işletim sistemi yapılandırmasını etkinleştirir[9] ve kolayca geri alınabilen güvenilir sistem yükseltmelerine izin verir.[10] GNU Shepherd'ı kullanır içinde sistemi[11][12] ve Linux libre çekirdek, desteği ile GNU Hurd çekirdek geliştiriliyor.[13] 3 Şubat 2015'te dağıtım eklendi Özgür Yazılım Vakfı ücretsiz Linux dağıtımlarının listesi.[14]

Mimari desteği

Aşağıdaki CPU mimarileri desteklenmektedir: IA-32, x64, AArch32, AArch64[15] ve Nisan 2019'da için çalışmalar devam ediyordu POWER9 destek.[16]

Özellikleri

Sistem servisleri

Sistem hizmetleri, kullanıcının arka plan hizmetlerinin ve arka plan hizmetlerinin yapılandırmasını bildirimli olarak oluşturmasını ve ilgili yapılandırmaları kolayca belirtmesini sağlayan Guix Sisteminin temel bir özelliğidir.

Bu, kullanıcının tek bir yapılandırma dosyası içinde tüm işletim sistemini bildirmesine olanak tanır (örneğin, bir tor proxy, bir sshd sunucusu ve önyükleme sırasında belirli bir bağlantı noktasında nginx aracılığıyla guix-web sunan bir web sunucusuna sahip olmak).

Sistem hizmetleri şunları yapabilir:[17]

  • dosya sisteminde dosyalar oluşturur (bazı uygulamalar için gereklidir, örneğin / vb. dosyalar)
  • arka plan programlarını kurmak için herhangi bir kodu çalıştırın
  • belirli kullanıcı ve grup hesapları oluşturun (ör. postgresql için bir veritabanı kullanıcısı)

Yapımcılardan Ricardo Wurmus, genişletilebilirliği şu şekilde açıklıyor:[17]

Hizmetler birbirini genişletebilir, bu da örneğin bir web sunucusu, kullanıcı hesapları, uygulamaya özel arka plan yordamları, bir veritabanı, udev kuralları vb. Gerektiren karmaşık uygulamaları kurmanın yollarını tanımlamamıza olanak tanır - hepsi tek bir hizmet türü ile.

Tüm hizmetler Guile Scheme kullanılarak tanımlanmıştır.[18] Hizmetlerin listesi büyümeye devam ediyor ve 1.0.0'dan itibaren hizmetlerin listesi aşağıdakileri içeriyor:[19]

  • Temel Hizmetler: Temel sistem hizmetleri.
  • Zamanlanmış İş Yürütme: mcron hizmeti.
  • Günlük Döndürme: rottlog hizmeti.
  • Ağ Hizmetleri: Ağ kurulumu, SSH arka plan programı vb.
  • X Pencere: Grafik ekran.
  • Baskı Hizmetleri: Yerel ve uzaktan yazıcı desteği.
  • Masaüstü Hizmetleri: D-Bus ve masaüstü hizmetleri.
  • Ses Hizmetleri: ALSA ve Pulseaudio hizmetleri.
  • Veritabanı Hizmetleri: SQL veritabanları, anahtar-değer depoları vb.
  • Posta Hizmetleri: IMAP, POP3, SMTP ve hepsi.
  • Mesajlaşma Servisleri: Mesajlaşma servisleri.
  • Telefon Hizmetleri: Telefon hizmetleri.
  • İzleme Hizmetleri: İzleme hizmetleri.
  • Kerberos Hizmetleri: Kerberos hizmetleri.
  • LDAP Hizmetleri: LDAP hizmetleri.
  • Web Hizmetleri: Web sunucuları.
  • Sertifika Hizmetleri: Let's Encrypt aracılığıyla TLS sertifikaları.
  • DNS Hizmetleri: DNS arka plan yordamları.
  • VPN Hizmetleri: VPN arka plan yordamları.
  • Ağ Dosya Sistemi: NFS ile ilgili hizmetler.
  • Sürekli Entegrasyon: Cuirass hizmeti.
  • Güç Yönetimi Hizmetleri: Pil ömrünün uzatılması.
  • Ses Hizmetleri: MPD.
  • Sanallaştırma Hizmetleri: Sanallaştırma hizmetleri.
  • Sürüm Kontrol Servisleri: Git depolarına uzaktan erişim sağlar.
  • Oyun Hizmetleri: Oyun sunucuları.
  • Çeşitli Hizmetler: Diğer hizmetler.

GNU Shepherd başlangıç ​​sistemi

Guix System, GNU Daemon Shepherd'ı kendi içinde Guix ile birlikte geliştirilen ve yazılan sistem kurnazlık yanı sıra. Daha önce "Daemonları yöneten Daemon" veya "Daemonları yöneten Daemon" anlamına gelen "dmd" olarak biliniyordu, ancak kaçınmak için isimleri değiştirdi çarpışma ile Dijital Mars D derleyici.[20]

Shepherd, kullanıcı alanı işlevselliğini asenkron olarak servisler olarak sağlar ve Shepherd genel işlevler ve nesne veri tipleri Temel işletim sistemini tanımlanmış bir şekilde genişletmek için Shepherd tarafından kullanılmak üzere ihraç edilen. Kıyasla systemd, bir kullanıcı alanı çoban süreci o kullanıcı olarak çalışır. Shepherd modelinin özü Kullanıcı alanı başlatma kavramı uzantı, bir çeşit birleştirilebilirlik hizmetlerin istendiği şekilde daha ayrıntılı veya özel davranışlarla zenginleştirilerek diğer hizmetlere katmanlanacak şekilde tasarlandığı yerler.[21] Bu, birçok modern init sisteminde bulunan örnekleme tabanlı bağımlılık ilişkilerini ifade eder,[22] sistemi modüler hale getirmek, aynı zamanda hizmetlerin etkileşime girmesine de izin verir değişken olarak diğer hizmetlerle keyfi yollarla.

Shepherd ayrıca sözde sağlar sanal hizmetler izin verilen dinamik gönderim bir ilgili hizmet nesnesi sınıfı üzerinde, örneğin bir posta transfer aracısı (MTA) sistem için.[23] Shepherd arka plan programı aracılığıyla yönetilen bir sistem, kullanıcı alanını bir Yönlendirilmiş döngüsüz grafiği, "sistem hizmeti" - önyükleme ve başlatmanın erken aşamalarından sorumlu - kök olarak ve sonradan başlatılan tüm hizmetler, doğrudan veya geçişli olarak diğer hizmetler üzerinden sistem hizmetinin işlevselliğine uzantılar olarak.[21][24]

Hem yazılı hem de yapılandırılmış Guile Şeması, GNU Shepherd'ın sistem yöneticisi tarafından son derece programlanabilir olması amaçlanmıştır, ancak ayrıcalıksız arka plan yordamları ve hizmetlerin kullanıcı başına profillerini yönetmek için de kullanılabilir.[25] Hizmetleri ve yapılandırması, nesne yönelimli olarak tek tip olarak depolanır Şema kod ve temel Guix Sistemi ile temel hizmetler sağlanırken,[26] keyfi yeni hizmetler esnek bir şekilde beyan edilebilir ve Guile'nin nesne sistemi, GOOPS, mevcut hizmetler, Shepherd'dan örnekleme üzerine belirli şekillerde hizmetleri dinamik olarak yeniden yazmasını isteyerek kullanıcının takdirine bağlı olarak yeniden tanımlanabilir.[27][28]

GNU Shepherd başlangıçta aşağıdakilerle çalışmak üzere tasarlandı: GNU Hurd ve daha sonra Guix System tarafından kabul edildi.[29]

Serbest bırakma ve istikrar

Guix Sisteminin bugüne kadar yalnızca kararsız bir geliştirme git deposu var[30] Guix ile paylaşılır, ancak kullanıcıların veya kuruluşların kanal özelliği aracılığıyla kararlı sürüm kanalları oluşturmalarını sağlar.[31]

Güncellemeler

Guix'teki paketler, bir paket geliştirici darboğaz olmaması nedeniyle genellikle çok günceldir: topluluk onayına tabi olarak herkes bir güncellemeye katkıda bulunabilir ve süreç aşağıdaki gibi araçlar tarafından desteklenir: guix yenileme.[32]

Git deposundaki değişiklikler topluluk üyeleri tarafından hakem tarafından incelenir ve commit erişimi olan 45 kişiden biri tarafından yapılır.[33] Pratikte bazen bu yapılar, bir yazım hatası veya benzer bir hata nedeniyle kullanıcılar için sistem arızalarına neden olur, ancak bunlar genellikle dakikalar içinde çözülür. Guix pull'un çalışma şekli, kullanıcıların bu arada çalışan bir sisteme sahip olmaları anlamına gelir.

Geri dönme

Bir sistem güncellemesi, kullanıcıları bozuk bir sistemle bırakırsa, kullanıcılar tek tek paketleri ve tüm sistem durumunu kolayca geri alabilir.[34] Bu, diğer Linux dağıtımlarında çok yaygın olan kararlı bir kanala, üzerinden güncelleme yapmaya çalışırken bir hata bildirmek ve birkaç dakika beklemek isteyen kullanıcılar için artık gerekli olmadığı anlamına gelir. guix çekme.

Resepsiyon

DistroWatch Weekly'den Jesse Smith, GNU Guix System 0.15.0'ı (o zamanlar GuixSD olarak adlandırılıyordu) inceledi ve "GuixSD'nin sevdiğim bir paket yöneticisi var" dedi, ancak sınırlı donanım desteğini ve sınırlı belgelerini eleştirdi.[35] Belgeler o zamandan beri videolarla genişletildi ve geliştirildi[36] ve bir yemek kitabı[37] öğreticiler, nasıl yapılır kılavuzları ve örneklerle altı dilde.

Ayrıca bakınız

Referanslar

  1. ^ GuixSD Katkıda Bulunanlar. "Hakkında - GuixSD". gnu.org. Arşivlendi 12 Nisan 2017'deki orjinalinden. Alındı 16 Mart 2017.
  2. ^ "GNU / Linux SSS - GNU Projesi - Özgür Yazılım Vakfı". Özgür Yazılım Vakfı. Arşivlendi 7 Eylül 2013 tarihinde orjinalinden. Alındı 14 Mayıs 2017.
  3. ^ "İndir - GNU Guix". Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 3 Kasım 2019.
  4. ^ Ludovic Courtès (23 Kasım 2020). "GNU Guix 1.2.0 yayınlandı - 2020 - Blog - GNU Guix". Alındı 24 Kasım 2020.
  5. ^ Mathieu Othacehe. "GuixSD'yi ARMv7'ye Taşıma". Arşivlendi 25 Aralık 2017'deki orjinalinden. Alındı 17 Şubat 2018.
  6. ^ "Guix'e ne denir?" (Mail listesi). gnu-system-Discuss. 15 Ocak 2015. Arşivlendi orijinal Ağustos 7, 2020. Alındı 3 Ağustos 2020.
  7. ^ "Ücretsiz GNU / Linux Dağıtımlarının Listesi". Arşivlendi 6 Temmuz 2020'deki orjinalinden. Alındı 3 Şubat 2015.
  8. ^ "Guix: Yeni Bir Paket Yöneticisi ve GNU Dağıtımı". Phoronix. Arşivlendi orijinalinden 2 Şubat 2015. Alındı 3 Şubat 2015.
  9. ^ "Yapılandırma Sistemini Kullanma". gnu.org. Arşivlendi 29 Nisan 2019 tarihli orjinalinden. Alındı 27 Nisan 2019.
  10. ^ "Paket Yönetimi". gnu.org. Arşivlendi orijinalinden 21 Mayıs 2019. Alındı 27 Nisan 2019.
  11. ^ "Programlama Arayüzü (GNU Guix Referans Kılavuzu)". guix.gnu.org. Arşivlendi 7 Ağustos 2020'deki orjinalinden. Alındı 3 Ağustos 2020.
  12. ^ "Guix: Yeni Bir Paket Yöneticisi ve GNU Dağıtımı - Phoronix". www.phoronix.com. Arşivlendi 6 Temmuz 2018'deki orjinalinden. Alındı 3 Ağustos 2020.
  13. ^ "GNU Guix & GuixSD 0.12.0 yayınlandı" (Mail listesi). guix-devel. 21 Aralık 2016. Arşivlendi orijinal 1 Ağustos 2020. Alındı 3 Ağustos 2020.
  14. ^ "FSF, onaylanan dağıtımlar listesine Guix Sistem Dağıtımını ekler". Özgür Yazılım Vakfı. 3 Şubat 2015. Arşivlendi orijinal 3 Şubat 2015. Alındı 3 Şubat 2015.
  15. ^ "İndir". gnu.org. Arşivlendi 13 Temmuz 2019 tarihli orjinalinden. Alındı 27 Nisan 2019.
  16. ^ "POWER9 çapraz derleme desteği ekleyerek yama" (Mail listesi). Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 27 Nisan 2019.
  17. ^ a b Wurmus, Ricardo. "Re: Arch Linux'tan Guix'e geçmeye hazırlanmada yardım" (Mail listesi). Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 11 Mayıs 2019.
  18. ^ "guix.git". git.savannah.gnu.org. Arşivlendi orjinalinden 11 Mayıs 2019. Alındı 11 Mayıs 2019.
  19. ^ "Hizmetler". gnu.org. Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 11 Mayıs 2019.
  20. ^ "guix-devel posta listeleri". Arşivlendi 19 Eylül 2019 tarihinde orjinalinden. Alındı 5 Kasım 2016.
  21. ^ a b "GNU Guix Referans Kılavuzu: Hizmet Bileşimi". GNU Projesi. Arşivlendi 1 Ocak 2019 tarihli orjinalinden. Alındı 5 Kasım 2016.
  22. ^ "systemd: Birim Bağımlılıkları ve Sırası". Fedora Dergisi. Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 5 Kasım 2016.
  23. ^ "GNU Shepherd El Kitabı: Hızlı Başlangıç". GNU Projesi. Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 5 Kasım 2016.
  24. ^ "GNU Guix Referans Kılavuzu: Shepherd Hizmetleri". GNU Projesi. Arşivlendi 1 Ocak 2019 tarihli orjinalinden. Alındı 5 Kasım 2016.
  25. ^ "GNU Shepherd El Kitabı". GNU Projesi. Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 5 Kasım 2016.
  26. ^ "GNU Guix Referans Kılavuzu: Hizmetler". GNU Projesi. Arşivlendi 25 Aralık 2018'deki orjinalinden. Alındı 5 Kasım 2016.
  27. ^ "GNU Guix Referans Kılavuzu: Hizmet Türleri ve Hizmetler". GNU Projesi. Arşivlendi 5 Ocak 2019 tarihli orjinalinden. Alındı 5 Kasım 2016.
  28. ^ "GNU Guix Referans Kılavuzu: Yapılandırma Sistemini Kullanma". GNU Projesi. Arşivlendi 29 Nisan 2019 tarihli orjinalinden. Alındı 5 Kasım 2016.
  29. ^ "GNU Shepherd". GNU projesi. Arşivlendi orjinalinden 12 Şubat 2016. Alındı 12 Şubat 2016.
  30. ^ "Re: Bir RFC prosedürüne ihtiyacımız var" (Mail listesi). Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 27 Nisan 2019.
  31. ^ "Kanallar". gnu.org. Arşivlendi 7 Mayıs 2019 tarihli orjinalinden. Alındı 27 Nisan 2019.
  32. ^ "Guix yenilemesini çağırmak". gnu.org. Arşivlendi 26 Aralık 2018 tarihli orjinalinden. Alındı 16 Mayıs 2019.
  33. ^ "GNU Guix - Özet: Proje Üye Listesi". gnu.org. Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 27 Nisan 2019.
  34. ^ "Guix sistemini çağırmak". gnu.org. Arşivlendi orijinalinden 26 Mayıs 2019. Alındı 27 Nisan 2019.
  35. ^ Smith, Jesse. "Guix System Distribution 0.15.0 ve ReactOS 0.4.9". distrowatch.com (778). Arşivlendi 30 Temmuz 2019 tarihli orjinalinden. Alındı 30 Ağustos 2018.
  36. ^ "Videolar". Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 3 Mart, 2020.
  37. ^ "Yemek kitabı". Arşivlendi 1 Ağustos 2020'deki orjinalinden. Alındı 3 Mart, 2020.
  38. ^ "Hakkında - GuixSD". www.gnu.org. Arşivlendi 27 Aralık 2015 tarihli orjinalinden. Alındı 3 Mayıs, 2018.

Dış bağlantılar