Venus
Ekosystem RISC-VVenus to symulator dydaktyczny asemblera RV32IM z UC Berkeley, używany w CS 61C.
Przegląd
Venus to symulator RISC-V działający w przeglądarce internetowej. Symulator to program, który imituje procesor, dzięki czemu można uruchamiać kod maszynowy bez posiadania sprzętu RISC-V. Venus odczytuje kod asemblera napisany dla RV32IM. Kod asemblera to czytelna tekstowa postać instrukcji maszynowych. RV32I to podstawowy 32-bitowy zestaw instrukcji RISC-V, a rozszerzenie M dodaje mnożenie i dzielenie.
Edytor i symulator współdzielą jedną stronę. Programy żądają usług przez ecall, instrukcję RISC-V, która prosi środowisko o coś. Venus obsługuje ecall do wypisywania wartości i do przydzielania dodatkowej pamięci.
Historia
Keyhan Vakil rozpoczął projekt Venus w 2017 roku na UC Berkeley. Projekt jest napisany w Kotlinie, języku programowania, który można kompilować do JavaScriptu. To właśnie ta kompilacja pozwala uruchomić symulator w przeglądarce bez konieczności instalowania czegokolwiek.
UC Berkeley przyjęło Venus na kurs CS 61C, dotyczący struktur maszynowych, gdzie studenci piszą swoje pierwsze programy w RISC-V. Później kurs utrzymywał własny fork pod venus.cs61c.org. Fork to kopia projektu rozwijana niezależnie od oryginału. Inny fork, Venus164, dodaje funkcje dla projektu kompilatora ChocoPy na kursie kompilatorów w Berkeley.
Gdzie jest używane
Venus pasuje do pierwszego kursu asemblera. Student otwiera stronę, wkleja program i uruchamia go. Jego zestaw instrukcji pozostaje na poziomie RV32IM, niewielkiego zestawu, który sprawia, że pierwsze lekcje skupiają się na rejestrach, pamięci i przepływie sterowania.
