Component-based software engineering has recently emerged as a promising solution to the development of system-level software. Unfortunately,current approaches are limited to specific platforms and domains. This lack of generality is particularly problematic as it prevents knowledge sharing and generally increases development costs. In this paper we present OpenCom,a generic component-based platform that is specifically designed to support a wide range of system software, both in terms of deployment environments (e.g. PDAs, embedded devices, network processor-based routers) and target domains (e.g. embedded systems, middleware, OSs, programmable networkIng environments). We discuss the fundamentals of OpenCom's programming model, present a performance evaluation, and illustrate the advantages of our model based on several case studies.