Goals
- Isolation
- Recovery
- Backward Compatibility
논문의 목적
커널의 reliability를 높이는 것
Extensions이란?
하나의 도메인이면서 모듈 역할을 하는 존재
loadable module은 커널의 모듈화를 높여줌
하드웨어 지원 없이 isolation이 가능하지 않으며 MMU를 이용하여 address space를 구현한다.
Nooks는 page table을 이용하며 Nooks lightweight protection domain은 kernel thread의 limited version이다.
Memory object?
프로세스와 쓰레드의 차이점은?
프로세스는 address space와 1대1로 맵핑하며 쓰레드는 address space에 하나를 공유한다.
XPC? To make calls
XPC는 다른 address space(extensions랑 커널이 다른 address space domain)에서 call을 할 경우가 생긴다.
Recovery? Steps? Failer를 찾는다. 모든 resource들을 해체한다.
Reload와 restart의 차이점? Reload는 프로그램을 메모리에 올리는 것이며 restart는 프로그램을 다시 처음부터 시작하는 것이다.
xHTTPd의 performance가 낮은 이유는 XPC가 높아서….
Motivation
Address the ever increasing system crashes due to new OS extensions
Design for fault resistance not fault tolerance
Interested in reliability, not security
Architecture
Goal and implementation
1. Isolation
The Nooks isolation mechanisms prevent extension errors from damaging the kernel (or other isolated extensions).
2. Interposition
The Nooks interposition mechanisms transparently integrate existing extensions into the Nooks environment.
3. Object Tracking
The NIM's object-tracking functions oversee all kernel resources used by extensions.
- Maintains a list of kernel data structures that are manipulated by an extension,
- controls all modifications to those structures, and
- provides object information for cleanup when an extension fails.
4. Recovery
Nooks' recovery functions detect and recover from a variety of extension faults. Nooks detects a software fault when an extension invokes a kernel service improperly or when an extension consumes too many resources.
Implementation
확장(Extensible) 가능한 운영체제 기술에서 수십 년간의 연구에도 불구하고, 장치 드라이버 확장은 System failures의 중대한 원인으로 남아있다. 이 논문에서는 Nooks를 이용하였는데, OS를 항상 신뢰하기 위해서 드라이버 실패(driver failures)로부터 운영체제를 분리한 신뢰된 서브시스템을 설명하였으며 목표는 기존 드라이버 및 시스템 코드를 거의 변화하지 않고 기존 드라이버 인한 충돌을 방지하는 것이다. 또한 논문에서 제안한 기법을 증명하기 위해, Nook를 Linux 운영체제에서 구현하고 여러 가지 장치 드라이버(device driver)를 결함 및 분리하는데 사용하였다.
본 논문에서 제안한 Nooks isolation 기법은 4가지 functions을 제공하는데 다음과 같다. isolation, interposition, object Tracking, recovery이다. 첫째로 Isolation에서 Nook isolation 메커니즘은 Extension에서 일어나는 커널의 손상으로부터 오류를 방지한다. 하지만 하드웨어 지원 없이 isolation이 가능하지 않으며 MMU를 이용하여 address space 를 구현한다. Isolation의 컴포넌트는 Nook의 두 부분으로 구성되어 있다. 메모리 관리와 Extension Procedure Call(XPC)로 이루어져 있는데, 메모리 관리는 경량화 보호 기법을 사용하고, XPC는 extensions과 커널 사이에서 안전한 호출을 제어한다. 다시 말해 XPC의 경우 다른 address space(extensions랑 커널이 다른 address space domain)에서 call을 할 경우가 생긴다. 둘째로 interposition의 Nook interposition 메커니즘은 기존의 확장 기능을 integrate한 환경에 통합 할 수 있습니다. Interposition은 Nooks가 Extensions 사이에 통신 제어와 intercept 할 수 있도록 도와준다. 객체 추적(object Tracking) 기능은 확장에 의해 사용되는 모든 커널 리소스를 보는 역할을 한다. 복구(recovery) 기능은 다양한 Extension fault로부터 감지하고 복구하는 기능을 가진다. 다시 말해서 Failure를 찾은 다음 모든 resource들을 해체한다.
performance에서는 Nooks의 isolation 서비스의 성능 비용을 평가하는 벤치 마크 결과를 제공합니다. 본 논문의 실험은 기존 벤치마크와 툴을 이용하여 Nooks를 사용한 시스템 성능을 비교하였으며 Web server benchmarks에서는 xHTTPd의 performance가 낮게 나왔으며 그 원인으로 XPC가 높게 나왔다.
본 논문에서는 커널의 확장은 현 운영체제에서 major source의 failure가 큰 이슈 점이며 Nooks 기법이 신뢰성 있으며 확장과 관련된 failures들을 줄일 수 있다. 본 논문에서 실현한 것은 Nooks의 구현은 리눅스와 같은 모놀리딕 운영 체제에서도 중간 정도의 엔지니어링 노력으로 성취할 수 있으며, 장치 드라이버와 같이 extension은 적은 양의 extension code의 수정으로도 isolation를 할 수 있다. Isolation과 recovery는 extension faults으로부터 생존 및 개선 가능하게 하는 시스템의 기능이다.
'Past Material' 카테고리의 다른 글
The Design and Implementation of Microdrivers (0) | 2017.05.12 |
---|---|
Recovering Device Drivers (0) | 2017.05.12 |
An I/O Architecture for Microkernel-Based Operating Systems (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 |