Geliştirici özel RISC-V emülatöründe Linux çekirdeğini başlattı
Öne çıkanlar
- Linux çekirdeği yalnızca MMU destekli bir CPU, yeterli RAM ve periyodik sistem zamanlayıcısıyla çalışabiliyor.
- Yaklaşık 2 bin satır C++ koduyla yazılan emülatör, RV32IMA komut kümesini ve standart UART birimini modelliyor.
- Hazırlanan donanım emülatörü WebAssembly olarak derlenerek doğrudan tarayıcı üzerinden çalıştırıldı.
Gömülü sistemler için özel donanım geliştiren araştırmacı, yaklaşık 2 bin satır C++ koduyla sıfırdan yazdığı RISC-V mimarili emülatör üzerinde Linux çekirdeğini başarıyla ayağa kaldırdı. Çalışmada Linux'un çalışabilmesi için zorunlu olan MMU destekli 32 bit RV32IMA işlemci komut kümesi, temel bellek haritası, sistem zamanlayıcısı ve seri haberleşme için 8250 UART denetleyicisi yazılımla modellendi.
Sistemin yazılım tarafında crosstool-ng aracı kullanılarak 32 bit mimari için glibc tabanlı özel bir çapraz derleme zinciri hazırlandı. Ardından Linux kaynak kodları gereksiz sürücüler, sanallaştırma ve ağ desteği kapatılarak optimize edildi. Çekirdeğe ek olarak tek dosyadan oluşan statik bir init ikili programı derlendi ve gen_init_cpio yardımıyla RAM dosya sistemi (initramfs) paketine dönüştürüldü.
Donanımın işlemciye tanıtılması amacıyla yazılan Aygıt Ağacı (Device Tree) kaynakları derlenerek çekirdek imajı ve RAM arşiviyle birlikte emülatör belleğine yüklendi. Geliştirici, hazırlanan C++ tabanlı emülatörü WebAssembly formatına dönüştürerek tüm yapıyı doğrudan internet tarayıcısı üzerinden çalışır hale getirdi ve kaynak kodları GitHub üzerinde paylaştı.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.