Actor-Based Operating System Interposition for Complexity Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing operating systems become complex and error-prone due to unwieldy code and ad-hoc interface evolution, making maintenance and debugging difficult as changes in one thread can propagate to many others, leading to increased complexity in expanding functionality.

Innovation Solution

The operating system is defined using a set of actors that communicate through channels, with base actors providing basic functionality and composed actors inheriting capabilities, allowing for interposition and monitoring of channels to manage complexity and facilitate debugging, sandboxing, and simulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If operating system code is expanded to add functionality, then system capabilities are improved, but code complexity and error-proneness increase

Engineering Contradiction:
Improvesystem functionalityVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The operating system is segmented into independent actors that communicate through channels. Each actor is a self-contained unit with specific functionality, avoiding the monolithic structure that leads to complexity. Actors can be independently modified, added, or removed without affecting the entire system, thus enabling functionality expansion without proportional complexity increase.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Channels serve as intermediary communication mechanisms between actors. Instead of direct interactions between numerous components, all communication flows through standardized channel interfaces. This mediator layer abstracts the complexity of inter-component communication, allowing actors to be added or modified without creating cascading interface changes throughout the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If operating system code is modified to evolve functionality, then system capabilities are improved, but maintenance difficulty increases due to propagation of changes

Engineering Contradiction:
Improvesystem evolutionVSAvoidmaintenance difficulty
Core Design Contradiction:
Adaptability or versatilityVSEase of repair

Solution Approach 1:

By dividing the system into independent actors, modifications to one actor's functionality do not require changes to other actors. Each actor encapsulates its own logic and interfaces, so evolution of system capabilities can be achieved by modifying or adding individual actors without propagating changes throughout the entire codebase.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Specific functionalities are extracted into separate actor entities. When functionality needs to be evolved or maintained, only the relevant extracted actor needs to be accessed and modified, rather than searching through and modifying distributed code across multiple interconnected threads and modules.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If traditional operating system architecture is used, then basic functionality is achieved, but debugging complexity increases over time

Engineering Contradiction:
Improvesystem operationVSAvoiddebugging complexity
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

Channels act as observable intermediaries in actor communication. Debugging can focus on monitoring and analyzing channel messages rather than tracing complex function call chains through interconnected threads. The channel interface provides a standardized observation point for detecting and measuring system behavior, simplifying the debugging process while maintaining reliable operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10990457B2Interposition
Publication Date: 2021.04.27 APPLE INC
  • US10990457B2 patent drawing
  • US10990457B2 patent drawing
  • US10990457B2 patent drawing

AI summary

In an embodiment, an operating system is defined in terms of a set of actors, each of which implements one or more capabilities built into the system. The actors may establish channels between them for communication of messages between the actors. Some actors may interpose between other actors. These other actors may, in some cases, interpose on channels used by the base actor. In some embodiments, some channels may be interposed while others may be monitored by the interposing actor but may still communicate directly with the underlying actor. Some channels may not be affected by the interposition (e.g. the channels may not be interposed or monitored), in an embodiment. Other examples of interposition may include debugging, simulation, and sandboxing.