Yazılım

Debian'da Systemd Yerine OpenRC Kullanmak: Bir Geliştiricinin Deneyimi ve Adım Adım Geçiş Rehberi

Modern Linux dağıtımlarının kalbinde yer alan systemd init sisteminin giderek büyümesinden rahatsız olan bir geliştirici, Debian Testing üzerinde systemd'yi tamamen kaldırıp yerine hafif alternatif OpenRC init sistemini kurma sürecini ve karşılaştığı zorlukları paylaştı.

Paylaş X'te paylaş

Modern Linux ekosisteminde systemd, başlangıç sistemi (init system) olarak neredeyse tüm büyük dağıtımlarda standart haline gelmiş durumda. Ancak sistemin PID 1 (ilk süreç) sorumluluğunun çok ötesine geçerek DNS yönetiminden sistem kurulumuna kadar her alana yayılması, Unix felsefesindeki "her araç tek bir işi yapsın ve iyi yapsın" (KISS - Keep It Simple, Stupid) prensibine inanan geliştiriciler arasında uzun süredir tartışılıyor.

Bir Linux geliştiricisi, Debian Testing yüklü Thinkpad X13s cihazında systemd'yi tamamen kaldırıp yerine hafif ve geleneksel bir alternatif olan OpenRC sistemini kurma deneyimini paylaştı. İşte bu teknik geçişin detayları, karşılaşılan zorluklar ve çözümleri.

Neden OpenRC ve Systemd Rahatsızlığı?

Geliştiriciye göre systemd'nin başlangıçta sadece bir init sistemi olarak yola çıkıp, günümüzde kendi sistem yükleyicisi systemd-sysinstall gibi bağımsız projelerin görevlerini üstlenmeye başlaması bardağı taşıran son damla oldu. Bu büyüme, olası bir hatada tüm sistemin çökme riskini artırıyor. Bu merakla yola çıkan geliştirici, Debian üzerinde OpenRC ve sysvinit-core kombinasyonunu test etmeye karar verdi.

Geçiş Aşaması ve Karşılaşılan Zorluklar

Debian'da systemd hayati bir paket (essential package) olarak tanımlandığı için standart apt-get remove komutları hata vermektedir. Geliştirici bu engeli aşmak için hayati paketlerin silinmesine izin veren özel bir parametre kullanmıştır:

sudo apt purge --allow-remove-essential systemd && sudo apt install openrc sysvinit-core

Karşılaşılan Sorunlar:

  1. Önyükleme (Boot) Hatası: Systemd kaldırıldıktan sonra sistem ilk aşamada düzgün açılmamış ve kurtarma moduna (recovery mode) geçilmiştir. İnternet bağlantısı sağlandıktan sonra OpenRC paketlerinin eksik kurulumu giderilmiştir.
  2. Donanım Entegrasyonu: Başlangıçta pil durumu ve ses kartı çalışmamıştır. Qualcomm remoteproc servisleri için systemd servisleri el ile OpenRC scriptine dönüştürülmüştür.

Systemd Servisinin OpenRC Scriptine Dönüştürülmesi

Geliştirici, Qualcomm işlemcinin uzaktan yordam çağrısı (remoteproc) birimlerini başlatmak için kullanılan systemd servisini başarıyla OpenRC formatına uyarlamıştır:

Eski Systemd Servisi (oneshot) Yeni OpenRC Betiği (/etc/init.d/)
[Unit]
Description=Start Qualcomm remoteprocs
Before=sysinit.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo start > /sys/class/remoteproc/remoteproc0/state'
#!/bin/sh
# OpenRC init script

echo start > /sys/class/remoteproc/remoteproc0/state
echo start > /sys/class/remoteproc/remoteproc1/state

Sistem Karşılaştırması: Systemd vs. OpenRC

Aşağıdaki grafik, iki init sisteminin temel tasarım yaklaşımlarını ve yapısal karmaşıklığını karşılaştırmaktadır:

OpenRC Modülerliği ve Sadelik Derecesi (Yüksek daha iyi) 90%
Systemd Modülerliği ve Sadelik Derecesi (Yüksek daha iyi) 45%

Sonuç

Geliştirici, OpenRC ile yaptığı bu deneysel geçişin başarıyla sonuçlandığını ve sistemin kararlı çalıştığını belirtiyor. Linux dünyasının sunduğu en büyük özgürlüklerden biri olan "kendi sistemini dilediğin gibi inşa etme" özgürlüğü, init sistemini değiştirmek gibi kritik bir operasyonda bile OpenRC gibi alternatif projeler sayesinde korunmaya devam ediyor.

Kaynak: Hacker News (Öne Çıkanlar)

Mr.Nobody
Yazar

Mr.Nobody

Tüm yazılar Tüm yazılar
Haber Sayısı 275 haber
Görüntülenme Sayısı 9.335 görüntülenme
Okur katılımı

Yorumlar

Yorum İkonu Yorum Yazın

Bu habere henüz yorum yapılmadı.

Görünüm Okuma ayarları
Yazı boyutu