Software reuse and especially the paradigm of software components are promising approaches to increase the efficiency of software development. One of the basic problems of software reuse, however, is the tradeoff between the abstraction from project-specific aspects on the one side, and the actual contribution of a reusable artifact during the realization of a new system on the other side. Stringent resource constraints further complicate the application of these approaches in domains, where efficient and therefore specialized solutions are required, e.g. in the domain of embedded systems. Generic components, which are designed and implemented to be adaptable to new application scenarios, allow to overcome these limitations, esp. if they somehow automate the essential modifications. This paper presents a concept of generic components that has been developed to facilitate the construction of highly specialized embedded operating systems. Besides the illustration of the underlying concept, the paper discusses the external representation of generic components and the internal realization of the provided variability. Futhermore it shows how generic components may be automatically instantiated by tools, and reflectes some of our experiences in constructing generic components.