Fedora Spins Ailesi

Fedora Spins ve Fedora Atomic Desktop ailesi, temelde aynı resmi Fedora depolarını ve yazılım havuzunu kullanmalarına rağmen, işletim sisteminin kurulumu, dosya sistemi yönetimi ve paket güncelleme modelleri açısından iki farklı felsefeyi temsil eder.



### Temel Mimari Farklar

| Özellik | Fedora Spins (Geleneksel Model) | Fedora Atomic Desktop (Silverblue, Kinoite vb.) |
| — | — | — |
| **İşletim Sistemi Türü** | Klasik, paket tabanlı (mutable) | Görüntü tabanlı, değişmez (immutable / atomic) |
| **Paket Yöneticisi** | `dnf` | `rpm-ostree` |
| **Uygulama İzolasyonu** | Doğrudan sisteme kurulu RPM paketleri | Flatpak (grafik arayüz) & Toolbx/Distrobox (CLI/geliştirici) |
| **Güncelleme Mekanizması** | Dosya dosya üzerine yazma (in-place) | Atomik dağıtım (git benzeri commit ve deployment geçişi) |
| **Geri Alma (Rollback)** | Sınırlı (`dnf history undo` karmaşıklığı) | Tek komut veya önyükleyici (GRUB) üzerinden anında |



### Dosya Sistemi Yapıları

**Fedora Spins (Geleneksel Yapı):**

* Kök dizin (`/`), `/usr`, `/etc` ve `/var` alanları okuma-yazma (`read-write`) izinleriyle bağlanır.
* Yönetici haklarına (`sudo`) sahip olan herhangi bir işlem veya paket kurulumu sistem kütüphanelerini (`/usr/lib`, `/usr/bin`) doğrudan değiştirebilir.
* Güncellemeler sırasında elektrik kesintisi veya paket çakışması yaşanırsa, sistem dosyaları bozulabilir veya tutarsız bir duruma düşebilir.

**Fedora Atomic Desktop (Değişmez Yapı):**

