CSI/MR-94-1 February 1994 ----------------------------------------------------------------------------- Product Datasheet: CHORUS(R) Nucleus v3 r4.2 * Microkernel for operating systems * Supports multiple-server and single-server operating system architectures * Provides support for UNIX(R)-based, object-oriented and other operating systems * Multiple concurrent threads per actor (process) * (A)symmetric shared memory multi-processor hardware support * Real-time functionality and behavior * Fast, transparent location-independent message-passing system * Provides both system space and user space actors (processes) * Communication protocols, drivers and memory mappers external to Nucleus The CHORUS(R) Nucleus v3 is the heart of the CHORUS family of real-time distributed operating system products, notably the CHORUS/MiX(TM) UNIX(R)-based operating systems. The Nucleus provides a unified virtual machine interface for various operating system (subsystem) implementations. Each subsystem implements one operating system interface by using the Nucleus services. Full low-level services are provided to subsystems by the Nucleus working in association with independent device drivers, network drivers, communication protocols, and memory mappers (paging, swapping, etc.). The product of over thirteen years of refinement and in its fourth generation, the Nucleus v3 is an extremely efficient, compact and modular microkernel with a stable interface. With the release in 1989 of CHORUS/MiX V.3.2, the Nucleus was the first microkernel supporting commercial multi-server operating systems with performance equaling or bettering native monolithic operating systems. Performance-tuned to ensure responsiveness and fast Inter-Process Communication, the Nucleus integrates these essential services: o A real-time executive synchronizes and preemptively schedules priority-based tasks. o Modern, optimized Inter-Process Communication (asynchronous IPC and Remote Procedure Call (RPC)) mechanisms give efficient, transparent access to resources distributed on a network or bus. o A low-level hardware supervisor dynamically loads interrupt and trap handlers. o An advanced (optional) distributed virtual memory manager optimizes distributed object copying. o Support for symmetric and asymmetric shared memory multi-processors. Main Benefits o Rapid real-time response to external events o Simple, dynamic migration, evolution and reconfiguration of systems and servers o Easier, transparent distributed programming with automatic localization o Fast, efficient local and remote RPC and IPC o Contains very short critical sections for maximum interruptibility o Increased continuity of service via enabling technologies for fault-tolerant servers o Enabling technologies for secure systems o Supports multiple operating systems ("personalities") simultaneously o (A)symmetric shared memory multi-processing o Supports both system space and user space actors o Dynamically loadable device drivers, not embedded in the microkernel o Configurable kernel from 100 Kbytes static size to 250 Kbytes Real-time Executive o Light-weight threads (tasks/actors) o Preemptive priority-based scheduler o 256 priority levels, FIFO within levels o Multiple scheduling classes o Synchronization by events, mutexes, semaphores and mini-messages o Execution control ("suspend", "resume") o Separate address spaces (optional) o Time-outs (optional) o Allocation/deallocation of memory o Dynamic kernel resource management o 11 microseconds Interrupt Latency on Compaq 486 at 50 Mhz o 22 microseconds Context Switch on Compaq 486 at 50 Mhz Inter-Process Communication o Fast, distribution-transparent IPC and RPC o Optimized local and distant communication o Small untyped messages for fastest processing by network interfaces o Efficient low-overhead internal protocols o Automatic localization of distributed objects providing transparent remote access to distant objects as if they were local o A high level network interface independent of specific network protocols o Supports standard or private network protocols o Supports multiple subnets, each with its own network protocol o Various facilities for managing and broadcasting to groups of destinations o At-most-once RPC semantics o Unique "light-weight RPC" performance optimization o Abort propagation through RPC's Distributed Virtual Memory Management o Optional: deconfigurable for real-time use o Demand-paged possibly over network so pages are brought into memory only when needed o Separate, protected address spaces o Can share memory between different tasks o Supports linear, protected (segmented) and paged virtual memory Hardware Supervisor o Dynamic (de)install of interrupt, trap handlers o User-level handlers installable in system space o Multiple priority-ordered handlers o Dynamic resource allocation and management Validation o Comprehensive suite of specially designed tests for exercising both local and remote operations o Execution of CHORUS/MiX V.3.2 and/or CHORUS/MiX V.4 validation tests (see corresponding data sheets) CHORUS Nucleus Calls actorCreate mutexInit svCallConnect threadDelay actorDebugged mutexRel svCallDisConnect threadDelete actorDelete mutexTry svCheckUserSpace threadList actorExcept portCreate svCopyIn threadLoadR actorPi port Declare svCopyOut threadPriority actorPriority portDelete svExcHandler threadResume actorSelf portDisable svItConnect threadScheduler actorStart portEnable svItDisConnect threadSelf actorStop portLi svLock threadStoreR chorusCtx portMigrate svLockInit threadSuspend chorusPTimer portPi svMaskAll threadTimes chorusSite portUi svMaskedLockGet uiBuild chorusTime rgnAllocate svMaskedLockRel uiClear chorusTimeL rgnDup svMsgHandler uiCreate chorusTod rgnFree svMsgHdlReply uiDeclare grpAllocate rgnInit svPagesAllocate uiForget grpPortInsert rgnInitFromActor svPagesFree uiIsLocal grpPortRemove rgnMap svSpinLockGet uiSite ipcCall rgnMapFromActor svSpinLockRel uiValid ipcGetData rgnSetInherit svSpinLockTry vmCopy ipcReceive rgnSetOpaque svTimeOut vmFlush ipcReply rgnSetPaging svTimeOutL vmFree ipcRestore rgnSetProtect svTrapConnect vmLock ipcSave rgnStat svUnLock vmPageSize ipcSend semPnAbort svTrapDisConnect vmStat ipcSysInfo semInit svUnCTimeOut vmPhysAddr ipcTarget semP svUnMask vmSetPar lcFlush semV svUnMaskAll vmUnLock lcSetRights sgFlush svUnTimeOut lcStat sgRead threadAbort mpInit sgStat threadAborted mpReceive sgSyncAll threadBind mpSend sgWrite threadContext mutexGet svAbortHandler threadCreate Memory Mapper Calls MpCreate MpPullIn MpPushOut MpRelease MpGetAccess CHORUS Nucleus Deliverables The license fee for the CHORUS Nucleus reference port includes delivery of the following items. Nucleus Deliverables CHORUS Nucleus, including the following major components: o Real-time Executive o Virtual Memory (VM) o Inter-Process Communication (IPC) o Supervisor o Networking protocols, Ethernet CHORUS Network Protocol System-dependent code: o Booting/initialization o Port to the Intel i386(R) and Intel i486(R), COMPAQ(R) Deskpro and Portables family o Network driver: Excelan/Federal Tech Exos 205T, Western Digital 80x3 Include files and libraries for the above Documentation Deliverables Programmer's Reference Manual: o Nucleus Specification and Interface o Nucleus Programmer's Reference Manual o Nucleus From r4.0 to r4.2 o Nucleus Kernel Debugger User's Manual for COMPAQ Deskpro Implementation Guide: o Kernel Implementation Guide o Kernel Network Architecture o Kernel Network Devices Manager o Source Installation Guide Build Environment Deliverables o Makefiles o Test programs o Porting utilities o Validation tests o Makedepend (determines file dependencies) o Uu (encode/decode tools) Pre-requisites o Standard "C" development environment (make, "C", ...) o Compilers: Glockenspiel C++ version 2.0A o A machine capable of reading QIC streamer tapes Recommended: o COMPAQ reference machine (see separate configuration information) Media o Source-code products: 60 MB QIC-24 streamer cartridge tape Reference Machine o COMPAQ 386/486 Additional Ports o Motorola 680x0 o Sun SPARC o MIPS R3000 o Inmos Transputer T425/T805 -- CHORUS is a registered trademark of Chorus Systems. CHORUS/MiX is a trademark of Chorus Systems. UNIX is a registered trademark of Unix System Laboratories, a wholly-owned subsidiary of Novell, Inc. All other trademarks mentioned belong to their respective owners. Specifications are subject to change without notice. (c)1989-1994, Chorus Systems. CSI/MR-94-1. Printed in USA. -----------------------------------------------------------------------------