1/22/2024

Rust 기반의 Virtio

1. Rust 언어 

Rust는 대충 다 알 거같아, 만약 필요하다면 그때 다시 언급하며, Linux Kernel 이나 Open Source에서 가장 이슈인 언어인 것 같다. 
나도 보기만 여러번 보고, 간단히만 사용해봤지, 아직 더 알아야 하기에 나중에 안 다음에 자세히 남기겠다. 

Rust 관련 

Linux 
추후 한번 사용해보지 


2. 가상화(Virtualization)

가상화는 한마디 Hypervisor라는 가상 CPU를 이용하여 Guest OS를 실행하여 동시에 동작시키는 것이다. 
일단 Docker 와 가상화 차이부터 그림으로 알자 

Docker 와 가상화 차이 
Hypervisor 존재여부차이  

가상화(Virtualization,Hypervisor)
이전에 간단히 가상화 부분을 정리한 것이며 간단히 참고만하자 

AMP/SMP 관련내용 
상위내용에 AMP/SMP 빼먹어서 아래참고  

ARM용 Multi Core방식소개 
오래전에 ARM용 Multi Core 방식을 간단히 정리한 것이며, 틀리수 있다. 
(상위에도 ESP32링크에도 있음) 



2.1 가상화 중요성 

요즘 Embedded SoC/AP의 성능이 좋은 것은 기본적으로 Hypervisor 사용하고 이를 통신하면서 사용한다. 
자동차로 보면, IVI 를 가상화로 돌리는 것을 많이 볼 것 같다. 
Host OS는 RTOS(QNX)기반으로 사용하고 Guest OS를 Linux/Android로 동작하겠다는 것 같으며, 거의 추세로 가는 것 같다. 
임베디드에서도 가상화는 필요하다. 


2.2 Window 가상화 

Window에서는 주로 나의 경우, Virtual Box 와 VMWare로 사용했으며, 아래를 참조하고 알아두기만 하자.
최근에 Broadcom이 VMware인수 했으니, 어떻게 될지도 지켜봐야하니 

  • Virtual Box 
VMWare의 경우, 유료라서 내가 Blog에 기록은 안한 것 같은데, 찾으면 나올 것 같기도 하다(귀찮음, 나중에 다시 VMWare는)

  • VMWare
나도 사용한지 너무 오래되었으며, 가장 기대하는 것은 Cloud 기반이며, 추후 사용해보고, 그때~~~  


참고로, 상위 두 개도 Linux에서 지원해주며, Window용으로 한정해서 생각하지 마시길~ 


2.3 Linux Rust 기반 Virtio

Linux에서 사실 Virtio는 사용한 기억이 거의 없으며, 나중에 시간이 되면 한번 사용해보겠다.

  • Virtio 관련설명 
설명을 잘해주셔서 감사하며, 나중에 사용해보도록 알아보도록 하겠다. 
QEMU이 이것을 사용하는 줄은 몰랐으며, QEMU은 Yocto에서 쉽게 사용가능하다  
KVM도 지금보니, 다시 업데이트 된 것 같으며, Wiki에서 쉽게 이해하시길 

  • Rust Virtio
그림을 보면 쉽게 이해가 가며, 가장 내가 주의깊게 보는 것은 공유메모리이며, 나중에 좋은 AP에서 이용해보도록 하겠다.  
관련소스 

  • Chip 제조사 링크 
참고로, Samsung Exynos 처럼 TI 도 카메라 12개 까지 되는 것이 봤는데, 위치를 찾았다.