리눅스 환경에서의 함수 단위 동적 커널 업데이트 시스템의 설계와 구현

A Dynamic Kernel Update System with a Function Granularity for Linux

  • 발행 : 2008.06.15

초록

동적인 커널의 업데이트는 복잡한 운영체제 커널의 빈번한 기능 개선 및 버그 수정을 동작 중인 커널의 중단없이 수행하는 것이다. 동적인 업데이트를 위해서는 주로 명령어 단위의 업데이트 기법이 사용되지만 어셈블리 언어 수준에서 개발 및 유지, 보수가 이루어지기 때문에 실제 커널에 적용하기 어렵다. 이런 문제점을 극복하기 위해 우리는 C 언어 수준에서 함수 단위로 동적인 커널 업데이트를 수행하는 시스템을 설계하고 리눅스에 구현하였다. 이 시스템은 업데이트 개발 환경을 커널의 개발 환경과 일치시킴으로써 업데이트의 개발과 수행을 편리하게 하여 실제 커널에의 활용 가능성을 증대시킨다. 우리는 이렇게 증대된 활용 가능성을 실제로 알아보기 위해 이 업데이트 시스템을 이용하여 EXT3 파일 시스템을 간단하게 업데이트하는 사례를 보였다.

Dynamic update of kernel can change kernel functionality and fix bugs in runtime. Dynamic update is important because it leverages availability, reliability and flexibility of kernel. An instruction-granularity update technique has been used for dynamic update. However, it is difficult to apply update technique for a commodity operating system kernel because development and maintenance of update code must be performed with assembly language. To overcome this difficulty, we design the function-granularity dynamic update system which uses high-level language such as C language. The proposed update system makes the development and execution of update convenient by providing the development environment for update code which is same for kernel development. We implement this system for Linux and demonstrate an example of update for EXT3 file system. The update was successfully executed.

키워드

참고문헌

  1. Ariel Tamches and Barton P.Miller, Fine-grained dynamic instrumentation of commodity operating system kernels, PhD thesis, University of Wisconsin, 2001
  2. B. Bershad et al., Extensibility, Safety and Performance in the SPIN Operating System, In Proceedings of the 15th ACM SOSP, pp. 267-284, 1995
  3. Andrew Baumann et al., Module Hot-Swapping for Dynamic Update and Reconfiguration in K42, LCA 2005
  4. D. J. Pearce, P. H. J. Kelly, T. Field, and U. Harder., GILK: A dynamic instrumentation tool for the linux kernel, In Computer Performance Evaluation, pp. 220-226, 2002
  5. Douglas P. Ghormley et al., SLIC: An extensibility system for commodity operating systems, In USENIX Annual Technical Conference, pp. 39-52, 1998
  6. Young-Pil Kim, Jin-Hee Choi and Chuck Yoo, A Trap-based Mechanism for Runtime Kernel Modification, 6th International Conference on Computer and Information Technology, 2006
  7. Robert Wahbe et al., Efficient Software-Based Fault Isolation. In Proceedings of the 14th ACM SOSP, pp. 203-216, 1993