This paper presents the design and implementation of an embedded system kernel, namely Zinix, with functional modularity for multiprocessor platforms. Zinix supports system configuration of both homogeneous and heterogeneous multiprocessors with shared memory. Its design is based upon the concept of micro-kernel with emphasis on modular functionality and reusability in order to be flexible and suitable for running various applications. To achieve modularity of service functions, Zinix is built, in addition to a micro-kernel, with server processes of process manager and memory manager so that applications or user processes are provided essential system service functions, while supporting multiprocessor configuration as well as other sophisticated services are harnessed via adding function-specific server processes. This paper focuses on the system architecture of Zinix, and discusses the design of dynamic server processes with scheduling concerns. The performance evaluation of its current implementation is also presented.