Hacker News 의견들
  • 코드를 살펴보니 정말 컴팩트한 구조였음
    직접 컴파일하거나 실행해보진 않았지만, RISC-V 32비트 정수·곱셈·원자 명령 확장을 포함하고 있음
    부동소수점 연산은 에뮬레이터가 아니라 컴파일러(gcc 등)가 소프트웨어 함수로 에뮬레이션함
    여러 컴파일러에서 지원된다는 점이 매우 영리한 설계라고 생각함
    실제 명령어 세트를 구현한 기반 프로젝트는 mini-rv32ima

  • 이 프로젝트가 WASM처럼 공통 실행 환경을 만들려는 시도와 비슷한 영역에 있는 것 같음
    다만 기반이 RISC-V라는 점이 다름
    각 접근 방식의 한계나 장점을 더 알고 싶지만, 어쨌든 애플리케이션이 공통 VM 위에서 동작하는 미래로 가고 있는 듯함
    현대 웹이 그에 가장 가까운 예시라고 생각함

    • 예전에 WASM과 libriscv를 간단히 비교해봤는데, 브라우저 호환성 때문에 WASM을 선택했음
      libriscv도 멋지고 인상적인 프로젝트임
      참고로 관련 토론 링크는 여기에 있음
    • Google 오픈소스 블로그의 Wasefire 글을 보면, 코드 풋프린트가 더 작아 보임
      다만 RISC-V는 이런 용도에는 적합하지 않을 수도 있음
      예를 들어 즉시값 디코딩을 소프트웨어로 처리하면 느려지지만, 하드웨어에서는 빠름
      그래도 RISC-V는 안정적이고 단순하게 구성할 수 있는 타깃임
  • 코드가 정말 깔끔하고 단일 C 파일 구조가 마음에 듦
    예제 실행을 위해 Docker를 쓰는 방식도 임베디드 환경에서 매우 편리함
    테스트 커버리지도 좋아 보이고, 메트릭을 보는 것도 흥미로울 것 같음
    의료기기에 스크립팅 기능을 추가할 때, 핵심 코드를 매번 재검증하지 않아도 되는 장점이 있을 듯함
    WASM Micro Runtime 같은 임베디드용 WASM 인터프리터와 비교해보면 흥미로움
    Cortex M4F 기준으로 56.3K로 훨씬 큼
    아마 WASM이 최소 RISC-V 프로파일보다 복잡한 명령어 집합이기 때문일 것임

  • “Just add rats”라며 ZigDoom 예제를 소개함

  • 타이밍이 절묘함
    임베디드 펌웨어 테스트용 경량 에뮬레이터를 찾고 있었는데, 대부분의 대안은 너무 무겁거나 불안정했음
    메모리 매핑된 IO 시뮬레이션을 지원하면, 실제 하드웨어 없이 IoT나 마이크로컨트롤러 드라이버 테스트에 유용할 것 같음

    • 이건 쉽게 구현 가능함
      에뮬레이터 코어가 이미 메모리 매핑 IO를 지원하지만, uvm32는 이를 호스트의 추가 RAM 블록(프레임버퍼나 별도 힙 등)으로만 사용함
      쓰기 트랩은 이 부분, 읽기 트랩은 이 부분에서 처리 가능함

마지막에 피싱 어쩌구는 대체 어느 댓글에서 나온건지 모르겠네요

그 댓글은 스팸으로 flag 되어서 사라져버려서 답댓글만 남아서 이상해진것 같아요. 지워 두겠습니다.