This category is for object-oriented (OO) operating systems (OSs): OSs structured, organized, using all, most, or many of the principles of OO programming and related languages. Some such OSs are OO languages (Oberon, Self, Smalltalk, Squeak), some are written in OO languages (Java OSs in Java, Choices in C++), and some are written in procedural languages using OO structuring (GEOS and Unununium in Assembly). Of the later, many highly component-oriented OSs are also highly OO like, and are also listed here. On this page, OSs are arranged in three groups and levels: 1) Top group: types or classes of OS. 2) Middle group: OSs for which there are more than one instance of an OS of this name/type, an OS family. 3) Bottom group: specific OSs, individual instances; there is only one OS of this name/type.