An Application-Oriented Linux Kernel Customization for Embedded Systems

How to reconfigure a general purpose operating system (GPOS) into an embedded operating system has attracted attention for application-specific domains. Linux is cur- rently one of the popular candidates for GPOSs. Although Linux has tools for kernel re- configuration by letting users add or remove desired function modules, the best schemes of reconfiguring Linux according to a specific embedded system are not practical. Even after this configuration, the target Linux might still be a GPOS. In this article, we will propose an approach to customizing an application-specific Linux operation system. This approach derives from a "call graph" based on reengineering. By analyzing a graph-structure representation of the target system, its hardware and software specifica- tions are determined. Thus, we can find the rules for removing the redundant code in Linux. Moreover, we employ the call graph approach to verify the system integrity at the source-code level. In order to demonstrate the proposed idea, an experimental system will also be reported in this article. The results show that our approach can significantly remove about 17 percent of the Linux kernel's footprint with respect to unreachable code.