티스토리 뷰

An overview of the XtratuM nanokernel


M. Masmano, I. Ripoll, and A. Crespo

Universidad Politecnica de Valencia, Spain.


Abstract

XtratuM can be defined as a thin layer of software

which abstract the essential devices to run a kernel: 

the memory, the timers and the interrupts.


Introduction

RT-Linux를 사용하는 이유 

Enhancing a general purpose OS with real-time capabilities has already been tried with disappointing results.

The most satisfactory results have been obtained by the RTLinux approach, adding a software layer (a hard RTOS) beneath a general purpose OS (Linux or FreeBSD).


This software layer virtualises interrupts and executes the general purpose OS in the background as the lowest priority task of the system.

// 인터럽트를 가상화 하고 

// 시스템의 가장 낮은 우선 순위 테스크로 백그라운드로 범용 OS를 실행한다. 


An important disadvantage of this

approach is that the current hardware architectures

can not be completely virtualised, therefore the device drivers of the guest OSes have to be hacked to

deal with virtual drivers rather real ones.


The ARINC specification 653-x

ARINC 653규약은 High-reliable을 만족하기 때문에 참고하여 이용할 가치가 있다. 

각각의 시스템의 중요성에 따른 다른수준의 phase가 있는데 그중 가장 낮은 단계의 phase 1를 적용한다. 


Basic services offered by the ARINC 653-1 are the following:

//이 밑으로 색칠한 부분이 내가 적용 가능한 부분이다. 

1 Partitions management: 

a partition is described as a program, composed by code and dates with a single, isolate memory address space.


2 Processes management: 

// 전가상화에서는 파티션 내부 까지 스케쥴링 방법이 부자연스럽고 Xtratum도 파티션 스케줄링 까지만 적용하였다. 

in the ARINC 653-x, a process is described as an execution unit within a partition.


3 Time management: 

these services permit to read current time, programming a timer, stopping an existing timer, etc.


4 Memory management: 

the ARINC specification 653-x does not supply any service to allocate or release dynamic memory. All memory is statically allocated at compilation time. // 동적할당은 허용하지 않는다 야호 ~ 


5 Inter-partition communication // 약하게 고려 해야할 부분. 

These services define the mechanisms used to communicate some partition between them.


6 Intra-partition communication // 이부분 또한 Processes management와 같은 이유이다.

These services define the mechanisms used by several processes belonging to a partition to communicate between them.


7 The health monitor: // 영일이 형이 구현한것

the health monitor is the mechanism proposed by the ARINC specification 653-x to recover or kill partition after a fail has happened.


XtratuM architecture

xtratum은 전체 하드웨어를 가상화 하지 않고 각각의 OS도메인에 하드웨어 제어를 허락하고 3가지 만을 가상화 하여 하나의 하드웨어에 두개이상의 OS를 동작하게 된다. 

: Interrupts, Timer, Virtual Memory 


Interrupts:

XtratuM is started up, it is the only one who really controls hardware interrupts and, of course, the

only one who is able to disable/enable real interrupts. An API is offered, enabling to the guest OSes

to deal with the virtual interrupts which allows basically enabling/disabling virtual interrupts, installing

interrupt and exception handlers, and so on.


Timer:

at least

one virtual timer. The exact number of timers implemented by XtratuM depends on the available number of hardware timers.


Virtual Memory:


Implementation details

Adeos nanokernel의 개념을 사용하였다. 논문 [10] 참조 

//리눅스에 RT-Linux 패치하는 개념이랑 비슷한데 하나의 물리적 하드웨어에 2개의 도메인을 만든다는말이다 도메인은 운영체제를 말한다. 

이개념을 적용하여 가상메모리 부분과 잡다한 디바이스 드라이버의 문제를 해결한다. 

//리눅스의 기존의 가상메모리 정책을 와 디바이스 브라이버를 사용하여 개발 복잡도를 줄인수 있다. 

그래서 XtratuM 0.1 version에서는 다음과 같은 방법으로 구현하고 구성되어 있다.


1. 리눅스 커널은 패치(수정/변경/추가)한다.  2가지   

XtratuM이 interrupt를 hook하여 disabling/enabling 할수 있도록 수정하는 부분

Timer를 위한 Hook이 필요하다. 


2. XtratuM각 부분들은 LKM방식으로 구현이 되고 게스트 운영체제들의 생성을 반드시 담당해야한다. (리눅스가 프로세서를 생성하게 하지않는다 이문제는 RT-Linux의 생성 시퀀스가 따로 있어서 이걸 활용하면된다.) 그이유는 메모리 맵을 XtratuM이 관리 해야 하기 때문이다. 


공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함