FreeBSD geliştirmesi için bir yıllık sponsorluk
(daemonology.net)- Amazon sponsorluğunda 1 yıl boyunca FreeBSD release engineering ve FreeBSD/EC2 geliştirmesi yürütüldü
- Sürüm yönetimi ile EC2 odaklı iyileştirmeler birlikte ele alındı ve aylık ortalama 50 saat çalışma yapıldı
- Graviton instance güç yönetimi, hotplug desteği, açılış performansı iyileştirmeleri gibi önemli özellik sorunları ve kalite iyileştirmeleri başarıyla tamamlandı
- AMI türleri genişletildi ve build otomasyonu sayesinde FreeBSD AMI dağıtımının çeşitliliği ve verimliliği artırıldı
- Sponsorluk sona erdikten sonra geliştirme hızında yavaşlama ve bazı özellik çalışmalarında duraksama bekleniyor
FreeBSD geliştirme sponsorluğunda 1 yılın değerlendirmesi
# Başlangıç arka planı ve sponsorluk süreci
- FreeBSD/EC2 platformu 2010'dan beri yönetiliyordu ve Kasım 2023'ten itibaren FreeBSD release engineering lideri rolü de üstlenildi
- Antithesis, Patreon gibi kaynaklardan küçük ölçekli destek alınıyordu ancak release engineering işleri FreeBSD/EC2 geliştirmesine ayrılan zamanı ciddi biçimde azaltmaya başlamıştı
- Amazon ile EC2 çalışmaları için sponsorluk görüşmeleri birkaç yıldır sürüyordu; Nisan 2024'te bütçeden sorumlu kişiyle bağlantı kuruldu ve 1 yıllık sponsorluk alındı
- Sponsorluk GitHub Sponsors üzerinden yürütüldü; Amazon'un hedeflediği süre ile gerçek ödeme zamanı farklı olabilir
# Sponsorluk ve çalışma zamanı dağılımı
- Amazon'un talebiyle her ay 40 saat FreeBSD release engineering ve EC2 geliştirmesi için zaman ayrılması taahhüt edildi
- Pratikte ayda yaklaşık 50 saat harcandı; bunun 20 saati EC2 sorunlarına, 20 saati release işlerine, 10 saati ise diğer mühendislik çalışmalarına ayrıldı
- Aylara göre çalışma süresi önemli ölçüde değişti
# FreeBSD sürüm yönetimi
- FreeBSD'nin üç aylık sürüm takvimi devreye alınıp yönetilerek 1 yıl içinde 4 sürüm çıkarıldı: FreeBSD 13.4 (2024.9), 14.2 (2024.12), 13.5 (2025.3), 14.3 (2025.6 bekleniyor)
- Her sürümde geliştiricilere kod dondurma tarihlerini hatırlatma, merge taleplerini onaylama ve koordine etme, imaj build etme ve test etme, duyuru metinleri yazma ve çeşitli sürüm build hatalarını düzeltme işleri yer aldı
- Release engineering için gereken süre çeyrek başına 33.5 ila 79 saat arasında değişti; süreç ilerledikçe istikrar arttığından iş yükü azalma eğilimi gösterdi
# Başlıca EC2 özellik iyileştirmeleri ve kalite artışı
Graviton instance güç sürücüsü, hotplug desteği
-
Graviton instance'larda EC2 API'nin normal kapanış sinyalinin FreeBSD tarafından algılanamaması sorunu çözüldü
- ACPI _AEI nesnesi kullanılarak GPIO tabanlı "power button" sinyali ile sürücü mantığı birbirine bağlandı
- EC2'nin sağladığı ACPI tablolarındaki Pull Up bayrağı uyumsuzluğu nedeniyle cihazın devre dışı kalması sorunu, FreeBSD/EC2 AMI'lerine ACPI_Q_AEI_NOPULL ayarı eklenerek aşıldı
-
EC2 Graviton ve x86 instance'larındaki aygıt hotplug (özellikle hot-unplug) sorunları kapsamlı biçimde teşhis edilip düzeltildi
- IRQ sızıntıları, PCI güç durumu ile OS sinyalleri arasındaki uyumsuzluklar, "hayalet" PCI aygıtları gibi farklı hata türleri ele alındı
- Geçici çözüm olarak ACPI quirk'leri uygulandı (ör. ACPI_Q_CLEAR_PME_ON_DETACH, ACPI_Q_DELAY_BEFORE_EJECT_RESCAN); EC2 tarafındaki hataların ise ayrıca düzeltilmesi planlanıyor
Hotplug test otomasyonu ve kalite iyileştirmesi
- EC2 ortamında EBS volume'lerini tekrar tekrar bağlayıp ayıran bir betik geliştirildi ve 300 ardışık test ile kararlılık doğrulandı
- Fiziksel sistemlerde anlamlı olan PCIe hotplug için gereksiz 5 saniyelik gecikme, EC2'de 0 saniyeye indirilerek kalite artırıldı
Açılış performansı iyileştirmeleri
- FreeBSD/EC2 açılış hızı sorunları veri toplama ve analizle sistematik olarak iyileştirildi
- 2024 başında root disk kapasitesinin artırılmasıyla açılışın 3 kat yavaşlaması, Graviton2 instance'larda kernel entropy seeding gecikmesi, ZFS açılış süresindeki artış ve IMDSv2 ile ilgili IPv6 desteği sorunu adım adım çözüldü
- Dosya sistemi bazlı açılış performansı farkları, verimsiz entropy temini, ağ başlatma gecikmeleri gibi birçok alanda optimizasyon yapıldı
# FreeBSD AMI çeşitliliğinin artırılması ve build/dağıtım otomasyonu
- Mevcut base ve cloud-init AMI'lerine ek olarak small AMI (gereksiz debugging/test kodu ve araçları kaldırılmış, 1GB boyutunda) ve builder AMI (kullanıcının özelleştirmesi için builder) eklendi
- 4 AMI türü * 2 dosya sistemi (UFS/ZFS) * 2 mimari (amd64/arm64) * 3 sürüm (13, 14, 15) ile imaj kombinasyonları büyüyünce, eski imajların otomatik silinmesi ve süreçlerin betiklerle otomatikleştirilmesi yapıldı; 336TB EBS snapshot temizlendi
# Genel mühendislik iyileştirmeleri
- FreeBSD AMI/release build süreçlerinin paralelleştirilmesi ile toplam build süresi yaklaşık 22 saatten 13 saate indirildi ve daha fazla AMI türü eklemek için alan açıldı
- EC2 instance tabanlı otomatik testler ve diffoscope karşılaştırmalarıyla build reproducibility (reproducible build) sorunları teşhis edilip çözülmeye başlandı
- ENA sürücüsü yama incelemeleri, OCI container build etme ve registry'ye yükleme, AWS ile ilgili araç iyileştirmeleri, güvenlik sorunu raporları gibi çeşitli küçük işler de paralel yürütüldü
# Gelecek görünümü ve sınırlamalar
- FreeBSD release engineering ve EC2 platform bakım rolleri sürecek ancak önceye kıyasla ayrılabilecek zamanın azalması bekleniyor
- FreeBSD 15.0 (Aralık 2024), 14.4/15.1/14.5/15.2 (2026) sürümleri planlandığı gibi ilerleyecek; ancak özellik ekleme ve hata düzeltme hızının düşmesi muhtemel
- Otomatik dosya sistemi genişletme, çoklu NIC ve hotplug otomasyonu, önceden yamalanmış AMI dağıtımı, EC2 kullanıcı web aracı, FreeBSD/Firecracker desteği gibi tamamlanmamış işlerde uzun vadeli durgunluk bekleniyor
# Kapanış
- Amazon'un bu sponsorluğu, açık kaynak geliştiricileri için son derece nadir bir fırsat oldu; geçen dönemdeki sonuçlardan gurur ve minnettarlık duyuluyor
1 yorum
Hacker News görüşleri
Bugün ziglang.org indirme sayfasına FreeBSD'nin eklendiği haberi paylaşıldı; artık FreeBSD kullanıcıları CI'da otomatik olarak derlenen master branch build'lerini kolayca alabiliyor
FreeBSD artık resmi olarak çapraz derleme hedefi olarak tamamen destekleniyor; Linux'a benzer şekilde
zig cc -o hello hello.c -target riscv64-freebsdgibi FreeBSD'yi hedefleyerek derleme yapılabiliyorC/C++ bağımlılıkları varsa bunları zig build sistemiyle kolayca içe alıp derlemek mümkün; bu sayede epey karmaşık projeler bile FreeBSD için rahatça çapraz derlenebiliyor
Bunun sonucunda daha fazla projenin CI'ına FreeBSD desteği ve testleri eklemesi umuluyor
Okurken ilginç birçok kısım vardı
2024'ün ilk haftasından itibaren FreeBSD boot sürecinin bir anda 3 kat yavaşladığı bir olay var; commit'leri izlemeye devam ettikten sonra sebebin root disk boyutunun 5GB'den 6GB'ye çıkması olduğu anlaşılmış
Amazon'daki bir tanıdığına sorulduğunda, cevap adeta sihir gibiydi: “Tam olarak bilmiyorum ama bunu bilmesen daha iyi olabilir” tarzındaydı
Daha da önemlisi, root disk boyutu 8GB'ye çıkarılınca performans eski seviyesine geri dönmüş
Böyle hikâyeleri duyunca artık bunun sebebini gerçekten öğrenmek istiyor insan
Bu tür bir sorunu bulmak için commit bisect yapmanın gerçekte ne kadar sürdüğünü merak ediyorum
Her seferinde image oluşturup VM'i yeniden mi başlattılar diye düşünmeden edemiyorum
S3'ün orijinal nesne boyutu sınırının 5GB olduğunu anlatan 2006 tarihli kendi blog yazısından bahsediliyor
https://aws.amazon.com/blogs/aws/amazon_s3/
Bunun FreeBSD performansındaki yavaşlamayla doğrudan ilişkili olup olmadığı bilinmiyor
Dizüstü bilgisayar desteği konusunda da çok iş yapılıyor
BSD Foundation'ın S0ix Sleep State uygulaması gibi çeşitli özelliklere odaklanmak için $750,000 yatırım yaptığını okudum
İlgili projelere https://github.com/FreeBSDFoundation/proj-laptop adresinden bakılabilir
Amazon'un daha fazla destek ve katkı vermesi beklenirdi, ama gerçekte durum FreeBSD'ye asgari destek vermekle sınırlı görünüyor
Amazon, FreeBSD sponsor listesinde bile yok; Google geçen yıl yalnızca $9K bağışlamış, Apple ile Meta/Facebook da listede yer almıyor
Buna karşılık Microsoft'un listede olması övgüyü hak ediyor
Bu büyük şirketlerin FreeBSD ve OpenBSD sayesinde bu kadar fayda görüp her yıl otomatik olarak bağış yapmaması şaşırtıcı
Sponsor bilgilerine https://freebsdfoundation.org/our-donors/donors/?donationYear=2024 adresinden bakılabilir
Amazon'un FreeBSD'yi daha fazla desteklemesini isteme fikrine katılıyorum
Ama FreeBSD Foundation bağışçı listesinde yer almaması hiç destek vermediği anlamına gelmiyor
Benim aldığım geliştirme bütçesi de vakıf üzerinden gelmedi ve gerçekte vakfın desteklediği geliştirme toplam kurumsal desteğin ancak yaklaşık %10'unu oluşturuyor
Vakıf destekli geliştirme, doğrudan FreeBSD'nin kendisine yönelik işlere odaklanabildiği için önemli, ama toplam içinde azınlıkta kalıyor
Yalnızca bu yorumla tüm tabloyu görmenin mümkün olmadığı belirtiliyor
Bu sadece vakfa yıllara göre yapılan bağışların bir anlık görüntüsünü sunuyor; yapılan geliştirme katkıları ise her sürümün sürüm notlarında özetleniyor
https://www.freebsd.org/releases/
Microsoft'un neden FreeBSD'yi desteklediği merak ediliyor
Hyper-V genişletmeleri Linux'takinden daha eksik, .NET'in resmi bir portu yok ve Microsoft'un FreeBSD tabanlı servisler çalıştırdığı da görünmüyor
Amazon'un FAANG içinde FOSS'a en az katkı veren şirket olduğu görüşü
cperciva'ya büyük saygı duyulduğu ifade ediliyor
Tarsnap ile FreeBSD'yi aynı anda nasıl yürüttüğü merak ediliyor
Basit tamirleri ya kendiniz yaparsınız ya da bir uzmana yaptırırsınız
FreeBSD işine harcanan zamanın yalnızca bir kısmı Tarsnap'ten gelen zamandı ve bu, sanılandan daha azdı
Geçmişte FreeBSD'yi iş istasyonu olarak kullanmış ve etkilenmiş biri var
Ev geçidi/güvenlik duvarı/DNS/DHCP sunucusu olarak FreeBSD kullanmak istemiş ama 10GbE NIC sürücüsü desteklenmediği için sonunda Nix'i seçmiş
FreeBSD'nin hâlâ iyi şekilde korunup geliştirilmesi sevindirici
FreeBSD/EC2'nin en büyük kullanıcılarının kim olduğu merak ediliyor
Kendisi de bilmiyor
Gerçekte ona ulaşan kullanıcılar tüm FreeBSD/EC2 kullanıcılarının muhtemelen %0.1'inden bile az
EC2 üzerinde FreeBSD'yi kimin kullandığını gerçekten bilmek istiyor
Netflix'in FreeBSD'yi yalnızca edge box'larda mı kullandığı merak ediliyor
FreeBSD'nin Unix ailesinde hangi nişi doldurduğu soruluyor
Neden OpenBSD veya NetBSD yerine daha karmaşık olan FreeBSD'nin tercih edildiği, ZFS ya da Nvidia ve ELF gerekiyorsa neden doğrudan Linux kullanılmadığı soruluyor
GNU meselesi biliniyor ama Musl Void gibi alternatifler de varken, FreeBSD'nin kendine özgü belirgin “kimliğinin” ne olduğu samimi bir merak konusu
Finans sektöründe hem EC2'de hem de şirketin kendi veri merkezindeki bare metal sunucularda FreeBSD kullanma deneyimi paylaşılmış
zfs ve jails yoğun biçimde kullanılmış
Tüm servisler her jail içinde bağımsız çalıştırılarak çok maliyet verimli bir yapı kurulmuş
Buluta kısmi geçiş yapılıp hibrit Linux(k8s)+FreeBSD ortamına geçildiğinde maliyetler ciddi şekilde artmış
Veri merkezini doğrudan yönetmek disk değiştirme veya yangına müdahale gibi zahmetler getiriyor, ama AWS de multi-region gibi çeşitli özellikler sunuyor (tabii maliyetle birlikte)
zfs, bir keresinde production DB tablosu yanlışlıkla silindiğinde snapshot sayesinde anında geri dönmeyi sağlayarak büyük fayda sağlamış; yedekleme için de zfs kullanılmış
Production ortamında dtrace ile troubleshooting yapma deneyimi de olmuş
Sunucularda yalnızca FreeBSD kullanıldığında tek bir OS ailesi olduğu için yönetim kolaymış; Linux eklendiğinde ise her ekip farklı dağıtım kullanınca karmaşa çıkmış
FreeBSD'nin kernel+OS bütünleşik yapısı özellikle beğeniliyor
Kendi bakış açısına göre FreeBSD, OpenBSD ile NetBSD'nin güçlü yanlarını dengeli biçimde birleştiriyor
Geçmişte FreeBSD, Intel CPU optimizasyonu ve sağlam güvenliğiyle öne çıkıyordu; özellikle ZFS desteği belirleyici bir fark yaratıyordu
Nvidia sürücülerine de native FreeBSD desteği ancak yakın zamanda geldi
Sonuçta FreeBSD, diğer BSD'lerin avantajlarını ve donanım kararlılığını iyi bir şekilde bir araya getiriyor
FreeBSD'nin OpenBSD veya NetBSD'ye kıyasla çok daha büyük bir kullanıcı tabanına sahip olduğu belirtiliyor
Yazılım kataloğu da daha geniş olduğu için masaüstünde günlük kullanım için de yeterli
Neden Linux kullanılmadığı sorusuna verilen cevap ise Linux'un kurumsal çıkarlara fazla bağımlı hâle gelmiş olması
FreeBSD'nin ZFS desteğinde Linux'tan bir adım önde olduğu görüşü
Lisans sorunları nedeniyle FreeBSD'nin daha iyi bir ortam sunduğu söyleniyor
FreeBSD'nin ağ işleme kapasitesi açısından OpenBSD'den daha güçlü olduğu belirtiliyor
Genel olarak BSD'ler daha yavaş değiştiği için entegre platform olarak kullanıma uygun bulunuyor
Bu yazının FreeBSD geliştirme ortamını çok da iyi göstermediği görüşü var
Bu kadar karmaşık bir OS söz konusuysa, en azından birinin full-time release manager olması gerektiği; ama gerçekte bir yıl boyunca yalnızca part-time destek olması hayal kırıklığı yaratıyor
Yine de Linux'un tek alternatif olmaması açısından FreeBSD'nin varlığı önemli