Makale, RISC-V mimarisi için işletim sistemi veya herhangi bir kütüphane bağımlılığı olmadan, doğrudan donanım üzerinde (bare metal) programlama yapmanın yollarını inceliyor. Hedef platform olarak QEMU'daki riscv64 virt sanal makinesi kullanılıyor, bu da deneylerin tekrarlanabilirliğini sağlıyor. Temel amaç, makine açılışındaki ilk adımları anlayarak, kendi özel yazılımımızı doğrudan işlemcinin çalıştıracağı noktaya yerleştirmek.
Makale, bir bilgisayarın açılış sürecini genel hatlarıyla açıklıyor. Gerçek bir makine açıldığında, donanım önce kendi kontrollerini yapar ve ardından ilk çalıştırma talimatlarını belleğe yükler. Basit mikrodenetleyicilerde bu tek bir ikili (binary) yazılımdan ibaretken, daha karmaşık sistemlerde (laptop, telefon gibi) BIOS'un önyükleyiciyi (bootloader) yüklemesi ve önyükleyicinin de işletim sistemi çekirdeğini belleğe getirmesi gibi aşamalar bulunur. Her makine, ilk yazılımı kendi özel yöntemiyle yükler; örneğin, BIOS ayrı bir depolama çipinde saklanabilir ve güç açıldığında içeriği belirli bir bellek adresine kopyalanarak işlemcinin oradan çalışmaya başlaması sağlanır.
QEMU'daki riscv64 virt sanal makinesi de kendi açılış dizisine sahiptir. Sanal olmasına rağmen, QEMU bu süreci simüle eder. QEMU'nun -bios bayrağı, sanal RISC-V çekirdeğinin başlangıçta çalıştıracağı ilk talimatları iletir. Bu sanal makine açıldığında, QEMU 0x1000 adresindeki belleği bazı talimatlarla doldurur ve program sayacını bu adrese ayarlar. Bu, gerçek bir makinedeki sabit kodlanmış ROM firmware'ine eşdeğerdir. Makalenin sonunda, bu mekanizmayı kullanarak, hiçbir ek yazılıma ihtiyaç duymadan "hello" dizesini ekrana gönderen basit bir bare metal programının nasıl yazılacağı gösteriliyor. Bu yaklaşım, donanımın en temel seviyede nasıl kontrol edilebileceğini anlamak için kritik bir adımdır.
İşletim sistemleri veya kütüphaneler olmadan doğrudan donanım üzerinde kod çalıştırmanın temel prensiplerini ve RISC-V mimarisindeki uygulamalarını anlamak için kapsamlı bir başlangıç noktası sunuyor.