1 / 23

Choices

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. What is Choices?.

ethel
Download Presentation

Choices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. Where could Choices run? • Bare networked SPARC stations • Shared memory Encore Multimaxes • Personal computers using the Intel 386 and MC68030 processors • Tapestry hypercubes

  4. Frameworks • An architectural design of a system • Components and interactions • From general to specific • Advantages • Code reuse, Portability, Rapid prototyping

  5. Building Frameworks • Abstract classes for generalized interfaces • Inclusion polymorphism • Constraints between classes • Dynamic code loading • Delayed binding and virtual functions • Conversions

  6. 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

  7. Choices Framework • MemoryObject • Process • Domain (Kernel domain, User domain) • Relationship between these three • NameServer

  8. Choices Subsystems • Virtual memory • Persistent storage • Process management • Message passing • Device management

  9. Virtual Memory • Features • Multiple 32 bit virtual memory address spaces • One and two level paging • Shared memory • Components • MemoryObject • Domain • MemoryObjectCache • Address Translation

  10. Process Management • Features • Multi-threading support • Grouping of processes (Gang) • Components • Process (System, Application, Interrupt) • ProcessContext (machine dependent state) • Processsor • Gang • ProcessContainer (implements scheduling)

  11. Persistent Storage • Features • Support both standard and customized storage systems • Components • PersistentStore (random access) • PersistentObject • PersistentStoreContainer • PersistentStoreDictionary • PersistentArray, RecordFile, AutoloadPersistentObject

  12. Message Passing System • Features • Different reliability models • Support multiprocessor and distributed system • Components • MessageContainer (Mach ports, communication entity) • ContainerRepresentative • MessageSystemInterface • Transport • DataTransfer (buffering strategy)

  13. Device Management • Features • Processes communicate with devices • Similarities and differences with UNIX • Components • Device (server) • DevicesControllers • DevicesManager

  14. Further Work • uChoices • Micro kernel OS • Adaptive file systems that provide different caching and network protocol support • A fast process migration facility

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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)

  22. Conclusion • Relatively old research work • Limited work on constraints • No clear description of how to build a system

  23. Choices • Reference: • Choices, Frameworks and Refinement • Getting Started with Choices • An Object-Oriented Nano-Kernel for Operating System Hardware Support

More Related