Lix vs Nix: Yönetim Çökerse Fork Kaçınılmazdır
Bir projenin kodlarının açık olması o projenin tamamen özgür olduğu anlamına gelmiyor. Projeler küçükken her şey kod kalitesi ve ideoloji etrafında döner. Ancak yapı büyüyüp devasa bir ekosisteme dönüştüğünde masaya iki zıt güç oturur: Ticari çıkarlar ve topluluk kontrolü.
İşte tam bu noktada kodun kimin yazdığı değil, projeyi kimin yönettiği sorusu hayati bir önem taşıyor. Nix ekosisteminin 2024’te yaşadığı yönetim krizi ve ardından Lix’in doğuşu, bu güç savaşının en net örneklerinden biri.
Bardağı Taşıran Damla
Dışarıdan bakıldığında her şey Anduril gibi bir askeri teknoloji şirketinin NixCon’a sponsor olmasıyla patlak vermiş gibi görünebilir. Doğal olarak bu durum açık kaynak felsefesine sahip birçok geliştiricinin tepkisini çekti. Ancak meseleyi sadece askeri şirket karşıtlığı üzerinden okumak büyük resmi kaçırmak olur. Bu kriz, yıllardır alttan alta kaynayan bir yönetimsel çöküşün dışa vurumuydu.
Asıl sorun projenin yaratıcısı Eelco Dolstra’nın yönetim stili ve Determinate Systems üzerinden yaşadığı iddia edilen çıkar çatışmalarıydı. Merkeziyetçi, tek kişilik karar alma algısı artık sürdürülemez hale gelmişti. Vakıf yönetimi şeffaflığını kaybetmiş, topluluğun etkisi kurumsal ve ticari öncelikler karşısında iyice zayıflamıştı. Kodları topluluk yazıyor ama dümeni gücü elinde tutan bir avuç insan kırıyordu.
Teknik Bir İhtiyaç Değil, Bir İsyan: Lix
Nix ekosistemindeki bu tıkanıklık, açık kaynak dünyasının en acımasız ama en demokratik mekanizmasını tetikledi ve sistem çatallandı.
Bir grup kararlı geliştirici orijinal CppNix motorunu alıp Lix projesini kurdu. Teknik iyileştirmeler (daha iyi hata mesajları, Meson build sistemine geçiş ve uzun vadeli Rust planı) masadaydı. Ancak Lix’i ortaya çıkaran asıl itici güç, yönetimsel tıkanıklığı aşma isteğiydi. Lix ekibinin vizyonunu özetleyen yaklaşım çok basitti: Bir şirket için değil, topluluk için inşa edildi.
Bu manifestonun altı boş değil. Kendi altyapımı tasarlarken, xmrah.com’un da üzerinde koştuğu NixOS kalesinde standart nix yerine doğrudan Lix motoru üzerinde çalışıyorum. Çünkü Sovereign felsefe, sadece hangi aracı kullandığınla değil o aracın dümeninde kimin oturduğuyla da ilgilenir. Terminalde nix --version yazdığımda karşılaştığım Lix çıktısı (bu yazının yazıldığı tarihte 2.94.x), gücün şirketlerde değil toplulukta olduğunun günlük bir hatırlatıcısı.
Motor Kimin Elinde?
Geçenki Ollama yazımda risk sermayesi yatırımlarından bahsetmiş, ücretsiz bir arayüzün ileride ticari bir bulut hizmetine dönüşüp ekosistemi kilitleyeceğinden endişe ettiğimi söylemiştim. Oradaki çözüm llama.cpp gibi asıl ve bağımsız motoru savunmaktı.
Nix’in hikayesi de temelde bundan farksız. Bir tarafta girişim sermayesi ile ürünü tekelleştirme baskısı var, diğer tarafta kurumsal çıkarlarla yönetim kurulunu işgal etme baskısı.
Her iki senaryoda da Sovereign mimarinin temeli kendi verine, koduna ve sisteminin kararlarına sahip çıkmaktır. Eğer bir altyapının yönetimi tek bir şirketin veya kapalı bir grubun eline geçiyorsa, yeni bir motor yaratmak açık kaynağın en güçlü ve meşru savunma mekanizmalarından biri haline gelir.
Açık kaynağın geleceği sadece kodların MIT veya GPL lisanslı olmasında yatmıyor. Asıl gelecek, projeyi yöneten kurulların şeffaflığı ve ticari çıkarlara karşı dirençli mekanizmalar kurabilmesinde. Lix, bu arayışın somut bir kanıtı. Kod herkese ait olabilir, ama önemli olan kararların kime ait olduğu.
Ek: Kendi Sisteminize Lix’i Entegre Etmek
Yazının felsefesine katılıp kendi NixOS yapınızda Lix motoruna geçmek isterseniz, dışarıdan karmaşık modüller (tar.gz paketleri) indirmenize hiç gerek yok. Kendi sistemimde her zaman en güncel sürümü (yazının yazıldığı tarihte 2.94.x) alabilmek için doğrudan NixOS’un ana paket deposunu kullanıyorum.
NixOS konfigürasyonunuzda (örneğin configuration.nix veya modüllerinizin içinde) nix.package değerini pkgs.lix olarak belirlemeniz yeterli:
# configuration.nix veya system.nix
{ config, pkgs, ... }:
{
# ... diğer ayarlarınız
nix = {
# C++ Nix yerine doğrudan ana depodaki güncel Lix motorunu kullan
package = pkgs.lix;
settings = {
experimental-features = [ "nix-command" "flakes" ];
# İsteğe bağlı: Lix binary cache'i ekleyerek derleme sürelerini kısaltabilirsiniz
substituters = [
"https://cache.nixos.org"
"https://cache.lix.systems"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.lix.systems-1:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
];
};
};
}
Bu yöntem sayesinde her nix flake update yaptığınızda, Lix versiyonunuz da nixpkgs deposuyla birlikte otomatik olarak en güncel sürüme sıçrayacaktır. Sistemi rebuild ettiğinizde (nh os switch), tüm nix komutlarınız aynı sözdizimi ile ama yepyeni Lix motoru üzerinden çalışmaya başlar.