Fuchsia İşletim Sistemi Nedir?
Google’nin geliştiridiği işletim sisteminin adı: Fuchsia
Görünen o ki, şirket bununla Linux mimarisine sırtını dönüp, yerine kendi geliştirdiği/kısmen) mikro çekirdek Zircon’a güveniyor.
Ayrıca Android işletim sistemi piyasasında neredeyse rakipsiz olmasına rağmen, Fuchsia, yalnızca masaüstü işletim sistemi Chrome’nin değil, aynı zamanda mobil cihazlar için tasarlanmış Android’in de yerini alacak.
Google Fuchsia geleceğin işletim sistemi mi? Projeye yakından baktık.
Google Fuchsia nedir?
Fuchsia, Google’ın 2016’dan beri açık kaynaklı olarak geliştirdiği modüler, obje temelli, gerçek zamanlı bir işletim sisteminin adıdır.
Sistem C, C ++, Dart, Go ve Rust dillerini destekler aynı zamanda modern 64-bit Intel/ ARM işlemcilerde çalışır.
Önemli!
Gerçek zamanlı bir işletim sistemi (RTOS), olaylara anında veya önceden tanımlanmış bir süre içinde yanıt verebilen ve sonuç sağlayabilen bir işletim sistemidir. (Örneğin, Arabalarda, tarfik ışıklarında vs. “gerçek zaman” kullanılır. )
Belirttiğimiz gibi Fuchsia’nin kaynak kodu açık kaynak lisansı altındadır (BSD, MIT ve Apache lisansları dahil) ve Google’ın herkese açık Git depolarındaki herkes tarafından görüntülenebilir ve indirilebilir.
Yazılanlardan anlaşılana göre Fuchsia, akıllı telefonlar, tabletler, dizüstü bilgisayarlar ve masaüstü bilgisayarlar için aynı derecede uygun.
Fuchsia İşletim Sistemi nasıl çalışır?
Google’nin Fuchsia’nın geliştirilmesi sırasında, geçmiş hatalardan; özellikle de Android ve Chrome’nin güncellenmesi ve değiştirilmesiyle ilgili sınırlamalar ve sorunlardan gereken dersleri çıkardığını söyleyebiliriz.
Esasen, Fuchsia’nın yerleşik Google işletim sistemlerinden temel farkı: baştan sona modüler olmasıdır.
Ancak burada önemli bir detayın altını çizmekte fayda var: Fuchsia’daki “modülerllik” sadece sistem mimarisini değil, aynı zamanda bir uygulamanın “ne olduğuna” dair tamamen yeni bir anlayışı da ifade eder.
Modüler uygulama tasarımı
Google Fuchsia’nın, “alışılagelmiş uygulama konseptini” bozan modüler bir tasarımı var.
Açıklayalım.
Öncelikle yazılım birimlerine “paketler” deniyor ve iki tür paketten söz ediliyor. Birinci “paket” meta veriler, içerik dosyaları ve çalıştırılabilir elemanlar da dahil olmak üzere birden çok dosyanın bir seçiminden oluşuyor.
İkinci paket, Google terminolojisinde “bileşenler” olarak adlandırılıyor.
Fuşya bileşenleri, bugün “uygulamalar” dediğimiz şeye karşılık geliyor. Her bileşen belirli bir görevi yerine getiriyor ve karmaşık uygulamaları etkinleştirmek için diğer bileşenlerle birleştirilebiliyor.
Bir bileşenin parçaları, ilgili kodun yanı sıra bir bildirim dosyasını da içeriyor. Bileşenler her zaman kendi sanal alanlarında çalışıyor, ad alanları aracılığıyla nesnelere erişiyor ve bunları bir dışa aktarma dizini aracılığıyla yayınlıyor.
Fuchsia işletim sistemi, iki tür bileşene odaklanıyor: “modüller” ve “aracılar” .
Aracı rolündeki bileşenler, arka planda çalışıyor ve diğer bileşenler için hizmetler sağlıyor. Bir aracı, başka bir bileşen veya sistem tarafından çağrılıyor. Örneğin, push bildirimleri veya diğer ekran üzerindeki işlemler gibi belirli tetikleyicilere yanıt olarak.
Modüller, ön planda yürütülen ve kullanıcı tarafından görülebilen bir kullanıcı arayüzüne sahip bileşenlerdir. İşletim sistemindeki her modül belirli bir görev için tasarlanmış ve gerektiğinde otomatik olarak erişilebilmesi için buna göre işaretlenmiş.
Bu, sözde fiiller ve isimler kullanılarak tanımlanabilen “modül işlevi” kullanılarak yapılıyor .
Her modül, modülün neler yapabileceğini gösteren bir fiil listesi ile birlikte çalışılan “varlıkları”” temsil eden isimlerin bir listesini içeriyor.
Google terminolojisine göre “varlık” terimi , referans olabilen, alınabilen, sunulabilen, manipüle edilebilen veya paylaşılabilen yapılandırılmış bir veri nesnesi olarak var olan, benzersiz şekilde tanımlanabilen herhangi bir kişiyi, yeri, şeyi, olayı veya kavramı içeriyor.
Pratikte, gerçek zamanlı işletim sistemi Fuchsia ile çalışmak bu nedenle aşağıdaki gibi gerçekleşiyor:
Bir kullanıcı bir eylemi gerçekleştirir gerçekleştirmez, Fuchsia,
- Görev için uygun modülü otomatik olarak belirliyor.
- İstenilen eylem, fiil ve isim kombinasyonuna çevriyor.
- Sistem daha sonra istenen fiili destekleyen tüm modüllerin bir listesini alıyor ve bir sonraki adımda,
- İstenen ismi de işleyebilen modüle göre filtreliyor.
İlgili modüller, sözde hikayeler olarak gruplandırılabiliyor. Yani Hikayeler, farklı eylemleri ve görevleri mevcut gereksinimlere göre birleştirir ve kullanıcıların karmaşık uygulamaları kendi fikirlerine ve gereksinimlerine göre bir araya getirmelerini sağlıyor.
Buraya kadar olan kısmı Özetleyecek olursak:
Fuchsia İşletim Sistemi’nin modüler uygulama konseptiyle Google, odağını uygulamalardan eylemlere ve içeriğe kaydırıyor. Halihazırda kullanılan bir uygulamanın klasik işletim sistemi yerine, Fuchsia’daki görevler, halihazırda gerekli kaynaklara modüller aracılığıyla erişen sözde hikayelerdeki bir grup bileşen tarafından gerçekleştiriliyor.
Modüler Sistem Mimarisi
Fuchsia’nın sistem mimarisi de modüler bir yaklaşıma dayanıyor. İşletim sistemi, her birinin kendi görevleri olan dört veya daha az bağımsız düzeyden oluşuyor: Zircon, Garnet, Peridot ve Topaz.
Zirkon
Zircon (eski adıyla Magenta), yeni Google işletim sisteminin temelidir, ancak kesinlikle Fuchsia’nin bir parçası değildir ve diğer işletim sistemlerinde de kullanılabilir.
Zircon, Fuchsia’nın çekirdeğini, aygıt yöneticisini, en temel ve birinci taraf aygıt sürücülerini ve libc ve launchpad gibi düşük seviyeli sistem kitaplıklarını içerir.
Ayrıca Zircon, işlemler arası iletişim için bir protokol olan FIDL’yi (Fuchsia Arayüz Tanımlama Dili) sunar. FIDL, programlama dilinden bağımsızdır, ancak C, C ++, Dart, Go ve Rust gibi popüler programlama dilleriyle bağlantıları vardır .
Fuchsia’nin temeli olarak Zircon, sonraki seviyeler için donanım erişimi sağlar, paylaşılan donanım kaynakları üzerinden yazılım soyutlamaları oluşturur ve düşük seviyeli yazılım geliştirme için bir platform görevi görür.
Zircon, Android için bir önyükleyici görevi gören Project Little Kernel’in (LK) sonucudur.
Garnet
Garnet, Zircon’a dayalı ilk Fuşya’ya özgü sistem katmanıdır. Aygıt düzeyinde çeşitli sistem hizmetleri ve ağ, medya, grafik hizmetleri sağlanır.
Örneğin yazılım yükleme, sistem yönetimi ve diğer sistemlerle iletişim için Garnet, grafik oluşturucu Escher, paket yönetimi ve güncelleme sistemi Amber ile metin ve kod editörü Xi’yi içerir .
Peridot
Peridot, modüler uygulamaların (yukarıya bakın) mevcut kullanıcı gereksinimlerine göre yönetildiği ve derlendiği Fuchsia işletim sistemi seviyesidir. Peridot’un temel bileşenleri Ledger ve Maxwell’dir.
Ledger : Ledger, her bir Fuchsia bileşeni (modül veya aracı) için ayrı bir veri deposu sağlayan bulut tabanlı bir depolama sistemidir (Dağıtılmış Depolama Sistemi).
Bu, farklı cihazlar arasında senkronize edilir. Bir kullanıcının Fuchsia cihazında kaldığı yerden, başka bir Fuchsia cihazında aynen devam etmesine olanak tanır. Defter, kullanıcının Google hesabına güvence altına alınmıştır.
Maxwell: Maxwell ile Google, Fuchsia’yaya kullanıcıları yapay zeka olarak destekleyen bir bileşen entegre etti.
Tıpkı Fuchsia’da olduğu gibi, Maxwell modüler bir tasarıma sahip. AI sistemi, kullanıcının eylemlerini ve onlar tarafından kullanılan içeriği analiz eden, arka planda uygun bilgileri belirleyen ve önerileri işletim sistemine ileten bir dizi aracıdan oluşuyor.
Örneğin, hangi modüllerin veya hikayelerin uygun olması için yüklenmesi gerektiği, kullanıcının belirli bir zamandaki davranışı vb.
Ayrıca Google Dil Asistanı, Fuchsia projesi çerçevesinde Kronk kod adı altında daha da geliştirilmekte olan AI bileşeninin bir parçasıdır .
Dikkat!
Kronk, şu ana kadar Fuchsia’nin açık kaynaklı bir proje olarak geliştirilmemiş tek bileşenidir.
Topaz
Topaz, kullanıcıların işletim sistemiyle etkileşime girdiği Fuchsia’nin sistem seviyesidir. Burada, aşağıdaki seviyelerde tanımlanan bileşenlerin kullanıcı arayüzleri görüntülenir: hem ana ekranlı grafik kullanıcı arayüzü – Armadillo veya Capybara cihazına bağlı olarak – hem de modüllerin görsel sonlandıkları noktalar.
Google’ın platformlar arası açık kaynak mobil uygulama platformu Flutter da buraya sistem düzeyinde entegre edilmiştir. Bu nedenle, Fuchsia kullanıcılarının gelecekte Android veya iOS uygulamaları gibi diğer sistemlerden uygulamaları da çalıştırabileceği ve kullanabileceği varsayılabilir.
Bir bakışta Fuchsia’nın avantajları ve dezavantajları
Modüler yaklaşıma uygun olarak, Fuchsia geliştiricileri, sistem mimarisini özel görevler içeren bireysel alanlara böldüler(izole birimler). Bu sadece kodun okunabilirliğini iyileştirmekle kalmadı, aynı zamanda işletim sisteminin uyarlanabilirliğini ve güncellenmesini de etkiledi. Bunun yanı sıra Google, Android’in uzun süredir mücadele ettiği güncelleme sorununu da çözmüş görünüyor.
Gerçek!
Android ekosistemi ciddi bir güncelleme sorunuyla mücadele ediyor. Resmi dağıtım panosuna bir bakış şunu gösteriyor: İşletim sisteminin yeni sürümleri yavaş yavaş yayılıyor. Apple donanımı ve yazılımı aynı kaynaktan gelip ve hemen uyarlanabilirken, her Android güncellemesinin önce çeşitli donanım üreticileri tarafından uyarlanması gerekiyor.
Ek olarak, modüler sistem mimarisi, Fuchsia işletim sistemini kendi fikirlerine göre uyarlamak veya genişletmek isteyen Google’ın satış ortaklarının ihtiyaçlarını karşılıyor.
Donanım üreticileri, diğer düzeylerin işlevselliğini etkilemeden, işletim sisteminin ayrı düzeylerini kendi ürünleriyle değiştirme olanağına sahiptir.
Örneğin Samsung, Topaz’ı kendi geliştirdiği TouchWiz tarzı bir kullanıcı arayüzüyle değiştirebilir. Amazon, Peridot ve Google Dil Asistanından vazgeçebilir ve bunun yerine Fuchsia’yı Alexa dahil AWS tabanlı bir uygulama modülü ile donatabilir.
Her iki durumda da cihaz üreticileri , Zircon ve Garnet özelliklerini veya bu katmanlar için resmi güncelleme döngülerini etkilemeden Fuchsia OS’nin kişiselleştirilmiş sürümlerini sunabilir .
Bu durumda sözü edilebilecek tek dez avantaj,Google’nin, Ledger’ı Fuchsia’nın temel bir bileşeni yapması olacaktır. Ledger, sistemi buluta sıkı bir şekilde bağlayarak, uygulamaların birden fazla cihaz arasında senkronizasyonunu kontrol eder. (Ledger bence k8s/kubelet gibi bir uç birime dönüştürülebilir)
Son Söz
Teknoloji şirketleri (ve dolayısıyla tüm diğer şirketler),veri alışveriş hızı konusunda temek Fizik kurallarından kaynaklanan gecikmelerden olumsuz etkileniyor(Latency). Işık hızında yapılan veri alışverişinde yaşanan milisaniyelik gecikmeler, birçok uygulamayı çalıştırmak için çoğu zaman önemli bir sorun haline gelebiliyor.
Dolayısıyla şirketler, 5G gibi teknolojiler ile uyumlu çalışabilecek ve Real-Time sonuçlar üretebilecek bambaşka dinamikleri olan sistemlerin arayışı içine girmiş durumdalar.
Benim görüşüme göre, Fuchsia Google için bu soruna çözüm olacak bir proje gibi duruyor.
Bildiğiniz gibi, Apple’ın devrimsel nitelikteki ürünlerini geliştirebilmesini sağlayan DarwinOS ve Cocoa Framework altyapısıydı. Bu altyapı kullanılarak MacOS, IOS ve TabletOS geliştirildi.
Gördüğüm kadarıyla Google de benzer bir yaklaşımı benimsemiş durumda, fakat Apple’den den farklı olarak projesinin içine Kubernetes/Microservice dünyayı da katacak.
Zira Kubernetes, çok modüler çalışabilen bir container yönetim yazılımı. Öyle ki, Container yerine izole çalışacak pocessleri koyabilirsiniz. Fuchsia işletim sisteminin dökümanlarını incelerken, günümüzdeki container yerine bu işletim sistemindeki processlerin kolaylıkla geçebileceğini gördüm.
Ancak önemle belirtmeliyim ki, bu konudaki görüşüm tamamen yanlış da olabilir! Çünkü sadece bir kaç gün önce Google son kullanıcıya yönelik perakende mağazacılık işine girdiğini duyurdu.
Bu gelişme, Fuchsia’nın teknoloji şirketlerinin hız ve RealTime beklentisini karşılamak için değil de, belki de sadece T-shirt’den, tablete kadar kendi ürünlerini satacağı Google Retail Store’lerdeki son kullanıcı ürünleri için tasarlanmış olabileceğini düşündürttü.
Sonucu bekleyip göreceğiz.
Kaynaklar:
Google is starting to reveal the secrets of its experimental Fuchsia OS – The Verge
Fuchsia OS | What does Google’s new operating system offer? – IONOS