초록
동적인 커널의 업데이트는 복잡한 운영체제 커널의 빈번한 기능 개선 및 버그 수정을 동작 중인 커널의 중단없이 수행하는 것이다. 동적인 업데이트를 위해서는 주로 명령어 단위의 업데이트 기법이 사용되지만 어셈블리 언어 수준에서 개발 및 유지, 보수가 이루어지기 때문에 실제 커널에 적용하기 어렵다. 이런 문제점을 극복하기 위해 우리는 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.