Güvenilir, ücretsiz Linux destekli 64 bit RISC-V self-hosting bilgisayar
(contrib.andrew.cmu.edu)Güvenilir, özgür Linux uyumlu self-hosting 64 bit RISC-V bilgisayar
Motivasyon
-
Hedef: Tamamen güvenilir Free/OpenSource bir bilgisayar inşa etmek
- Donanım ve yazılım sisteminin tüm davranışları, tamamen açık HDL (donanım tanımlama dili) ve yazılım kaynaklarına dayanmalı
- Derleyici ve ilgili toolchain de Free/OpenSource olmalı; ayrıca bu bilgisayar sistemi üzerinde derlenip çalıştırılabilmeli
- Yani self-hosting bir Free/OpenSource donanım+yazılım yığını gerekli
-
Kısıtlar: Silikon dökümhanesine sahip değiliz ve onu kontrol etmiyoruz
- Kendi ASIC'imizi üretemediğimiz için, "donanım" bileşenlerini FPGA üzerinde inşa edeceğiz
- FPGA programlama ve bitstream üretimi Free/OpenSource araçlarla yapılmalı
-
Güvenilirlik açısından avantajlar:
- Çip dökümhanesi FPGA'nın ne için kullanılacağını bilemez ve "ayrıcalıklı bit"lerin çipin neresine yerleştirileceğini de bilemez
- Bu, ayrıcalık yükseltmeye yönelik donanım arka kapılarını önlemeye yardımcı olur
- FPGA'lar aynı bileşenlerden oluşan düzenli bir ızgaradan oluştuğu için, özel ASIC'lere göre görsel inceleme (kimyasal söküm ve TEM görüntüleme) daha kolaydır
-
Üretim aşaması saldırı yüzeyini sınırlama:
- Kötü niyetli kaynakları ve/veya toolchain'i derlenebilir kaynakla sınırlayarak, güvenilir bir nihai ürün (dağıtılan donanım+yazılım bilgisayarı) oluşturmak
Ek kaynaklar ve ilk deneyler
-
CReSCT 2020 makalesi, slaytları ve sunumu: IEEE S&P 2020 atfı
-
CMU/SEI araştırma incelemesi 2019 slayt destesi ve sunumu
-
CERT/SEI'deki güvenilir bilişim çalışmaları hakkında önceki slayt destesi
-
lowRISC projesi:
- Bileşenleri ilgili upstream projelere rebase etme çabası
- Bu proje çok faydalı bir kaynak oldu ve bileşenleri anlamada büyük yardım sağladı
- Ancak yazının kaleme alındığı sırada kapalı HDL toolchain'e dayanıyor ve bileşen listesinde özel mülkiyetli IP modülleri (DRAM denetleyicisi vb.) kullanıyor
-
yoloRISC:
- RV64IMAC, Rocket-Chip tabanlı blinky demo SoC
- Lattice ECP5 5G Versa geliştirme kartı için yosys/trellis/nextpnr kullanılarak oluşturuldu
GN⁺ Görüşü
- Özgür donanım ve yazılım: Bu proje, tamamen özgür ve açık kaynaklı donanım ile yazılım kurmaya yönelik bir girişim olarak, güvenilirlik ve şeffaflığa önem veren kullanıcılar için oldukça çekici.
- FPGA'nın avantajları: FPGA kullanımı, donanım arka kapılarını önlemeye yardımcı olur ve görsel inceleme sayesinde güvenilirliği artırabilir.
- Toolchain ve IP modülleri: Bugün birçok proje hâlâ kapalı toolchain'lere ve özel mülkiyetli IP modüllerine bağımlı; bu da tam anlamıyla açık kaynak hedefini zorlaştırıyor.
- Teknik zorluk: Self-hosting bir Free/OpenSource donanım+yazılım yığını kurmak teknik açıdan son derece zorlu bir iş.
- Gelecek potansiyeli: Bu proje, geleceğin güvenilir bilişim sistemlerinin geliştirilmesine önemli katkı sağlayabilir ve açık kaynak topluluğu üzerinde büyük etki yaratabilir.
1 yorum
Hacker News görüşü
Hacker News yorumları derleme özeti
FPGA'nın güvenliği: FPGA üretim sürecinde donanım arka kapısı yerleştirilmesini engelleyebilir. Sistem tamamen durabilir, ancak normal çalışıyormuş gibi yapıp sahibine ihanet etmez.
FPGA'nın potansiyel riskleri: FPGA içinde gizli bir CPU bulunabilir ve bu CPU, FPGA programı üzerinde tam okuma/yazma erişimine sahip olabilir. Sistem popülerlik kazanırsa, üretim süreci hakkında daha fazla bilgi edinilip ayrıcalıklı bitlerin bulunma olasılığı artar.
Açık kaynak araç zinciri kullanımı: Açık kaynak araç zinciri kullanarak RISV-V softcore çalıştıran OrangeCrab FPGA üzerinde bir Linux shell'ine giriş yapabilmek şaşırtıcı. Geçmişte bu mümkün değildi.
VexRiscv ve SpinalHDL: VexRiscv ve SpinalHDL tabanlı bir tasarım kullanılıyor; sınırlı SRAM (512KB) nedeniyle Linux çalıştırmıyor, ancak Ethernet ve HDMI destekliyor. Grafik ve metin modlarını desteklemek için CGA benzeri bir video adaptörü kodlandı.
DDC ve güven saldırıları: Çeşitli çift derleme (DDC) yoluyla güven saldırılarını önleme çalışmalarından bahsedilmesi sevindirici. DDC ile ilgilenenlere ilgili bağlantılara bakmaları öneriliyor.
Sistemi yeniden inşa etme: Sistemi kendi başına yeniden inşa edip bit dosyasının aynı olup olmadığını doğrulamak iyi olur. 512MB ve 65MHz CPU ile bunun 4,5 saatte yapılabilmesi şaşırtıcı.
İlk Unix iş istasyonlarıyla karşılaştırma: 50-65MHz ve 512MB, 1990'ların başındaki Unix iş istasyonlarıyla kıyaslanabilir. RAM açısından hatta daha iyi olabilir.
LiteX ve Kintex-7 FPGA: 2022'de LiteX ile benzer bir çalışma yapıldı, ancak Kintex-7 FPGA için Vivado gerekiyordu. Sonuçta Linux ve Xorg çalıştıran açık gateware bir dizüstü bilgisayar yapıldı.
Shakti projesi: Hindistan'daki IIT-Madras'ta geliştirilen, RISC-V tabanlı açık kaynak işlemci geliştirme ekosistemi olan Shakti projesine bakılması öneriliyor.
OSXKVM çalışması: QEMU/KVM üzerinde OSX çalıştırma işi yapan kişiyle bu projeyi yürüten kişinin aynı olduğu belirtiliyor.
Kendi kendini barındıran RISC-V makine ihtiyacı: Tam anlamıyla kendi kendini barındıran bir RISC-V makineye ihtiyaç olduğu görüşü var. Şu anda en büyük kısıt, yeterli RAM'e sahip bir FPGA kartı bulmak.
Kendi kendini barındırmanın zorlukları: Kendi kendini barındıran donanım ve yazılım fikri güzel, ancak 60MHz CPU'da GCC gibi bir şeyi derlemek hayal edilemeyecek kadar zor. Gentoo'yu RockPro64 üzerinde kullanırken derleme süreleri çok uzun olduğu için vazgeçildiği deneyimi paylaşılıyor.