Static Stack Allocation Analysis for Capability-Based Microkernel in Composite
Open Access DepositedA binary analyzer for stack usage in Composite, capable of detecting function dependencies and optimizing memory management. A method to track stack operations and control flow, including recursion detection and indirect call resolution. An integration with the Composer system to infer synchronous invocations and improve security isolation.
Efficient memory management is crucial in microkernel-based systems, where componentsoperate in isolated environments. Composite, our microkernel system, currently allocates a large, fixed-size stack for each component and exposes all possible interfaces to its dependent components. While this approach simplifies implementation, it results in inefficient memory usage and assumes implicit trust among components, which can compromise system isolation and security. To address these issues, we develop a binary code analyzer that detects stack usage and service dependencies within Composite. Our analyzer processes x86-64 binary executables, disassembling them into assembly code and simulating execution to track stack-related operations and function calls. By analyzing stack modifications and control flow instructions, we construct a Control Flow Graph (CFG) to map function relationships and identify inefficiencies such as excessive stack usage, recursion, and redundant service dependencies. Our approach is built for flexibility, allowing it to support a diverse array of configuration files without requiring custom tuning for specific system environments. It analyzes the object files produced during the compilation of each component and aggregates the results to perform a comprehensive, system-wide dependency analysis. This enables precise identification of true synchronous invocations and the elimination of unnecessary service dependencies, ultimately enhancing resource efficiency and system isolation. Our work makes the following contributions
- All rights reserved
Notice to Authors
If you are the author of this work and you have any questions about the information on this page, please use the Contact form to get in touch with us.