- NixOS, bildirimsel yapılandırma, paket izolasyonu ve kolay geri alma özelliğiyle atomik güncellemeler sağlamak için Nix yöneticisine güvenir.
- Yaklaşımı, onu ileri düzey kullanıcılar, tekrarlanabilir sunucular ve dağıtımlar için güçlü ve güvenilir bir dağıtım haline getiriyor, ancak öğrenme eğrisi oldukça dik.
- Geniş depolar (Nixpkgs), GNOME ve KDE ile resmi sürümler ve geliştiriciler ve kritik ortamlar için ideal olan çok aktif bir ekosistem sunmaktadır.
Eğer bir süredir Windows'tan ayrılmayı düşünüyorsanız veya "işte bu benim için doğru olan" diyebileceğiniz bir Linux dağıtımı bulamadan birçok Linux dağıtımını denediyseniz, er ya da geç NixOS'u duyacaksınız. Bu açık kaynaklı işletim sistemi, gelişmiş, farklı ve oldukça radikal bir dağıtım olarak ün kazandı. Paket kurulumu, sistem yapılandırması ve güncellemelerin anlaşılması açısından.
Son yıllarda Giderek daha fazla kullanıcı Windows 10'dan Windows 11'e kesin geçiş yapmaya direniyor. Ve Linux tabanlı alternatiflerle denemeler yapmaya başlıyorlar. Sonuç olarak, bazıları çok kullanıcı dostu, diğerleri ise sistemden en iyi şekilde yararlanmak isteyen kullanıcılar için tasarlanmış devasa bir dağıtım ekosistemi ortaya çıkıyor. İşte NixOS burada devreye giriyor: Bildirimsel yapılandırmaya, atomik güncellemelere ve tüm ortamın neredeyse cerrahi hassasiyetinde kontrolüne odaklanan bir dağıtım..
NixOS nedir ve neden gelişmiş bir Linux dağıtımı olarak kabul edilir?
NixOS, Nix etrafında sıfırdan oluşturulmuş bir GNU/Linux dağıtımıdır. Yazılımların yüklenme, güncellenme ve yapılandırılma biçimini tamamen değiştiren, oldukça özel bir paket yöneticisi.Bu sadece "başka bir paket yöneticisine sahip başka bir dağıtım" değil; tüm sistem Nix'in paketleri nasıl depoladığı, sürümlendirdiği ve izole ettiği etrafında dönüyor.
Anahtar fikir, bildirimsel yapılandırmaDosyalarla uğraşmak, hatırladığınız programları yüklemek ve bir şeyleri bozmamak için dua etmek yerine, NixOS'ta sisteminizi bir veya daha fazla yapılandırma dosyasında (genellikle şurada) tanımlarsınız: /etc/nixos/configuration.nix (ve isterseniz daha sonra Flakes ve Home Manager ile). Bu dosya, sisteminizin nasıl olmasını istediğinizi tanımlar: hangi hizmetlerin etkinleştirileceği, hangi masaüstü ortamını kullanacağınız, hangi paketlerin yükleneceği, hangi ayarların yapılacağı.NixOS buradan yola çıkarak, herhangi bir makinede yeniden üretilebilen, sistemin tutarlı bir sürümünü oluşturur.
Bu yaklaşım bunu yapar NixOS, özellikle ileri düzey kullanıcılar, sistem yöneticileri ve geliştiriciler için oldukça güçlü bir işletim sistemidir. Tekrarlanabilir ve güvenilir ortamlara ihtiyaç duyan uygulamalar için. Sadece Firefox veya bir metin editörü kurmaktan bahsetmiyoruz: birkaç dosyada tüm sunucuları, karmaşık geliştirme ortamlarını veya tüm üretim makinelerini tanımlayabilirsiniz.
O gücü kullanmayı öğrendikten sonra gerçekten harika olsa da, Bu aynı zamanda NixOS'un Linux'a sıfırdan başlayan veya konsolla uğraşmak istemeyen biri için en iyi seçenek olmadığı anlamına da geliyor.Öğrenme süreci gerçek: Dosya yazmanız gerekecek. .nixDokümantasyonu okuyacaksınız ve muhtemelen ustalaşmadan önce birkaç şeyi bozacaksınız.
Yeni başlayan kullanıcılar için NixOS'un ilk sınırlamaları
Öncelikle şunu açıklığa kavuşturmak gerekiyor ki... NixOS, Ubuntu veya Linux Mint tarzında "kur ve unut" mantığıyla çalışan bir dağıtım arayanlar için tasarlanmamıştır.GNOME veya KDE Plasma gibi masaüstü ortamları sayesinde görsel tasarımı çekici ve modern olsa da, yüzeyin altında yatan yaklaşım çok daha karmaşık ve zorlayıcıdır.
Birçok kullanıcı için en büyük şoklardan biri şu oldu: Geleneksel grafiksel bir uygulama mağazası yok. Diğer dağıtımlarda bulunanlara benzer (GNOME Software, Discover, vb.). NixOS'ta yazılım kurulumu, Nix paket yöneticisi ile komut satırı üzerinden veya yapılandırma dosyalarında nelerin kurulmasını istediğinizi tanımlayarak yapılır.
Buna ek olarak, Tescilli yazılımların veya belirli geliştirme ortamlarının kurulumu ve yapılandırılması önemli miktarda zaman yatırımı gerektirebilir.Eğer Windows dünyasından geliyorsanız ve normalde bir çalıştırılabilir dosyayı indirip ileri-ileri-bitir'e tıklıyorsanız, buradaki süreç ifadeleri anlamayı gerektirir. .nixKanallar, pullar ve ekosisteme özgü diğer kavramlar.
Dikkate alınması gereken bir diğer nokta ise, Terminalle aranız iyi değilse veya onu kullanmaya üşeniyorsanızNixOS'u muhtemelen sinir bozucu bulacaksınız. Bazı görevleri basitleştiren araçlar olsa da, sistemin özü bildirimsel yapılandırma ve komut satırı yönetimine dayanmaktadır. Daha grafiksel ve doğrudan bir yaklaşımı tercih eden kullanıcılar için, çok daha kullanıcı dostu başka dağıtımlar da mevcuttur.
Herşeyle, Felsefesini öğrenmeye zaman ayırmaya istekli olan herkes, son derece sağlam, esnek ve güvenli bir sistemle karşılaşacaktır.Basitçe söylemek gerekirse, Linux'a hiç dokunmamış ve sadece internette gezinmek ve birkaç uygulama kullanmak isteyen bir arkadaşınıza önereceğiniz türden bir dağıtım değil.
Başlıca özellikler: bildirimsel yapılandırma, Nixpkgs ve izolasyon.
NixOS'un temel taşlarından biri, geniş paket koleksiyonudur. Nixpkgs, 120.000'den fazla kuruluma hazır paket içeren, mevcut yazılımların tanımlandığı depodur.Bu durum, NixOS'u Linux ekosisteminde en fazla paketlenmiş yazılıma sahip dağıtımlardan biri haline getiriyor; masaüstü uygulamalarından geliştirme araçlarına, sunuculara, bilimsel kütüphanelere ve çok daha fazlasına kadar her şeyi kapsıyor.
İlginç olan, tüm bunların dosya sistemi düzeyinde nasıl yapılandırıldığıdır. Geleneksel dizinleri doldurmak yerine, /usr/bin o /optNix her paketi şu şekilde saklar: /nix/store eşsiz bir rotadaBir paket genellikle, bağımlılıklarını ve derleme seçeneklerini doğru bir şekilde yansıtan bir karma değerle tanımlanır. Bu, her paketin, ihtiyaç duyduğu kütüphaneler ve bileşenlerle birlikte kendi "baloncuğu" içinde yaşadığı anlamına gelir.
Bu tasarım sayesinde, Aynı programın birden fazla sürümünü birbirleriyle çakışmadan yüklemek mümkündür.Bir kütüphanenin farklı sürümlerine, bir dil için birden fazla yorumlayıcıya veya bir aracın farklı revizyonlarına sahip olabilirsiniz ve bunların hepsi birbiriyle çakışmadan bir arada bulunabilir. Bu yaklaşım, Gentoo veya Guix gibi paket yöneticilerini anımsatıyor, ancak Nix'in bağımlılıkları ve paketleri ele alma biçimi kendine özgü.
Sistemin kendisinin yapılandırması, servislerden masaüstü ortamına kadar, Nix diline dayalı dosyalarda tanımlanır. Bu dosyalarda yaptığınız her değişiklik, sistemin yeni bir neslinin oluşmasına neden olur.Bu, bilinen durumlar arasında ileri veya geri gitmeyi oldukça kolaylaştırır. Bu da NixOS'u, kritik görev ortamlarının dağıtımı veya aynı yapılandırmanın birden fazla fiziksel veya sanal makineye kopyalanması için çok cazip hale getirir.
Buna ek olarak, Kullanıcı alanına uygulama yüklemek için root erişimine ihtiyacınız yok.Her kullanıcı, Nix tarafından yönetilen kendi yazılım profiline sahip olabilir; bu da genel sistemi değiştirmeye gerek kalmadan esneklik ve izolasyon sağlar. Bu, dağıtımın karakteristik özelliği olan modüler, yan etkisiz yaklaşımın bir başka katmanıdır.
Atomik yükseltmeler ve sistem geri alma
Herhangi bir işletim sistemindeki en büyük korkulardan biri şudur: Büyük bir güncelleme, ekipmanı kullanılamaz hale getirebilir veya ortamın önemli bir parçasını bozabilir.Birçok dağıtımda, kritik bir paketi güncellemek, bir bağımlılığın farklı davranması veya sistemin başka bir bölümüyle uyumsuz hale gelmesi durumunda beklenmedik yan etkilere yol açabilir.
NixOS, sunduğu farklı yaklaşım sayesinde öne çıkıyor. atomik yükseltmelerYapılandırmayı her değiştirdiğinizde, yeni sistem düzeyinde paketler yüklediğinizde veya yeni bir sürüme güncellediğinizde, dağıtım önceki sürümün üzerine yazmadan tamamen yeni bir sistem sürümü oluşturur. Önceki kurulum doğrudan değiştirilmez; bunun yerine, seçebileceğiniz veya silebileceğiniz yeni bir nesil oluşturulur..
Pratikte bu, bir güncellemeden sonra bir sorun ortaya çıkarsa, Bilgisayarı yeniden başlatabilir ve önyükleme yöneticisinden sistemin önceki neslini seçebilirsiniz.Bu sayede tam yedekleme yapmanıza veya dağıtımı yeniden yüklemenize gerek kalmadan çalışan bir duruma geri dönersiniz. Bu stratejinin dezavantajı, eski paketlerin ve derlemelerin bir süre birikmesi ve sistemin daha fazla disk alanına ihtiyaç duyabilmesidir; ancak NixOS, artık kullanılmayanları temizlemek için araçlar içerir.
Değişiklikleri geri alma yeteneği yalnızca sistem çekirdeğiyle sınırlı olmayıp, çeşitli hizmetlere ve yapılandırmalara da uzanmaktadır. Kritik ortamlar, sunucular veya bulut dağıtımları için özellikle ilgi çekicidir.Çünkü güncelleme yaparken daha fazla iç huzuru sağlıyor; bir sorun çıktığında her zaman hızlı bir geri dönüş yolu olduğunu bilmek rahatlatıcı.
Sonunda Atomik güncellemelerin, izole paket depolamasının ve geri alma imkanının birleşimi, NixOS'u çok ciddi bir seçenek haline getiriyor. Üretim sunucusunda veya günlük iş bilgisayarında önemli yazılımları güncellerken risk almak istemeyenler için.
NixOS ve masaüstü ortamının resmi sürümleri
NixOS, içsel olarak standarttan önemli ölçüde sapma gösterse de, Masaüstü deneyimi düzeyinde, her Linux kullanıcısı için tanıdık tatlar sunar.Resmi olarak, dağıtım iki ana sürüm sunuyor: biri GNOME, diğeri ise KDE Plasma'yı varsayılan masaüstü ortamı olarak kullanıyor.
Her iki masaüstü ortamı da oldukça iyi entegre edilmiş ve güncel durumda, bu nedenle Görünüm, performans ve kullanılabilirlik açısından diğer daha popüler dağıtımlarla aynı seviyede.Ayrıca, Nix'in paket yönetimi sayesinde, hangi bileşenlerin kurulmasını istediğinizi ve sistemi hafifletmek için hangi gereksiz parçaları çıkarabileceğinizi oldukça hassas bir şekilde ayarlayabilirsiniz.
NixOS'un en son kararlı sürümü olan ve 'Warbler' kod adıyla anılan 25.05 sürümü şunlarla birlikte geliyor: Modern bir Linux çekirdeği (6.12) ve GNOME 48, başlıca yeni özellikleri arasında yer alıyor.Bu sürüm, yazılımın teknolojik altyapısını güncel tutuyor. Binlerce yeni ve güncellenmiş paketi bünyesine katarken, eskimiş olanları da kaldırarak projenin canlılığını gösteriyor.
NixOS'un tipik özelliği olduğu gibi, Her kararlı sürüm, belirli bir süre için güvenlik ve bakım desteği içerir.Önceki sürümün desteği Haziran ayı sonunda sona erecek; bu tarihten sonra yama ve eklemeleri almaya devam etmek için yeni kararlı sürüme yükseltmeniz önerilir.
Bu dağıtımı fazla uğraşmadan denemek isteyenler için, Güncellenmiş kurulum görselleri resmi indirme sayfasında mevcuttur.Bu durum hem fiziksel donanımlar hem de sanal makineler için geçerlidir. Ayrıca, Amazon EC2 ve diğer bulut ortamları için özel imajlar mevcuttur, bu da uzaktan dağıtımları büyük ölçüde kolaylaştırır.
Kritik ortamlarda güvenlik, güvenilirlik ve kullanım
Nix'in bağımlılıkları, paket depolamasını ve güncellemeleri ele alma biçimi onu farklı kılıyor. NixOS özellikle güvenlik ve güvenilirlik özellikleriyle öne çıkıyor.Yazılım yükleme veya güncelleme sırasında ortaya çıkan yan etkilerin büyük çoğunluğunu ortadan kaldırarak, kritik hizmetlerin bozulması veya hata ayıklaması zor tutarsızlıkların ortaya çıkması riski azaltılır.
Varsayılan paket izolasyonu, aşağıdaki yetenekle birleştiğinde: Basit bir yeniden başlatma ile tüm sistemleri önceki durumlarına geri döndürün.Bu, büyük ölçekli bulut dağıtımları veya beklenmedik kesintilere tahammül edemeyen sistemler için son derece caziptir. Bu tür bir ortam, bildirimsel felsefeden önemli ölçüde faydalanır: yapılandırma dosyasının belirttiği şey tam olarak oluşturulur, ne daha fazla ne de daha az.
Ayrıca, NixOS farklı makineler arasında taşınabilirliği kolaylaştırır. Eğer bir sunucuda veya geliştirme makinenizde çalışan bir yapılandırmanız varsa, bunu başka bir makinede nispeten kolaylıkla kopyalayabilirsiniz.Belirli donanım gereksinimlerini karşılamanız koşuluyla. Bu, "evcil hayvanların" önlendiği ve sunucuların değiştirilebilir kaynaklar olarak ele alındığı modern altyapılarla çok iyi uyum sağlıyor.
Güvenilirliği ve sarsılmaz yaklaşımı onu bir... Kritik hizmetler için ilginç bir alternatif.test laboratuvarları, sürekli entegrasyon ortamları ve hatta üretim altyapılarıYönetim ekibinin NixOS'un özelliklerini öğrenmeye ve bunları iş akışlarına entegre etmeye istekli olması şartıyla.
Evet Tüm bu güç, başlangıçta belirli bir karmaşıklık pahasına elde edilir.Bu, bir öğleden sonra ustalaşabileceğiniz bir dağıtım değil ve ciddi ortamlarda en iyi performansı elde etmek için belgeleri dikkatlice okumanız, resmi wiki'yi incelemeniz ve şüpheleriniz olduğunda topluluğa güvenmeniz önerilir.
Geliştiriciler için NixOS: Artıları, eksileri ve gerçek dünya deneyimi
Yazılım geliştiriciler, NixOS'a en çok merak gösteren profiller arasında yer alıyor. Git'te, Home Manager ve Flakes ile sürüm kontrollü dosyalar kullanarak tüm geliştirme ortamını tanımlama fikri oldukça cazip.Kod yığınınızın tamamını yakalayabilir: dil, kütüphaneler, araçlar, editör ayarları, yazı tipleri, temalar… ve istediğiniz yerde tekrar oynatabilirsiniz.
Örneğin, ağırlıklı olarak Microsoft teknolojileriyle çalışan bir geliştiriciyi ele alalım: ASP.NET Core, .NET 8, React, Git, OpenVPN, MS Teams ve JetBrains Rider gibi bir IDE.NixOS'un cazibesi, tüm bunları dosyalarda tanımlayabilme olanağında yatmaktadır. .nixBunları ekiple paylaşın ve herkesin aynı ortama sahip olduğundan emin olun; böylece her makineye tek tek elle kurulum ve yapılandırma yapmak zorunda kalmazlar.
Ancak, haklı şüpheler de mevcuttur. Teknoloji yığınınızı değiştirdiğinizde veya Flutter ya da mobil geliştirme gibi yeni teknolojiler eklediğinizdeNix ifadeleriyle uğraşmak, Nixpkgs'te paket aramak veya zaten mevcut olmayan herhangi bir şeyi paketlemek için fazladan zaman harcamanız gerekebilir. Sisteme çok fazla takılmadan sadece kod yazmak isteyen biri için bu önemli bir maliyet gibi gelebilir.
Pratikte, NixOS kullanan birçok geliştirici var. Hibrit bir strateji benimsiyorlar.Çoğu istikrarlı araç (derleyiciler, linter'lar, CLI, temel kütüphaneler) için Nix ve Home Manager'a güveniyorlar ve bazı daha değişken unsurları (bazı grafiksel IDE'ler, çok yeni araçlar) en azından başlangıçta katı yapılandırmanın dışında bırakıyorlar. Zamanla, iş akışında yerleşik hale gelen bir şey, sonunda dosyalara da entegre ediliyor. .nix.
VS Code veya benzeri uygulamaların nasıl güncelleneceğine gelince, Bu süreç genellikle Nix kanalının veya Flakes girişinin güncellenmesini içerir. Bunu kaynak olarak kullanıyorsunuz, böylece paketlerin yeni sürümleri entegre ediliyor. Bir uygulama mağazasını açıp bir düğmeye basmak kadar anında olmuyor, ancak mekanizmayı anladığınızda her şey kontrol altında ve tekrarlanabilir hale geliyor.
Özetle, daha çok "DevOps" profiline sahip geliştiriciler veya altyapıyı kod olarak ele almakla ilgilenenler için, NixOS mükemmel uyum sağlıyor.Sadece rahat, görsel olarak çekici ve karmaşık olmayan bir ortam isteyenler için, öğrenme eğrisi daha düşük olan daha basit seçenekler de olabilir.
NixOS projesinin tarihi ve evrimi
Son yıllarda oldukça tanınır hale gelmiş olsa da, Nix ve NixOS aslında yeni sayılmazlar.Nix'in bir paket yöneticisi olarak geliştirilmesi, Hollanda'daki Delft Teknoloji Üniversitesi'nde 2003 yılına dayanmaktadır. Amaç, "bağımlılık cehennemi" olarak adlandırılan sorunu kökünden çözmek ve yazılım ve kütüphaneleri yönetmenin farklı bir yolunu önermekti.
Zamanla, bu paket yöneticisinin üzerine eksiksiz bir dağıtım sistemi kuruldu: NixOS, Nix'in fonksiyonel yaklaşımını en uç noktalarına taşıyan bir dağıtımdır.Proje yıllar içinde sessizce büyüyerek, bazı son derece teknik alanlarda bir ölçüt haline geldi.
NixOS çevresindeki topluluk bugünlerde oldukça aktif. 'Warbler' adlı 25.05 sürümünde, 2.800'den fazla kişi 57.000'den fazla kod değişikliğiyle katkıda bulundu. Önceki lansmandan bu yana, ekosistemin büyüklüğü hakkında bir fikir veren bir rakam elde edildi; ancak bu rakam genellikle popüler düzeyde "büyük" Linux dağıtımları listelerine dahil edilmiyor.
Bu sürekli çaba şu anlama gelir: Binlerce yeni paket, sürekli güncellemeler ve eski yazılımların düzenli olarak temizlenmesi.Çalışma temposu, dağıtımın çekirdek, masaüstü ortamları ve kullanıcı araçları açısından güncel tutulmasını sağlarken, Nix modelinin gerektirdiği iç tutarlılığa da özel önem verilmektedir.
NixOS, "sistem meraklıları için" bir dağıtım olma özelliğini bir nebze de olsa korusa da, Önemi bunun da ötesine geçiyor.Bu durum, günümüzde ortamların yeniden üretilebilirliği, kod olarak altyapı ve deterministik paket yönetimi konularına bakış açımızı etkilemiş ve özgür yazılım dünyasındaki diğer araç ve yaklaşımlara ilham kaynağı olmuştur.
Daha derinlemesine bilgi edinmek isteyenler için proje şunları içeriyor: Oldukça kapsamlı bir wiki ve ayrıntılı resmi dokümantasyon Temel kurulumdan gelişmiş dağıtım senaryolarına, sunucu yapılandırmasına, konteynerlere ve daha fazlasına kadar her şeyi kapsıyor.
Bütün resme bakıldığında şunu söyleyebiliriz ki NixOS, günümüz Linux ortamında en gelişmiş ve aynı zamanda en karmaşık önerilerden biri haline geldi.Ev kullanıcıları için henüz yaygın bir seçenek olmaktan çok uzak olsa da, ileri düzey kullanıcılar, yöneticiler ve talepkar geliştiriciler alanında oldukça saygın bir yer edinmiştir.
NixOS'u denemeye cesaret eden herkes, alışılmışın çok dışında, kendine özgü ve güçlü bir dağıtımla karşılaşacaktır. Sabır, merak ve öğrenme isteği gerektirir.Ancak karşılığında, ince ayarlı sistem kontrolü, bağımlılıklar ve güncellemelerle başa çıkmanın zarif bir yolu ve bir şeyler ters giderse her zaman geri dönebileceğinizi bilmenin verdiği gönül rahatlığı sunarak, gerçekten gelişmiş bir Linux arayanlar için çok ciddi bir seçenek haline geliyor.
İçindekiler
- NixOS nedir ve neden gelişmiş bir Linux dağıtımı olarak kabul edilir?
- Yeni başlayan kullanıcılar için NixOS'un ilk sınırlamaları
- Başlıca özellikler: bildirimsel yapılandırma, Nixpkgs ve izolasyon.
- Atomik yükseltmeler ve sistem geri alma
- NixOS ve masaüstü ortamının resmi sürümleri
- Kritik ortamlarda güvenlik, güvenilirlik ve kullanım
- Geliştiriciler için NixOS: Artıları, eksileri ve gerçek dünya deneyimi
- NixOS projesinin tarihi ve evrimi

