An architecture that extends across both the hardware and the (operating system) software of a computer system. It is intended to provide better protection features to facilitate both multiprocessing and computer security. In this form of architecture there are two types of words in memory: data (including programs) and capabilities. Capabilities can only be manipulated by privileged portions of the system. The capability descriptor tells where data is and what sorts of access to that data are permitted. Object-oriented architecture is an extension of this concept.