3. ARCHITECTURAL BOUNDARIES --------------------------- HyperCP/M is designed around clear separation of responsibilities between the kernel, personalities, and applications. Each layer shall provide services to the layers above it while remaining independent of implementation details belonging to those layers. 3.1 HYPERCP/M RESPONSIBILITIES ------------------------------ HyperCP/M provides the underlying execution environment in which personalities operate. Responsibilities include: * Hardware abstraction. * Resource management. * Storage management. * Memory management. * Session management. * Console management. * Personality loading. * Management services. * Debug services. * Isolation between sessions. HyperCP/M shall not implement personality-specific operating-system behavior. The HyperCP/M kernel shall not contain assumptions specific to CP/M 2.2 or any other individual personality. 3.2 PERSONALITY RESPONSIBILITIES -------------------------------- A personality defines an operating-system environment hosted by HyperCP/M. Responsibilities include: * Providing the operating environment expected by applications. * Implementing personality-specific system interfaces. * Managing personality-specific command processors and utilities. * Presenting the expected execution environment to applications. A personality shall interact with hardware resources through HyperCP/M services rather than directly accessing the underlying hardware implementation. A personality shall not access memory, devices, or resources belonging to another session except through explicitly defined HyperCP/M services. 3.3 APPLICATION RESPONSIBILITIES -------------------------------- Applications execute within the context of a personality. Applications shall: * Interact with the operating system interfaces provided by their personality. * Remain independent of HyperCP/M implementation details unless explicitly using HyperCP/M extensions. Existing applications should not require modification to execute under a compatible personality. 3.4 INTERFACE BOUNDARIES ------------------------ Communication between architectural components shall occur through defined interfaces. The primary execution and hardware abstraction interfaces are: Applications | v Personality Interface | v HyperCP/M Kernel | v Virtual Resource Manager Interface | v Hardware Interface Management Services are accessed through the Management Services Interface and provide administrative capabilities through defined kernel services. Components shall not bypass these interfaces except where explicitly defined by the architecture. 3.5 DESIGN IMPLICATIONS ----------------------- The separation of responsibilities provides several benefits: * New personalities can be added without modifying the kernel. * Hardware implementations can change without modifying personalities. * Applications can remain compatible with historical operating environments. * Future capabilities can be introduced through new services rather than special-case modifications. The preferred architectural approach is to add capability by extending interfaces rather than by increasing coupling between existing components. 3.6 ARCHITECTURAL SUMMARY ------------------------- HyperCP/M is a personality-hosting architecture providing isolated execution environments on Z80-class systems. The kernel provides common services and resource management. Personalities provide operating-system environments. Applications execute within personalities and remain independent of the HyperCP/M implementation. The initial reference personality is CP/M 2.2, but the architecture is designed to support additional personalities without modification to the underlying kernel. 3.7 TERMINOLOGY --------------- HyperCP/M Kernel ~~~~~~~~~~~~~~~~ The core HyperCP/M component responsible for system initialization, resource management, session control, hardware abstraction, and kernel service dispatch. The kernel contains no personality-specific behaviour. Virtual Resource Manager (VRM) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The kernel component responsible for presenting a consistent virtual hardware environment to HyperCP/M regardless of the underlying hardware implementation. Responsibilities include: * Memory management. * Bank switching. * Device abstraction. * Interrupt routing. * Timer services. * Storage abstraction. Session ~~~~~~~ A virtual Z80 execution environment in which a personality runs. Each session maintains independent CPU state, memory state, and console state. Shared resources have explicitly defined sharing semantics. Personality ~~~~~~~~~~~ An operating-system environment hosted within a session. A personality provides the operating environment observed by applications executing within that session. Personality Framework ~~~~~~~~~~~~~~~~~~~~~ The kernel component responsible for managing personality implementations. Responsibilities include: * Personality registration. * Personality loading. * Personality lifecycle management. * Personality interface definition. Console ~~~~~~~ A virtual terminal interface associated with an execution environment. Session Console ~~~~~~~~~~~~~~~ The console interface provided to a session and its personality. Console Manager ~~~~~~~~~~~~~~~ The kernel component responsible for providing console infrastructure. The Console Manager provides both session consoles and the Management Services Console. Management Services ~~~~~~~~~~~~~~~~~~~ Kernel-provided capabilities for managing and controlling HyperCP/M resources. Examples include: * Creating and destroying sessions. * Switching sessions. * Loading personalities. * Querying system state. * Managing resources. Management Services do not define a user interface. They are accessed through the Management Services Interface. Management Services Interface ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The software boundary through which utilities, shells, and other software components invoke Management Services. The interface does not implement management operations directly. Requests are dispatched to the appropriate HyperCP/M kernel subsystems. Management Services Shell ~~~~~~~~~~~~~~~~~~~~~~~~~ The command-processing layer responsible for interpreting user commands, presenting menus, and translating user requests into Management Services Interface calls. Management Services Console ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The user-facing console environment through which the Management Services Shell operates. The Management Services Console is part of the HyperCP/M management environment. It is not a session and does not execute as a personality. Debug Services ~~~~~~~~~~~~~~ The kernel subsystem responsible for providing diagnostic and debugging facilities for HyperCP/M. Debug Services support observation, fault diagnosis, and inspection of kernel operation through capabilities such as diagnostic logging, assertions, event tracing, panic reporting, and runtime inspection of kernel state.