티스토리 뷰

Partitioned Embedded Architecture based on Hypervisor: the XtratuM approach


Authors: S. Peiro, A. Crespo, I. Ripoll, M. Masmano

Affiliation: Instituto de Informatica Industrial, Universidad Polit ´ ecnica de Valencia, Spain


Abstract

파티션 소프트웨어 구조는 예측이 매우 중요한 경우의 보안 및 항공 전자 공학 요수 사항을 충족하기 위해 고안되었다.

이 파티션 소프트웨어의 구조는 새로운 프로세서와 보안성의 향상요구에 대한 새로운 가능성을 열었다. 항공 전자 산업은 소프트웨어의 기능과 효율성을 관리 할 수 있는 솔루션은로 모듈형 항공전자 (Integrated Modular Avionics (IMA))로 통합하고 있다. 

현 우주 분야에서도 이분야를 개발에 도입하고 있다. 파티션 시스템을 달성하기 위해 사용되는 솔루션 중 하나는 가상화 기술을 이 있다. 이 논문은 Xtratum을 설명한다. 이 bare-metal hypervisor는 para-virtualization으로 구형되었다. 그리고 dedicated device techniques Xtratum은 가상머신을 제공하며 이것은 native와 유사한 성능을 나타낸다. 이것은 파티션의 실행set을 허가한다. 파티션은 각각의 운영체제와 응용프로그램을 포함하고 있다. 보안은 하이퍼 바이저를 통해 temporal and spatial isolation 제공된다.


이논문은 핵심 설계를 설명한다. 

1) temporal and spatial partition isolation를 달성하기 위한 사용기준과 

2) 하이퍼 바이저 레벨에서 temporal and spatial isolation properties를 확인(검증) 하기위한 신뢰할수있는 하드웨어 환경의 확장에 대하여.


Real-time Embedded Partitioned System

파티션된 커널이한 기본적으로 프로세서간의 강한 isolation을 하도록 몇가지가 수정된 실시간 운영체제이다.


Dedicated Devises

임베디드 상황에서는 유저가 명시한대로 주변장치를 사용하는것이 좋다, native하게 관리하는것보다. 

1) 디바이스가 다른 파티션과 공유되지 않을때 ( 한파티션이 하나의 디바이스를 독점할경우 )

2) 하이퍼 바이저 레벨에 넣기에는 너무 복잡한 드라이버일 경우 

3) 주변장치가 파티션이 공유해서 사용한다면 I/O 서버 파티션을 사용하여 같이 사용하게 한다.


A. Xtratum Architecture

Xtratum은 파티션을 하기위한 가상화 서비스를 제공해야 한다. 

The internal XtratuM architecture includes: 

memory management, scheduling (fixed cyclic scheduling), interrupt management, clock and timers management, partition communication management (ARINC-653 communication model), health monitoring and tracing facilities.


세개의 계층으로 식별할 수 있다. 

Hardware-dependent layer:

하드웨어를 관리하기 위하여 반드시 필요한 드이이버 set를 구현:

processor, interrupts, hardware clocks, hardware timers, paging, etc.

이 레이어는 HAL(Hardware Abstraction Layer)를 통하여 나머지와 isolation되어야 한다. 그러므로  HAL은 높은 추상화를 제공하면서 기본 하드웨어의 복잡성을 숨긴다.  

- Internal-service layer:

이 서비스는 파티션은 사용할수 없다. 이계층은 최소한의 C라이브러리와 제한적으로 필요한 C표준함수가 제공된다.

(e.g. strcpy, memcpy, sprintf)and a bundle of data structures. The system boot is also part of the internal services.

- Virtualization-service layer:

이것은 파티션에게 hypercall mechanism을 제공하여 para-virtualisation를 지원하기 위하여 필요한 서비스를 제공한다.  

몇몇 서비스들은 Xtratum내부 모듈에서도 사용된다. 


B. Partition



파티션은 가상화될 필요성이 있다. Xtratum의 에서 동작하며 협력하도록 변경해야한다. (Para이야기) 