* **/usr Dizini:** Salt okunur (`read-only`) olarak bağlanır. `root` kullanıcısı dahi buradaki dosyaları doğrudan değiştiremez, silemez veya üzerine yazamaz.
* **rpm-ostree Mekanizması:** Sistem, Git benzeri bir versiyonlama yapısıyla ele alınır. Güncelleme yapıldığında mevcut çalışan sistem değiştirilmez; arka planda yeni bir sistem görüntüsü (deployment) hazırlanır. Yeniden başlatma sırasında sistem doğrudan bu yeni görüntüden açılır.
* **/etc ve /var Dizinleri:** Sistemin yapılandırma dosyaları (`/etc`) ve dinamik verileri (`/var`) okuma-yazma iznine sahiptir. `/var/home` dizini kullanıcının ev dizini olarak çalışır ve veriler güncellemelerden etkilenmez.
* **Hata Durumunda Geri Alma:** Yeni bir güncelleme sorun çıkarırsa, GRUB menüsünden önceki deployment seçilerek veya `rpm-ostree rollbackFedora Spins ve Fedora Atomic Desktop (eski adıyla Silverblue, Kinoite, Sway Atomic vb.) varyantları, aynı Fedora temellerini (paket havuzu, çekirdek, SELinux politikaları) kullansalar da kökten farklı sistem mimarilerine, dosya düzenlerine ve paket yönetim felsefelerine sahiptir.



### Temel Mimari Farklar

| Kriter | Fedora Spins (Geleneksel) | Fedora Atomic Desktops (Atomik / Değişmez) |
| — | — | — |
| **Sistem Modeli** | Değişebilir (Mutable) durumlu sistem. Paketler dosya sistemine doğrudan yazılır. | Değişmez (Immutable) taban imajı. Sistem kökü salt okunurdur. |
| **Paket Yöneticisi** | DNF / RPM | `bootc` / `rpm-ostree` (imaj tabanlı yönetim) |
| **Güncelleme Mekanizması** | Dosyaların canlı sistem üzerinde üzerine yazılmasıyla (in-place). | Atomik dağıtım (A/B dağıtım); yeni sürüm arka planda derlenir veya çekilir, sistem yeniden başlatılınca devreye girer. |
| **Uygulama İzolasyonu** | Uygulamalar `/usr/bin`, `/usr/lib` altına kök yetkisiyle doğrudan kurulur. | Grafik uygulamaları izole Flatpak havuzundan, CLI geliştirme araçları Toolbox/Distrobox ile konteyner içinde çalışır. |
| **Geri Alma (Rollback)** | DNF geçmişi üzerinden kısmi geri alma (her zaman kararlı olmayabilir). | Tek bir komutla (`rpm-ostree rollback`) önceki çalışan imaj dağıtımına anında kesin dönüş. |



### Dosya Sistemi Yapısı

Geleneksel Spins varyantlarında tipik FHS (Filesystem Hierarchy Standard) geçerlidir; kök dizin (`/`) varsayılan olarak okuma-yazma izinlerine sahiptir.

Atomic Desktop tarafında ise dosya sistemi salt okunur ve durum bilgisi saklayan alanlar olarak katı bir şekilde ayrılmıştır:

* **`/usr` (Salt Okunur – Read-Only):** Sistemin tüm çekirdeği, kütüphaneleri ve temel ikili dosyaları buradadır. `ro` bayrağı ile bağlanır. Yönetici (root) olsanız dahi `sudo rm` veya doğrudan dosya kopyalama işlemi yapamazsınız.
* **`/etc` (Yazılabilir / Yapılandırma):** Sistem yapılandırmalarının bulunduğu alandır. Yazılabilir durumdadır ancak OSTree tarafından 3 yönlü birleştirme (3-way merge) ile takip edilir. Sistem güncellendiğinde yaptığınız özel yapılandırmalar korunur.
* **`/var` (Yazılabilir – Writable):** Dinamik verilerin, günlüklerin, Flatpak uygulamalarının (`/var/lib/flatpak`), konteyner verilerinin ve yerel durumların saklandığı ana yazılabilir alandır.
* **`/home` ve Sembolik Bağlar:** Fedora Atomic sistemlerde `/home` dizini aslında `/var/home` yoluna bir sembolik bağdır (symlink). Benzer şekilde `/opt` dizini de `/var/opt` dizinine bağlanır. Böylece kullanıcı verileri ve değişken dosyalar değişmez taban sisteminden tamamen izole kalır.
* **`/sysroot`:** Gerçek disk bölümünün bağlandığı köktür. OSTree dağıtımları (`/sysroot/ostree/deploy/…`) burada saklanır ve her güncellemede `bootloader` yeni dağıtım hedefine yönlendirilir.



### Yazılım Kurulum ve Yönetim Modeli

* **Geleneksel Spins:**
Bir masaüstü ortamı veya araç kurulurken doğrudan `dnf install paket_adi` çalıştırılır. Dosyalar anında ilgili dizinlere serpiştirilir. Bir bağımlılık çakışması veya elektrik kesintisi durumunda paket veritabanı bozulma riski taşır.
* **Atomic Desktop:**
Katmanlı bir mimari işletilir:
1. **Grafiksel Uygulamalar:** Flathub veya Fedora Flatpak havuzundan sandbox içinde kurulur (`flatpak install …`).
2. **Geliştirme / CLI Ortamları:** Taban sistemi kirletmemek adına Podman tabanlı `toolbox` veya `distrobox` kullanılır. Örneğin derleyiciler ve kütüphaneler konteyner içinde barındırılır.
3. **Taban Katmanlama (Package Layering):** Sistem düzeyinde bir sürücü veya sanallaştırma modülü gerekiyorsa `rpm-ostree install paket_adi` kullanılır. Bu işlem mevcut imajın üzerine yeni bir katman örer ve bir sonraki yeniden başlatmada temiz bir dağıtım olarak devreye girer.





### Kullanım Alanları ve Tercih Sebepleri

**Fedora Spins Tercih Edilmesi Gereken Durumlar:**

* **Klasik Sistem Yönetimi:** Sistemin her noktasına müdahale etmek, çekirdek seviyesinde veya `/usr` dizininde serbestçe dosya düzenlemek isteyenler.
* **MATE, XFCE, Cinnamon vb. Ortamlar:** Atomic Desktop ailesi ağırlıklı olarak GNOME (Silverblue), KDE Plasma (Kinoite), Sway (Sway Atomic) ve Budgie (Budgie Atomic) üzerine yoğunlaşmıştır. Klasik masaüstü deneyimini hafif sistemlerde yapılandırmak için Spins daha esnektir.
* **Konteynersiz / Yerel Araç Zincirleri:** Web sunucuları, veri tabanları veya gömülü geliştirme araçlarını doğrudan yerel dosya sistemine bağlayıp ek katmanlama yükü olmadan yönetmek.

**Fedora Atomic Desktop Tercih Edilmesi Gereken Durumlar:**

* **Bozulmaz Masaüstü İhtiyacı:** Güncellemelerin sistemi kırma ihtimalini sıfıra indirmek isteyen, kritik iş ortamlarında çalışan kullanıcılar.
* **Test ve Geri Dönüş Güvenliği:** Yeni bir sürüm veya beta paket denerken, tek bir yeniden başlatma ile sorunsuz eski duruma geçiş gerektiren senaryolar.
* **Konteyner Odaklı İş Akışları:** Geliştirme işlerini Podman, Toolbox ve Docker üzerinde yürüten, taban işletim sistemini yalnızca bir konteyner çalıştırıcısı olarak konumlandıran profiller.
* **Filo ve Cihaz Yönetimi:** `bootc` entegrasyonu sayesinde sistem imajını OCI (konteyner) imajı gibi uzak bir depodan çekip tüm makinelerde birebir aynı durumu korumak isteyen sistem yöneticileri.

Bir Cevap Yazın