오늘날, 기성품(off-the0shelf) 운영체제의 요구사항은 신뢰성 또는 실시간으로 필요로 하는 애플리케이션을 지원으로 복잡해 졌다. 이러한 요구사항을 다루기 위해서는 Microkernel-based separation이 해결책일 수 있다. Microkernel-based separation은 legacy 어플리케이션을 다시 사용할 수 있으며, 요구되는 검증부분이 작다. 또한 실시간 어플리키에션, 신뢰성 어플리케이션을 다시 사용할 수 있다. 때문에 본 논문에서는 Microkernel based workhorse approach를 제안한다.
Workhorse 운영체제는 리눅스 또는 윈도우 운영체제와 같이 기성품 운영체제이며 유저모드에서 동작한다. Core는 운영체제에 의지하며 core 어플리케이션은 core 안에서 작동한다. I/O supporting는 유저모드 I/O 드라이버을 사용하며 안전한 I/O를 위해 workhorse로부터 I/O 드라이버를 분리시킨다. 이 기법은 faulty drivers나 실시간 시스템과의 충돌을 workhorse를 안전하게 보호 가능하며 신뢰된 어플리케이션 또한 보호된다.
Application scenario in Workhorse approach에서는 신뢰할 수 있는 응용 프로그램과 핵심 버그와 악의적인 공격으로부터 보호하며 성공적으로 workhorse를 encapsulation 할 수 있다. 그 예로 PDA에서 신뢰 가능한 E-mail 핸들러는 신뢰하지 않는 workhorse 안에 파일 시스템을 사용할 때 서버로부터 Fetch가 할 수 있으며 암호화, 복호화를 통해 유저에게 전달 한다. 이때 안전하고 신뢰할 수 있는 서비스를 위해 자체 core를 사용한다. 이는 기밀성과 신뢰할 수 있는 응용 프로그램의 무결성은 보장하지만 가용성은 보장하기 않기 때문에 secure storage가 필요로 합니다.
Software Architecture에서는 Microkernel(L4 fiasco) + 신뢰된 서비스 역할을 하는 small trusted core, Dataspace를 통해 메모리는 신뢰하지 않은 컨테이너에 any type 데이터를 넣을 수 있다. 메시지 기반 통신은 region과 copy strings을 공유하는데 쓰이며, Bus-based DMA는 기기의 Dataspace에 있는 물리적 주소를 기억하고 있고 그 값들을 메모리에 pin한다. Window manager는 활성화된 윈도우 display를 제어한다. Secure storage는 키와 신뢰된 어플리케이션의 자격 증명서(credentials)를 가지고 있다. Encryption을 사용하여 workhorse가 메시지의 내용을 볼 수 없도록 하며 이때 secure storage가 필요하다. DMA는 CPU처럼 동작하며 physical address를 이용한다
workhorse로부터 드라이버들을 분리시키는 설명이 있었으며 Separate driver는 메시지(5 sequence)를 사용하며 internal driver는 인터럽트를 사용한다고 한다. 디바이스 드라이버가 Separating address space를 가지는 것에 대한 장점으로 메인 메모리가 디바이스 드라이버가 사용할 공간이 생겼다는 것이다. 분리된 드라이버와 Data transfer는 중요한 이슈이며
Data transfer는 address space간의 data 전송을 의미한다. Bus-master DMA는 bus를 통해 실시한 작업에 대해서 tranjaction 작업하며 중간에 오류 나면 해당 작업 전체를 처음부터 안 한 상태로 되돌린다.
I/O MMU에서 DMA는 반드시 연속적이어야 하며 Physical address에서 동작해야 한다. System call mmap()를 이용하여 Mapping이 가능하다. mmap()에서 각각은 서로 다른 Virtual address지만 같은 physical address page를 이용한다. Workhouse가 I/O MMU를 지원하며 그것은 I/O MMU에서 mapping을 설정하거나 취소할 수 있는 핵심 응용 프로그램을 신뢰한다. 본 논문에서는 I/O MMU mapping의 steps에 대해 잘 나와있으며 Encapsulating을 통해 I/O MMU을 사용하지 않고도 성능(performance)이 있다는 방법도 보여준다.
본 논문에서는 Microkernel based workhorse approach 기법을 제안하였고 workhorse로부터 드라이버가 분리될 수 있으며 workhorse를 encapsulate 하는 기법에 대해 제시하였다. 이에 비슷한 연구들이 많이 진행 되었고, 연구들에 대한 survey도 함께 제시하였다. 본 논문을 통해 옛 드라이버를 수정 없이도 활용이 가능하다는 것을 알게 되었으며 마이크로커널을 통해 다양한 방법으로 디바이스 드라이브를 접근할 수 있다는 것을 배우게 되었다.
'Past Material' 카테고리의 다른 글
Recovering Device Drivers (0) | 2017.05.12 |
---|---|
Improving the Reliability of Commodity Operating System. (0) | 2017.05.12 |
Two-phase Authentication Protocol for Wireless Sensor Networks in Distributed IoT Applications (0) | 2017.05.12 |
Towards the Era of Wireless Keys: How the IoT Can Change Authentication Paradigm (0) | 2017.05.12 |
6LoWPAN Compressed DTLS for CoAP (0) | 2017.05.12 |