차량용 ECU 아키텍처가 분산 아키텍처에서 중앙집중형, 도메인, Zonal 아키텍처로 움직이고 있다. OEM 마다 약간씩 다르지만 목적은 작은 수십/수백개의 ECU를 성능 좋은 수/수십개로 줄이는 것이다. 하드웨어 비용을 줄이고 소프트웨어 업데이트 등을 조금 더 자유롭고 편하게 하고자 하는 목적이다.
이렇게 함으로써 ECU 하나에 들어있는 소프트웨어의 복잡도는 늘어나고 각기 다른 기능을 위한 OS도 하나의 ECU에 여러개가 서로 고립되면서 돌아가야 한다. 이 때 하이퍼바이저 (Hypervisor)을 사용한다. 하이퍼바이저 쪽 전문가는 아니지만 최근 프로젝트를 하면서 Type1, Type2 하이퍼바이저에 대한 구분 및 장단점 그리고 전 가상화 (Full Virtualization)와 반 가상화 (Para Virtualization) 등에 대한 이해를 하면 좋을 것 같아 스터디를 하면서 간단하게 글을 써본다.
TYPE1
하드웨어에 바로 하이퍼바이저를 올리고 그 위에 Guest OS를 올림 (Xen ..), 하드웨어 위에 바로 올려서 성능상 이점을 가지고 갈 수 있고 하드웨어 리소스 관리가 유연하다. QNX Hypervisor이 TYPE1 이라고 이야기는 하지만 TYPE1과 TYPE2 중간 어딘가에 있다고들 한다. QNX Hypervisor은 QNX OS가 무조건 있어야 하는걸로 알고 있다.
TYPE2
하드웨어 위에 OS를 올리고 그 위에 하이퍼바이저를 올린 후 Guest OS를 올림 (Ex, VMWare Workstation, Virtual Box, QEMU), OS에 큰 제약사항이 없지만 성능이 TYPE1에 비해 약간 떨어질 수 있음
그 외에 OS위에 컨테이너로 올리는 것을 TYPE 3라고도 하긴 하는데 Docker나 LXC 등으로 많이 사용함.
전 가상화 (Full Virualization)
하드웨어를 완전히 가상화한다. 이 말은 Guest OS에서 HW를 사용할 때 모두 Hypervisor를 거쳐서 가고 이때문에 성능상 저하가 발생할 수 있다. 하지만 Guest OS를 수정할 필요가 없다는 장점이 있다.
반 가상화 (Para Virtualization)
일부만 가상화를 한다. 일부는 중간 단계 없이 직접 Hypercall을 통해 직접 HW에 접근을 하여 속도는 빠르지만 Guest OS의 커널을 수정해야 한다.
아직 학습중이라 기본적인 내용만 올렸는데 좀 더 알아봐야할 것 같다.
'Development' 카테고리의 다른 글
QT LTS Commercial 버전과 QT LTS LGPL 버전 (0) | 2023.08.28 |
---|---|
EKC (Europe-Korea Conference) 2023 참석 후기 (0) | 2023.08.21 |
소프트웨어 플랫폼에 대해서 - 5부 (Subsystem Delivery 조직 구성) (0) | 2023.07.20 |
소프트웨어 플랫폼에 대해서 - 4부 (Delivery 조직 구성) (0) | 2023.07.19 |
Embedded Open Source Summit 2023 - 후기 (0) | 2023.07.01 |