Binary-level Dynamic Compiler for Driver Fault Isolation

드라이버 고장 분리를 위한 바이너리 수준 동적 컴파일러

  • Lee, Dong-Woo (Sungkyunkwan Univ. School of Information and Communication Eng.) ;
  • Kim, Jung-Han (Sungkyunkwan Univ. School of Information and Communication Eng.) ;
  • Eom, Young-Ik (Sungkyunkwan Univ. School of Information and Communication Eng.)
  • 이동우 (성균관대학교 정보통신공학부) ;
  • 김정한 (성균관대학교 정보통신공학부) ;
  • 엄영익 (성균관대학교 정보통신공학부)
  • Published : 2011.06.29

Abstract

운영체제와 같은 대규모 프로그램은 확장을 용이하게 하기 위해 장치 드라이버를 모듈 구조를 통해 동작시킨다. 그러나 이러한 드라이버 모듈은 커널과 분리되어 개발되기 때문에 상대적인 취약성을 가지고 있다. 이러한 취약성으로 인해 발생한 고장은 드라이버뿐만 아니라 커널 전체에 오류를 야기해 시스템의 안정성을 저하시키는 요인이 된다. 이러한 문제를 해결하기 위해 안전하지 않은 드라이버를 커널로부터 격리하고자 하는 논의가 진행되었고, 이후 많은 연구를 통해 여러 가지 접근 방식을 통한 해결방법이 제안되었다. 그러나 기존의 방법은 드라이버 소스코드의 수정이 필요하거나 드라이버 요청에 대한 응답속도가 매우 느린 현실적인 제약이 있었다. 본 논문에서는 기존방법의 한계를 극복하는 동적 컴파일러를 이용한 고장 분리 기법을 제안한다. 본 제안 기법은 기존 드라이버를 그대로 사용가능하며 기존 기법의 분리 정책을 모두 적용할 수 있다. 리눅스 커널에 본 제안기법을 적용하여 동적 컴파일러의 성능을 측정하고 본 제안 기법의 특성을 기존 기법과 비교함으로써 본 제안기법이 매우 적은 부하만으로 장치 드라이버의 고장 분리가 가능함을 확인하였다.

Keywords

Acknowledgement

Supported by : 정보통신산업진흥원