Design and implementation of dynamically reconstructing system software

In traditional operating systems, there are many weak points. In monolithic kernel-based operating systems, many functions have been implemented in the kernel to satisfy various requests from user applications. As a result, the kernel itself has become more complex and bigger than expected, and many weak points have been appeared in it. A microkernel-based operating system improves the weak points of a monolithic kernel-based one by separating the kernel itself from the kernel functions (called system servers). In such a system, a microkernel architecture is supplied for flexibility and expansibility, but there are weak points in that structure too. In order to get over the weak points of traditional operating systems, a new operating system architecture is needed. In this paper, a new kernel structure is suggested. It enables one to reconstruct kernel functions dynamically at execution time, but there are some problems with realizing such a kernel. In this paper, we describe how to divide kernel functions into multiple modules and how to implement the suggested kernel. By implementing and evaluating a prototype of the kernel, the effectiveness of the suggested kernel architecture is confirmed.