Reaves.dev

v0.1.0

built using

Phoenix v1.7.17

Spring Operating System

Stephen M. Reaves

::

2024-03-23

Notes about Lecture 6a for CS-6210

Summary

How to Innovate OS

Brand new OS or better implementation of known OS?

Market-place needs

In order to maintain legacy software, the Sun Microsystems chose an implementation of an existing OS

Object Based vs Procedrual Design

Objects hide internal state and only expose methods

Spring Approach

Nucleus “Microkernel” of Spring

Domain = Address space

Threads execute in a particular domain

Doors provide access to domains via handles

Nucleus microkernel of spring

Object Invocation Across the Network

Gcluster_middlecluster_aNucleus Acluster_bNucleus Bcdclient domaindydoor ycd->dysdserver domaindxdoor xdx->sdpbproxy bdy->pbpaproxy apa->dxpb->pa

Proxies are invisible to client and server

Proxy A: export net handle embedding doorX Proxy B: use net handle to connect nuclei

Secure Object Invocation

Gcluster_nbNucleus Bcluster_objectcdclient domaindydoor ycd->dyfofront objectdy->fouounderlying objectfo->uoaclACLuo->acl

Front objects provide security mechanisms

Multiple front objects can point to the same underyling object but bind to different doors to enforce different security policies.

Front objects can do things like present one-time references to objects

Virtual Memory Managment in Spring

Break linear address space into regions

Each region points to a memory object

Each memory object may map to files, swap space, etc.

Memory Object Specific Paging

Memory object specific paging

Multiple paging mechanisms can be used for different memory objects

Spring System Summary

Dynamic Client Server Relationship

Dynamic Client Server Relationship

Subcontract

Contracts between client and server are defined by IDL

Subcontracts are provided to realize ideal connection between client and server

Implementation of contracts are handled through subcontracts to hide runtime details