The document describes the design and implementation of EKernel, an object-oriented microkernel. It aims to address issues of portability, maintainability, extensibility, and efficiency in operating system design. The key aspects of EKernel's design include using processes and threads as core abstractions, implementing inter-process communication via messaging, and providing a modular architecture with well-defined interfaces. Performance tests show EKernel achieves lower overhead than other microkernels for operations like context switches and IPC. Future work plans to enhance EKernel's scheduler and implement a networking subsystem.