예를 들면 파티션은 바로 하드웨어 인터럽트를 관리할수 없다: enabling/disabling는 Trap을 발생한다. 따라서 파티션은 적절한 하이퍼 콜을 호출하도록 수정해야한다.  (overflow가 일어나거나 privileged instruction에 유저모드로 접근할경우 하드웨어적으로 발생한다. 가상화에서 파티션의 운영체제는 유저모드에서 동작하기때문에 본인은 운영체제라고 생각하고 privileged instruction를 실행하면 실제 하드웨어는 유저모드에서 접근이기때문에 trap이 발생하는 문제가 있다.


Xtratum은 두가지 타입으로 파티션을 정의 하였다: normal 그리고 system  

시스템 파티션은 다른 파틱션이나 시스템은 관리와 모니터를 할 수 있다. 몇몇 하이퍼콜은 nomal파티션에서 사용될수 거다 기능에 제약을 받는다. 


C. Processor dependencies

The presence or absence of some processor features (MMU, or MPU (Memory Protection Unit), supervisor modes, etc.) has a strong impact on its design and posterior implementation.


Trustablity Enforcement


안정성이 중요한 임베디드시스템을 위한 하이퍼바이저를 설계하기 위해 다음과 같은 설계기준을 준수해야한다:


Strong spatial isolation:

하이퍼 바이저는 특권모드로 파티션은 사용자모드로 동작한다.

파티션은 독립적으로 물리적 주소공간은 할당 받아야 하며 자신의 메모리영역만을 접근할 수 있다. 

- Strong temporal isolation:
    fixed cyclic scheduler ( 시간 단위는 1마이크로초 이다. )

- System partitions:

일부 파티션은 하이퍼 바이저로 부터 특별한 서비스를 제공받는다. ( 시스템 파티션 (I/O서버나 헬스모니터서버))

- Robust communication mechanisms:

파티션은 하이퍼바이저가 제공하는 명시된 서비스를 통하여 다른 파티션과의 커뮤니케이션이 가능하다. 

port-based한 메카니즘으로 파티션간의 port to port 연결을 만들어서 통신한다(sampling a queuing). 이 내용은 ARINC-653표준을 따른다. 

- Interrupt Model:

하이퍼 바이저는 안전한 인터럽트 모델을 파티션에 제공해야한다. 파티션은 native Trap과 상호작용을 할 수 없다. 

모든 인터럽트는 일단 하이퍼 바이저가 handled한다. 그리고 system configuration 따라 어떠란 파티션에 charge된것인지를 찾아서 전달한다.

- Fault management model: 

fault는 하이퍼바이저에 의해서 detected 되고 handled 된다. 

폴트의 정의는 발생하는 Trap과 event trigger 이다. 

- Non-preemtable:

설계의 복잡성을 줄이고 구현의 신뢰성을 위해서 하이퍼 바이저는 monolithic, non-preemtable kernel로 구현되었다. 이결정은 내부 race condition을 방지하고 공식적인 모델로 용이하다. 

- Resource allocation:

system configuration file에 명시된 되로 하드웨어 자원이 할당된다. 

이 configuration은 파티션에게 시스템 자원을 할당에 대하여 허가 한다. (memory, I/O registers, devices, etc.

- Small:

코드 라인의 증가하게 되면 검증과 형식 검증에 복잡성이 증가하게 된다. 

하이퍼 바이저는 가능한 최소한의 서비스를 제공해야 한다. 

- Deterministic hypercalls:

모든 하이퍼콜은 결정적이고 빨라야한다. 


A. Interrupt Model

서로 다른 제조업체는 주위가 필요한 신호를 수신하는 프로세서 메커니즘을 설명하기 위해 exceptions, faults, aborts, traps, and interrupts 등의 용어를 사용합니다. 이 논문에서는 interrupt란 단어을 사용한다. 

파티션 시스템에서 하이퍼 바이저가 native interrupt를 handle한다. 그리고 다음과 같은 virtual interrupt를 발생시킨다:

i)   virtual traps (as consequence of traps)

ii)  virtual exceptions (as consequence of a exceptions)

iii) virtual hardware interrupts (as consequence of peripheral interrupts)


모든 예외를 파티션에 전달하지는 않는다.

예를 들어 메모리 전근에러 that is 하이퍼바이저의 space isolation 위반으로 인한 결과로 발생 할 수 있다. 이것은 파티션의 중단과 다른 가상 예외가 발생할 수 있다. 반면 수치 오류는 파티션에 바로 전달된다. 

memory isolation error, IO isolation error and temporal isolation error.

오직 virtual hardware interrupts만을 파티션이 enabled or disabled할수 있다. 


B. Fault Management Model

Health Monitor (HM)

Following scenarios could raise a HM event:

- CPU에서 예외가 티러거된다. 예외 핸들러는 관현된 HM_event를 발생 시킨다. 

- native 인터럽트가 수신되고 temporal or spatial properties가 유효되지 않게 된다. 

- 트랩이 수신되고 temporal or spatial properties가 유효되지 않게 된다. 

- 파티션은 이생 내부 이상상황을 감지하고 HM_event를 발생 시킨다. 

- 파티션인 하이퍼바이저의 서비스를 받을때 (하이퍼 콜) 만약에 검증이 실패하면 HM_event를 발생 시킨다. 




























공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함