In recent years, Knowledge Management Systems (KMS) have drawn remarkable attention. However, there is no common understanding of how a knowledge management system should look like or where the corresponding research should be directed at. Based on a number of essential requirements, a KMS should satisfy, this paper introduces a generic architecture for KMS. It consists of a conceptual framework that suggests to structure knowledge according to three perspectives and five aspects. To support the differentiation of common, generic knowledge, domain specific knowledge, and information, the architecture features three levels of abstraction, namely an ontology level layer, a domain level layer and an operational level layer. Unfortunately, the conceptual representation and implementation of these layers faces a number of challenges. The paper presents and discusses three alternative design patterns to overcome these challenges.