Atomik Sistemler ve Değişmez Dağıtımlar

Geleneksel olarak, paketlerle (ve paket yöneticileriyle) çalışmanın zorluklarından biri, sistemin bir işlemin ortasında başarısız olduğu beklenmedik durumlarla başa çıkmaktır. Sisteminize bazı güncelleştirmeler yüklemenin tam ortasında olduğunuzu ve aniden elektrik kesildiğini hayal edin. Sürücünüzdeki bazı dosyalar hala eski sürümdeyken bazıları yeni sürüme yükselir ve hepsi birlikte düzgün çalışmayabilir. Veya belki de elektrik kesintisi nedeniyle bazı dosyalar diske yalnızca yarı yazılmıştır ve artık önemi kalmamıştır. Bilgisayarınızı tekrar açtığınızda, sisteminiz düzgün çalışmayabilir. Hatta önyükleme bile yapmayabilir.

İlgili: Dağıtım Nedir? Neden “Dağıtım” Diyoruz?

Atomik işlemler bu sorunu düzeltmeyi amaçlar ve sistemin ya eski paket kopyasını ya da yeni paket kopyasını tamamen çalıştırır ve hiçbir zaman böyle durumlar arasında ortada kalmadığından emin olur. Bu, güncellemenin kendisinde bir sorun olmadığı sürece sistemin her zaman bütün ve önyüklenebilir olarak kabul edilebileceği bir durumda olması anlamına gelir.

Atomik işlemleri gerçekleştirmenin birçok yolu vardır. Dosya sistemi anlık görüntüleri bunlardan biridir ve güncelleme başlamadan önce işletim sisteminin her zaman iyi, önyüklenebilir bir kopyasına sahip olduğumuzdan emin olmamızı sağlar. openSUSE ve FreeBSD bu yaklaşımı benimser. Başka bir yol da yeni paketleri eski paketlerden ayrı bir dizine yüklemek ve ardından sembolik bağlantıları kullanarak bir paketin “etkin” veya en son sürümüne işaret etmektir. NixOS projesi de bunu yapar. Başka yollar da vardır, ancak bunlar nispeten basit yaklaşımlardan ikisidir.

Temel olarak, “atomik” terimini duyduğunuzda, bir sistemdeki paketlerin her zaman bütün olması, her zaman A veya B sürümünde oldukları bir durumda olmaları, asla “biraz olmaması” anlamına gelir.

İlgili: Linux’ta Neden Bu Kadar Çok Dağıtım Var?

Değiştirilemez bir dağıtım oldukça farklıdır. Değiştirilemez bir dağıtım (değiştirilemez bir dosya sistemine sahip dağıtım), işletim sisteminin çekirdeğinin salt okunur olduğu bir dağıtımdır. Genellikle çekirdek, programlar, kitaplıklar ve düşük seviyeli yapılandırmalar salt okunur bir dosya sisteminde saklanır. Başka bir deyişle, normal kullanıcılar ve (birçok durumda) kök kullanıcı çekirdek işletim sisteminde değişiklik yapamaz.

Değiştirilemez bir dağıtımda kullanıcılar ve sistem hizmetleri yalnızca kendi ana dizinlerinde veya /var dizininde dosya oluşturabilir ve paket yükleyebilir. /etc ve /usr gibi diğer konumlar yasaktır ve değiştirilemez.

Değiştirilemez dağıtımlar genellikle Snap ve Flatpak gibi taşınabilir paketleri kullanarak uygulamalar sunar çünkü bunlar genellikle kullanıcının ana dizinine veya /var dizinine yüklenir. /usr dizininde saklanan klasik paketler genellikle değiştirilemez dağıtım kullanıcıları tarafından kullanılamaz. Bunun altında yatan neden, işletim sistemine yapılan güncellemeler genellikle yeni paketlerin (veya çekirdek işletim sisteminin bir görüntüsünün) indirilmesini ve ardından yeni sürümleri yerleştirmek için yeniden başlatılmasını içerir.

Değiştirilemez bir dağıtımda amaç, kullanıcıların, hatta kök kullanıcının bile çekirdek işletim sisteminin yapılandırmasını değiştirmesini veya sistemi çalışır durumda tutmak için gereken dosyalara zarar vermesini önlemektir. Tüm uygulamalar ve kullanıcı dosyaları esasen değişmeyen çekirdeğin üstünde bir “katman”dır. Bu, yalnızca çalışan dağıtıma kazara zarar verilmesini önlemekle kalmaz, aynı zamanda klasik virüslerin ve kök araç takımlarının dosya sisteminin önemli alanlarına kendilerini kurmasını da zorlaştırır. Değişmeyen bir çekirdek sistemi, ideal olarak, test edilmesi ve dağıtılması da daha kolay bir işletim sistemidir. Mantıken her son kullanıcı aynı işletim sistemini çalıştırmalıdır  ve sadece kendi verileri bunun üzerinde olmalıdır.

Sonuç

Değiştirilemez dağıtımlar ve atomik dağıtımlar aynı şey değildir. Kavramlar ayrı ayrı var olabilir (ve vardır) ancak bir araya da getirilebilirler. Örneğin NixOS atomik paket yönetimine sahiptir, ancak değişmez değildir; kök dosya sistemi yazmaya açıktır. Fedora’nın ise bir dizi atomik sürümü vardır ve bu atomik sürümlerin dosya sistemlerinin bölümleri değiştirilemezdir.

Bir yanıt yazın