Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Security-focused operating system wikipedia , lookup
Library (computing) wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Burroughs MCP wikipedia , lookup
Copland (operating system) wikipedia , lookup
Process management (computing) wikipedia , lookup
Unix security wikipedia , lookup
Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration and particular applications.” --from Choices homepage 1 What is Choices? • Choices is an object-oriented operating system • Written in C++ • Machine and processor dependent portions are in assembler • It has an object-oriented interface • Operating system entities are objects 2 Where could Choices run? • Bare networked SPARC stations • Shared memory Encore Multimaxes • Personal computers using the Intel 386 and MC68030 processors • Tapestry hypercubes 3 Frameworks • • • • An architectural design of a system Components and interactions From general to specific Advantages – Code reuse, Portability, Rapid prototyping 4 Building Frameworks • • • • • • Abstract classes for generalized interfaces Inclusion polymorphism Constraints between classes Dynamic code loading Delayed binding and virtual functions Conversions 5 Choices Framework • • • • • A hierarchy of framework representing the OS Abstract classes as configurable components Single inheritance Subtyping to express inclusion polymorphism A particular OS is a possible instantiation of the framework 6 Choices Framework • • • • • MemoryObject Process Domain (Kernel domain, User domain) Relationship between these three NameServer 7 Choices Subsystems • • • • • Virtual memory Persistent storage Process management Message passing Device management 8 Virtual Memory • Features – Multiple 32 bit virtual memory address spaces – One and two level paging – Shared memory • Components – – – – MemoryObject Domain MemoryObjectCache Address Translation 9 Process Management • Features – Multi-threading support – Grouping of processes (Gang) • Components – – – – – Process (System, Application, Interrupt) ProcessContext (machine dependent state) Processsor Gang ProcessContainer (implements scheduling) 10 Persistent Storage • Features – Support both standard and customized storage systems • Components – – – – – PersistentStore (random access) PersistentObject PersistentStoreContainer PersistentStoreDictionary PersistentArray, RecordFile, AutoloadPersistentObject 11 Message Passing System • Features – Different reliability models – Support multiprocessor and distributed system • Components – – – – – MessageContainer (Mach ports, communication entity) ContainerRepresentative MessageSystemInterface Transport DataTransfer (buffering strategy) 12 Device Management • Features – Processes communicate with devices – Similarities and differences with UNIX • Components – Device (server) – DevicesControllers – DevicesManager 13 Further Work • uChoices – Micro kernel OS • Adaptive file systems that provide different caching and network protocol support • A fast process migration facility 14 uChoices (1) • “To support modern OS services such as user level and gang scheduling, distributed customizable virtual memory, and multimedia in a completely modular architecture, while maintaining high performance.” • Redesign of Choices as a micro-kernel 15 uChoices (2) • Nano-kernel encapsulates hardware dependencies • Micro-kernel provides the interface to the remainder of the OS – Encapsulates the micro-kernel data structures – Single standard interface to nano-kernel • Intermediate levels of OS – Client, server, file system components, etc. • Application interfaces 16 Comparisons (1) • Choices vs. OS-Kit – – – – – – general purposes OS-Kit also support finer granularity Different attitudes toward legacy code OS-Kit supports COM interface Choices supports ORB OS-Kit tries to minimize the interaction and dependencies between components – OS-Kit has a minimal API 17 Comparisons (2) • Choices vs. MMLite – General purpose (MMLite is also used in embedded systems) – The distributed file system extension of Choices is close to the mechanism used in MMLite (proxy) – MMLite focuses on support for transparently replacing components in use – MMLite supports COM 18 Comparisons (3) • Choices vs. PURE – PURE is for deeply embedded systems – PURE extension has an OSEK API – PURE uses the concept of components at the design level, and avoids artificical boundaries in implementation concerning run time and code size – PURE is fine-grained 19 Comparisons (4) • Choices vs. Pebble – Pebble is for complex embedded system – Concerns about safe extensibility and low interrupt latency – Pebbles uses a micro-kernel stucture – Pebble uses fine-grained components 20 Comparisons (5) • Choices vs. eCos – – – – – eCos is designed for embedded system eCos has its own published API eCos is fine-grained Statically reconfigurable eCos has very good tool support (analysis and configuration tool) 21 Conclusion • Relatively old research work • Limited work on constraints • No clear description of how to build a system 22 Choices • Reference: – Choices, Frameworks and Refinement – Getting Started with Choices – An Object-Oriented Nano-Kernel for Operating System Hardware Support 23