4 puan yazan GN⁺ 2025-04-27 | 1 yorum | WhatsApp'ta paylaş
  • RetrOS-32, i386 mimarisi tabanlı 32 bitlik bir hobi işletim sistemi projesidir
  • Grafik, çoklu görev ve ağ özellikleri sunar ve gerçek donanım üzerinde de test edilmiştir
  • C, C++, Assembly ile yazılmıştır ve Docker üzerinden çapraz platform derlemeyi destekler
  • Kullanıcı sistemi kurma, QEMU emülasyonunda çalıştırma ve gerçek cihazda önyükleme mümkündür
  • Proje, olgun çekirdek işlevleri ve ağ yığını içerir; ayrıca sürekli yeni özellikler eklenmektedir

RetrOS-32bit proje tanıtımı

  • i386 mimarisi tabanlı 32 bitlik bir hobi işletim sistemi geliştirme projesidir
  • Grafik ortamı, çoklu görev ve ağ özelliklerini destekler
  • Proje başlangıç tarihi: 12 Mayıs 2022

Varsayılan giriş bilgileri

  • Varsayılan kullanıcı hesapları: system, admin, guest
  • admin parolası admin, guest için parola yoktur
  • Yeni kullanıcılar admin create <kullanıcı_adı> <parola> komutuyla oluşturulabilir

Başlıca geliştirme dilleri ve araçlar

  • C, Assembly: çekirdek, yardımcı araçlar, build sistemi
  • C++: kullanıcı alanı uygulamaları
  • Make: build otomasyonu
  • Docker: çapraz platform derleme ortamı sağlar

Test edilen donanımlar

  • Lenovo x240
  • Asus Eee PC serisi
  • Dell Optiplex 780
  • Samsung N150 Plus
  • Samsung NP-NC10
  • IBM Thinkpad a21p

Başlangıç (Getting Started)

Gerekli araçlar (Prerequisites)

  • Docker: çapraz platform derleme
  • QEMU: sanal makine emülasyonu
  • Linux/WSL ortamı: build-essential, gcc-multilib, grub2, xorriso, xxd
  • MacOS: Docker kullanımı gerekir (32 bit x86 build kısıtlaması)

Kurulum (Installation)

  • Git deposunu klonlayın
  • Git alt modüllerini başlatın
  • make compile, make img komutlarıyla imaj dosyası oluşturun
  • make qemu komutuyla QEMU emülatörünü çalıştırın

MacOS ve Windows’ta Docker kullanımı önerilir

Kullanım (Usage)

  • copy.sh v86 sitesine .img dosyasını yükleyerek çalıştırın
  • QEMU ile doğrudan çalıştırabilirsiniz: make qemu veya qemu-system-i386 <imaj_adı>
  • Gerçek cihazlarda, GRUB tabanlı ISO’yu USB/CD’ye yazarak önyükleme yapılabilir

Proje yapısı (kısa özet)

  • apps: kullanıcı alanı uygulamaları
  • bin: ikili dosyalar
  • boot: önyükleyici kaynak kodu
  • drivers: çekirdek sürücüleri
  • fs: dosya sistemi kodu
  • graphics: grafik işleme kodu
  • include: başlık dosyaları
  • kernel: ana çekirdek kaynakları
  • lib: kütüphaneler
  • net: ağ kodu
  • rootfs: kök dosya sistemi
  • tests: test kodu
  • tools: build ve yardımcı araçlar

Geliştirme yol haritası (Roadmap)

  • Özel önyükleyici ve GRUB uyumlu önyükleme tamamlandı
  • Çok iş parçacıklı preemptive zamanlayıcı ve çekirdek/kullanıcı alanı ayrımı uygulandı
  • Ağ yığını: Ethernet, IP, ARP, UDP, TCP, DHCP, DNS tamamlandı
  • Grafik sistemi: pencere yöneticisi, widget’lar, çift framebuffer render uygulandı
  • Dosya sistemi: Ext2 benzeri, FAT16 desteği, okuma/yazma mümkün
  • Gelecek planları: web sunucusu, FTP, IRC, SSH, Telnet, HTTP, HTML desteği eklenmesi planlanıyor

1 yorum

 
GN⁺ 2025-04-27
Hacker News görüşleri
  • Bu tür projeler AI'dan çok daha hoş görünüyor. Satılacakmış gibi durmuyor ama bir mühendisin yaratıcı şekilde çalıştığını gösteriyor
    • Gençliğimin sonlarında hobi olarak OS geliştirmeyi epey çalıştım. Hâlâ küçük kernel'ler yapıyorum (yakın zamanda bir RISCV küçük kernel'iyle partnerime mesaj yazdırdım)
  • Uzun zamandır gördüğüm en etkileyici tutku projelerinden biri. Neden kendi C compiler'ını yazdığını merak ediyorum
  • Varsayılan sistem fontu daha dar bir varyant olmalı. Sistem çok daha rafine görünürdü
    • Karakterlerin daha fazla yatay alana ihtiyaç duyduğu açık. Her karakter daha dar olmalı ve karakterler arasındaki boşluk mümkün olduğunca az olmalı - şu anki font boyutu ve çözünürlükte bir piksel kadar boşluk yeterli olur
    • Font sistemi hakkında pek bilgim yok ama bunun sabit genişlikli bir bitmap font olduğunu varsayıyorum. Kod tabanında bu değişiklikleri yapmak ne kadar zor bilmiyorum ama çok işse dert etme
    • Baştan bir web OS sitesi yapıyorum ve kısa süre önce font sınıfını tamamen yeniden yazdım. O yüzden bu konu aklımda
  • Harika! Bugün yeniden başlasan neyi farklı yapardın?
    • Alt seviye kısımlar için dil uygunluğu hakkında ne düşünüyorsun? (ör. C'de kalmak ya da C++'ın basit bir alt kümesini veya yeni dillerden birini kullanmak)
    • Çeşitli kaynaklar varken başkalarının kodunu kopyalamadan projeyi nasıl ilginç tutabildin?
  • Tebrikler! 1977'de Commodore PET 2001 kullanmış biri olarak bu harika görünüyor. KolibriOS ve MenuetOSx64 ile oynuyordum ama kendi OS'mi yapmak istemiştim. Başardın! İlerlemeye devam etmeni dilerim
  • Tebrik etmek istedim. Projeden çok etkilendim. Gençliğimden beri OS geliştirme hayranıyım ve bu başarının gerçeğe dönüştüğünü görmek güzel hissettiriyor. Grafik alt sisteminin nasıl başlatıldığını merak ediyorum. Başarılar dilerim
  • GNU gibi büyük ve profesyonel olacak mı? :)
  • Bu compiler'ın işletim sistemiyle nasıl etkileşime girdiğini açıklayabilir misin? Özellikle struct gibi özellikleri nasıl ele aldığı, bu alandaki mevcut sınırlamaların neler olduğu ve planlanan iyileştirmeler ilgimi çekiyor
  • Birkaç projenin aynı anda kilometre taşına ulaşması ilginç. İnsanların hâlâ bilgisayarlarla derinlemesine çalışıp sonuçları paylaşması iç rahatlatıcı
    • İlerlemeye devam etmeni dilerim
  • Editörde Turbo C/QBasic izleri görüyorum
    • Projeye övgülerimi gönderiyorum