HN’de paylaşıldı: Kendi yazdığım hobi işletim sistemi sonunda eski bir IBM ThinkPad’de çalıştı
(github.com/joexbayer)- 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 imgkomutlarıyla imaj dosyası oluşturunmake qemukomutuyla QEMU emülatörünü çalıştırın
MacOS ve Windows’ta Docker kullanımı önerilir
Kullanım (Usage)
- copy.sh v86 sitesine
.imgdosyasını yükleyerek çalıştırın - QEMU ile doğrudan çalıştırabilirsiniz:
make qemuveyaqemu-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 dosyalarboot: önyükleyici kaynak kodudrivers: çekirdek sürücülerifs: dosya sistemi kodugraphics: grafik işleme koduinclude: başlık dosyalarıkernel: ana çekirdek kaynaklarılib: kütüphanelernet: ağ kodurootfs: kök dosya sistemitests: test kodutools: 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
Hacker News görüşleri
structgibi özellikleri nasıl ele aldığı, bu alandaki mevcut sınırlamaların neler olduğu ve planlanan iyileştirmeler ilgimi çekiyor