Selamlar Arkadaşlar,
Valla bi çok uyuglama geliştirdim ama şu anda kafayı yerli milli işletim sistemine takmış durumdayım. Onu geliştiriyorum bi yandan diğer ticari uygulamaları. Saygılarımla
https://qbs.com.tr/










Bir süredir üzerinde çalıştığımız
LAL OS projesini programlama ile ilgilenen arkadaşlarla paylaşmak istiyorum.
LAL OS bir Linux dağıtımı değildir. Windows, Unix veya başka bir işletim sisteminin üzerine kurulmuş bir shell de değildir.
Boot zincirinden kernel’e, dosya sisteminden disk yönetimine, TUI/Shell katmanından grafik altyapısına, GUI framework’ünden compositor mimarisine kadar kendi mimarimiz üzerinde geliştirdiğimiz bağımsız bir x86 işletim sistemidir.
Projenin bizi farklılaştıran önemli yönlerinden biri ise sistemin büyük bölümünün
Delphi / Object Pascal ile geliştirilmesidir.
Delphi çoğunlukla masaüstü ve kurumsal uygulamalarla ilişkilendirilse de LAL OS ile Object Pascal’ı kernel, sistem servisleri, multitasking, grafik altyapısı, pencere yönetimi, compositor ve runtime seviyelerine kadar taşıyoruz.
Kendi Boot ve Kernel Mimarimiz
LAL OS hazır GRUB/Multiboot benzeri bir boot zincirine dayanmaz.
Kendi bootloader ve yükleme mekanizmamız sıfırdan LAL OS mimarisine özel geliştirilmektedir.
Temel yaklaşımımız:
Firmware / Disk → LAL Bootloader → LAL Kernel → Sistem Servisleri → TUI / GUI
şeklindedir.
Diskten kernel’in yüklenmesi, başlangıç ortamının hazırlanması ve kontrolün kernel’e aktarılması kendi boot mimarimizin parçasıdır.
Core/kernel tarafında Linux veya Windows runtime bağımlılığı bulunmaz.
Kernel ve Sistem Katmanları
LAL OS içerisinde bugün üzerinde çalıştığımız veya mevcut sistemde bulunan temel katmanlardan bazıları:
- kendi kernel mimarisi,
- multitasking,
- SMP / çok çekirdek çalışması,
- bellek yönetimi,
- interrupt / exception yönetimi,
- task ve process altyapıları,
- PCI / PCIe cihaz keşfi,
- disk ve aygıt yönetimi,
- sistem API katmanları,
- dosya sistemi servisleri,
- kullanıcı ve sistem çalışma alanları.
Mevcut test sürümlerinde kernel bilgisi sistem tarafından doğrudan raporlanabiliyor ve LALFS disk tabanlı dosya sistemi aktif olarak kullanılabiliyor.
LALFS ve LAL Disk Yönetimi
LAL OS yalnızca RAM üzerinde çalışan demo bir sistem değildir.
Kendi disk ve dosya sistemi altyapısı üzerinde çalışıyoruz.
LALFS – LAL File System disk tabanlı çalışma modeline sahiptir.
TUI/Shell üzerinden doğrudan disk ve dosya yönetimi yapılabilmektedir.
Örnek komutlar:
Bunların yanında sistem komutları:
gibi doğrudan işletim sistemi servislerini kullanan komutlardan oluşuyor.
Amaç Linux komutlarını kopyalamak değil;
LAL OS’un kendi komut ve sistem API yapısını oluşturmak.
TUI – Terminal ve Komut Ortamı
LAL OS yalnızca grafik masaüstünden oluşmuyor.
Grafik sistem devreye girmeden de çalışan kendi
TUI / Shell ortamımız bulunuyor.
Bu katman üzerinden:
- sistem bilgileri,
- disk işlemleri,
- dosya sistemi yönetimi,
- dizin işlemleri,
- tarih/saat,
- yeniden başlatma,
- kapatma,
- cihaz ve sistem bilgileri
yönetilebiliyor.
Dolayısıyla GUI bozulsa dahi işletim sisteminin temel yönetim katmanı grafik altyapıya bağımlı değil.
Network ve İletişim Altyapısı
LAL OS üzerinde ağ katmanı da işletim sisteminin bağımsız bir parçası olarak geliştiriliyor.
Network tarafında cihaz algılama, ağ servisleri ve haberleşme altyapıları üzerinde çalışıyoruz.
Bunun içerisinde:
- temel network katmanları,
- ağ cihazlarının sisteme bağlanması,
- TCP/IP tabanlı servisler,
- istemci bağlantıları,
- veri haberleşmesi,
- SMTP destek altyapısı
bulunuyor.
SMTP desteğini yalnızca “mail uygulaması” olarak değil, işletim sisteminin network servislerinden biri olarak ele alıyoruz.
Uzun vadede amaç network işlevlerini yalnız uygulamaların kendi içinde çözmesi değil, sistem servisleriyle standartlaştırmak.
Grafik Decoder ve Görüntü Altyapısı
Grafik tarafında yalnızca framebuffer’a piksel basan bir sistem geliştirmiyoruz.
LAL OS içerisinde grafik dosyalarının çözümlenmesi için kendi
image/graphics decoder katmanları bulunuyor ve grafik içeriklerinin sistem içerisinde işlenmesi Zuzu grafik altyapısına bağlanıyor.
Bu sayede masaüstü, wallpaper, ikonlar, uygulama görselleri ve UI elementleri tek grafik mimarisi üzerinden işlenebiliyor.
Decoder katmanının grafik motorundan ayrılması özellikle önemli; çünkü ileride yeni görüntü formatları eklendiğinde GUI framework’ünün yeniden yazılması gerekmiyor.
VBE / BGA Grafik Mimarisi
LAL OS’un grafik tarafında
VBE/BGA yalnızca “framebuffer adresini al ve çiz” seviyesinde kullanılmıyor.
VBE tarafında:
- görüntü modu,
- çözünürlük,
- framebuffer bilgileri,
- pixel format,
- görüntü belleği,
- ekran çalışma alanı
kendi grafik katmanlarımız üzerinden yönetiliyor.
VBE/BGA bizim için üst GUI mimarisinin kendisi değil, yalnızca bir
grafik backend / donanım katmanı.
Üstte bulunan:
ZuzuGUI → Scene → Surface → Compositor → Presentation
katmanları VBE’ye doğrudan bağımlı değil.
Bu özellikle ileride farklı grafik backend’lerine geçerken üst GUI sisteminin korunabilmesini sağlıyor.
ZuzuGUI ve Mozaik Masaüstü
LAL OS’un grafik sistemi
ZuzuGUI ve
Mozaik masaüstü mimarisi üzerine kuruluyor.
Burada klasik:
window → bitmap → Z-order → framebuffer
yaklaşımından daha ileri bir yapı hedefliyoruz.
GUI mimarisinde sorumlulukları ayırıyoruz:
Window Lifecycle
Scene Authority
Surface Ownership
Compositor Authority
Retained View Tree
Input / Focus Authority
Presentation
Her katmanın tek authority tarafından yönetilmesi temel prensiplerimizden biri.
Pencerenin oluşturulması, scene’e alınması, surface sahipliği, input/focus, composition ve ekrana sunulması aynı kod parçasının kontrolüne bırakılmıyor.
Bu sayede pencere sistemi büyüdükçe mimari kontrolün kaybolmasını önlemeye çalışıyoruz.
Mozaik UI
Mozaik yalnız masaüstü görünümü değildir.
Masaüstü tarafında:
- pencere yönetimi,
- dock,
- başlatıcı,
- klasör ve dosya görünümleri,
- settings ekranları,
- uygulama pencereleri,
- notification/toast altyapıları,
- theme ve görünüm katmanları,
- retained component yapıları
aynı GUI framework’ü üzerinde çalışıyor.
PE / EXE Çalıştırma Altyapısı
LAL OS’u kapalı bir uygulama ekosistemi haline getirmek istemiyoruz.
Bu nedenle
PE/EXE execution altyapısı üzerinde çalışıyoruz.
Amaç ilk günden “bütün Windows uygulamalarını çalıştırıyoruz” demek değil.
Process, memory, loader, exception, threading ve runtime servisleri olgunlaştıkça PE/EXE uyumluluk kapsamını büyütmek.
OpenJDK Entegrasyonu
OpenJDK tarafında da hazırlık ve entegrasyon çalışmaları devam ediyor.
LAL OS içerisinde:
- OpenJDK runtime ağacı,
- JAVA_HOME,
- Java binary yapısı,
- JVM bileşenleri,
- release ve module yapıları
sistem üzerinde doğrulanabiliyor.
Bu çalışma OpenJDK’nın LAL OS çekirdeğinin bir parçası olduğu anlamına gelmiyor.
OpenJDK, ileride LAL OS üzerinde çalışabilecek
harici user-space runtime olarak değerlendiriliyor.
Geliştirici Ekosistemi
Hedefimiz LAL OS’un yalnız üzerinde birkaç hazır uygulama çalışan kapalı bir sistem olması değil.
Planlanan geliştirme ortamları:
- Delphi / Object Pascal
- Free Pascal
- Lazarus
- C
- C++
- Java / OpenJDK
ve daha ileride kendi geliştirdiğimiz:
Motif
programlama dili.
Motif yalnızca yeni bir syntax oluşturmak için geliştirilmiyor; LAL OS mimarisini, system contract yapılarını, GUI/runtime servislerini ve gelecekte AI destekli geliştirme modellerini daha doğal ifade edebilecek yeni bir çalışma modeli hedefliyor.
Sürücü ve Modern Donanım Çalışmaları
LAL OS tarafında modern PC desteği için:
- PCI / PCIe,
- xHCI,
- USB,
- AHCI,
- NVMe,
- klavye/mouse,
- disk controller katmanları
üzerinde aktif çalışmalar devam ediyor.
Hedef yalnız QEMU’da çalışan bir demo değildir.
Geliştirme sırasında hızlı build/test döngüsü için
QEMU ve VMware kullanıyoruz, ancak nihai hedef standart masaüstü ve dizüstü bilgisayarlarda bare-metal çalışma.
Performans ve Bellek
LAL OS’un önemli hedeflerinden biri düşük kaynak tüketimi.
Grafik masaüstü dahil mevcut geliştirme sürümlerinde yaklaşık
80 MB seviyesinde bellek kullanımı elde edebiliyoruz.
Buradaki amaç sadece düşük RAM kullanmak değil; gereksiz runtime, framework ve servis bağımlılıklarını azaltarak mümkün olduğunca kontrollü ve öngörülebilir bir sistem mimarisi oluşturmak.
Üçüncü Parti Bağımlılığı
LAL OS’un core/kernel, boot altyapısı, sistem servisleri ve temel GUI altyapısında
Linux veya Windows runtime bağımlılığı bulunmuyor.
Core sistem katmanlarını mümkün olduğunca kendi geliştirdiğimiz yapı üzerinde tutuyoruz.
OpenJDK gibi ileride desteklenecek teknolojiler ise bundan ayrı değerlendirilir:
LAL OS Core / Kernel / Boot / GUI Foundations = kendi geliştirdiğimiz sistem
OpenJDK vb. = LAL OS üzerinde çalışabilecek harici user-space teknolojileri
Hedefimiz Nedir?
İlk hedefimiz:
- Türkiye’deki kamu kurumları,
- kapalı ağlar,
- kritik sistemler,
- kurumsal yapılar,
- sistemi kullanmak isteyen son kullanıcılar.
Uzun vadede ise Türkiye’nin yalnız başka ülkelerin işletim sistemlerini kullanan bir ülke değil,
kendi işletim sistemi mühendisliği kapasitesine sahip bir ülke olması gerektiğine inanıyoruz.
Bu nedenle LAL OS’u yalnız “bir masaüstü projesi” olarak görmüyoruz.
Bootloader’dan kernel’e, diskten network’e, TUI’den GUI’ye, decoder’dan compositor’a, runtime’dan programlama diline kadar
uçtan uca bir işletim sistemi teknolojisi geliştiriyoruz.
Henüz geliştirme sürecindeyiz ve önümüzde uzun bir yol var.
Ama hedefimiz net:
Türkiye’den çıkan, bağımsız, denetlenebilir, performanslı ve modern bir işletim sistemi oluşturmak.