Skip to content

Commit fe98131

Browse files
committed
chore: Format glossary.md
1 parent a855062 commit fe98131

1 file changed

Lines changed: 106 additions & 27 deletions

File tree

docs/glossary.md

Lines changed: 106 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,114 +4,193 @@
44

55
### kernel
66

7-
A centralized manager of [vats](#vat) and [distributed objects](#distributed-object). See the [Kernel](../packages/ocap-kernel/src/Kernel.ts) class.
7+
A centralized manager of [vats](#vat) and [distributed objects](#distributed-object). See
8+
the [Kernel](../packages/ocap-kernel/src/Kernel.ts) class.
89

910
### vat
1011

11-
A unit of compute managed by the [kernel](#kernel). See the [VatHandle](../packages/ocap-kernel/src/VatHandle.ts) and [VatSupervisor](../packages/ocap-kernel/src/VatSupervisor.ts) classes.
12+
A unit of compute managed by the [kernel](#kernel). See the
13+
[VatHandle](../packages/ocap-kernel/src/VatHandle.ts) and
14+
[VatSupervisor](../packages/ocap-kernel/src/VatSupervisor.ts) classes.
1215

1316
### baggage
1417

15-
Persistent key-value storage for a [vat's](#vat) durable state. Baggage survives vat restarts (resuscitation) and is the primary mechanism for vat state persistence. Baggage is provided as the third argument to `buildRootObject`.
18+
Persistent key-value storage for a [vat's](#vat) durable state. Baggage survives vat
19+
restarts (resuscitation) and is the primary mechanism for vat state persistence. Baggage
20+
is provided as the third argument to `buildRootObject`.
1621

1722
### bootstrap
1823

19-
The initialization method called on the bootstrap [vat's](#vat) root object when a [subcluster](#subcluster) is first launched. The bootstrap method receives references to other vats and [kernel services](#kernel-service) and is called exactly once — it is not called again after a vat restart.
24+
The initialization method called on the bootstrap [vat's](#vat) root object when a
25+
[subcluster](#subcluster) is first launched. The bootstrap method receives references to
26+
other vats and [kernel services](#kernel-service) and is called exactly once — it is not
27+
called again after a vat restart.
2028

2129
### cluster
2230

2331
See [subcluster](#subcluster).
2432

2533
### exo
2634

27-
A remotable object created with `makeDefaultExo()` from `@metamask/kernel-utils/exo`. Exos are the standard way to create objects that can be passed between [vats](#vat), stored in [baggage](#baggage), and invoked via `E()`. Do not use `Far()` from `@endo/far`.
35+
A remotable object created with `makeDefaultExo()` from `@metamask/kernel-utils/exo`. Exos
36+
are the standard way to create objects that can be passed between [vats](#vat), stored in
37+
[baggage](#baggage), and invoked via `E()`. Do not use `Far()` from `@endo/far`.
2838

2939
### distributed object
3040

31-
A persistent object residing in a [vat](#vat) and asynchronously accessible to other vats. See the [implementation](../packages/ocap-kernel/src/store/methods/object.ts) in the kernel's storage methods.
41+
A persistent object residing in a [vat](#vat) and asynchronously accessible to other vats.
42+
See the [implementation](../packages/ocap-kernel/src/store/methods/object.ts) in the
43+
kernel's storage methods.
3244

3345
### kernel service
3446

35-
An object registered with the [kernel](#kernel) that [vats](#vat) can invoke via `E()`. Kernel services run in the kernel's own context (not in a vat) and are registered using `kernel.registerKernelServiceObject()`. Services marked `systemOnly` can only be accessed by [system subclusters](#system-subcluster). See the [KernelServiceManager](../packages/ocap-kernel/src/KernelServiceManager.ts).
47+
An object registered with the [kernel](#kernel) that [vats](#vat) can invoke via `E()`.
48+
Kernel services run in the kernel's own context (not in a vat) and are registered using
49+
`kernel.registerKernelServiceObject()`. Services marked `systemOnly` can only be accessed
50+
by [system subclusters](#system-subcluster). See the
51+
[KernelServiceManager](../packages/ocap-kernel/src/KernelServiceManager.ts).
3652

3753
### supervisor
3854

39-
A component that manages the lifecycle and communication of a [vat](#vat). The [VatSupervisor](../packages/ocap-kernel/src/VatSupervisor.ts) handles [message delivery](#delivery), [syscalls](#syscall), and vat initialization.
55+
A component that manages the lifecycle and communication of a [vat](#vat). The
56+
[VatSupervisor](../packages/ocap-kernel/src/VatSupervisor.ts) handles [message
57+
delivery](#delivery), [syscalls](#syscall), and vat initialization.
4058

4159
### liveslots
4260

43-
A framework for managing object lifecycles within [vats](#vat). Liveslots provides the runtime environment for vat code and handles object persistence, promise management, and [syscall](#syscall) coordination.
61+
A framework for managing object lifecycles within [vats](#vat). Liveslots provides the
62+
runtime environment for vat code and handles object persistence, promise management, and
63+
[syscall](#syscall) coordination.
4464

4565
### crank
4666

47-
A single execution cycle in the kernel's [run queue](#run-queue). Each crank processes one item from the run queue, delivering messages or notifications to [vats](#vat). Cranks can be aborted and rolled back if errors occur. See the [KernelQueue](../packages/ocap-kernel/src/KernelQueue.ts) for the run loop implementation.
67+
A single execution cycle in the kernel's [run queue](#run-queue). Each crank processes one
68+
item from the run queue, delivering messages or notifications to [vats](#vat). Cranks can
69+
be aborted and rolled back if errors occur. See the
70+
[KernelQueue](../packages/ocap-kernel/src/KernelQueue.ts) for the run loop implementation.
4871

4972
### syscall
5073

51-
A system call made by a [vat](#vat) to request kernel services. Syscalls include operations like sending messages, resolving [promises](#promise-resolution), and accessing persistent storage. See [VatSyscall](../packages/ocap-kernel/src/VatSyscall.ts) and the [syscall service](../packages/ocap-kernel/src/services/syscall.ts).
74+
A system call made by a [vat](#vat) to request kernel services. Syscalls include
75+
operations like sending messages, resolving [promises](#promise-resolution), and accessing
76+
persistent storage. See [VatSyscall](../packages/ocap-kernel/src/VatSyscall.ts) and the
77+
[syscall service](../packages/ocap-kernel/src/services/syscall.ts).
5278

5379
### delivery
5480

55-
The process of sending a message or notification to a [vat](#vat). Deliveries can be of type 'message', 'notify', 'dropExports', 'retireExports', 'retireImports', or 'bringOutYourDead'. See the [router](#router) ([KernelRouter](../packages/ocap-kernel/src/KernelRouter.ts)) for delivery logic.
81+
The process of sending a message or notification to a [vat](#vat). Deliveries can be of
82+
type 'message', 'notify', 'dropExports', 'retireExports', 'retireImports', or
83+
'bringOutYourDead'. See the [router](#router)
84+
([KernelRouter](../packages/ocap-kernel/src/KernelRouter.ts)) for delivery logic.
5685

5786
### marshaling
5887

59-
The process of serializing and deserializing data for transmission between [vats](#vat). The kernel uses marshaling to convert object references and data structures into a format suitable for cross-vat communication. See the [kernel marshal service](../packages/ocap-kernel/src/services/kernel-marshal.ts) for `kser` and `kunser` functions.
88+
The process of serializing and deserializing data for transmission between [vats](#vat).
89+
The kernel uses marshaling to convert object references and data structures into a format
90+
suitable for cross-vat communication. See the [kernel marshal
91+
service](../packages/ocap-kernel/src/services/kernel-marshal.ts) for `kser` and `kunser`
92+
functions.
6093

6194
### promise resolution
6295

63-
The process of fulfilling or rejecting a promise. Promise resolutions are delivered as notifications to [vats](#vat) and can trigger cascading resolutions of dependent promises. See the [promise store methods](../packages/ocap-kernel/src/store/methods/promise.ts) for implementation details.
96+
The process of fulfilling or rejecting a promise. Promise resolutions are delivered as
97+
notifications to [vats](#vat) and can trigger cascading resolutions of dependent promises.
98+
See the [promise store methods](../packages/ocap-kernel/src/store/methods/promise.ts) for
99+
implementation details.
64100

65101
### garbage collection (GC)
66102

67-
The process of identifying and cleaning up unreachable objects. The kernel performs GC by tracking reference counts and delivering appropriate notifications to [vats](#vat). **Important**: the garbage collection systems of the kernel, liveslots, and javascript are all mutually independent. See the [GC methods](../packages/ocap-kernel/src/store/methods/gc.ts) and [GC service](../packages/ocap-kernel/src/services/garbage-collection.ts) for implementation details.
103+
The process of identifying and cleaning up unreachable objects. The kernel performs GC by
104+
tracking reference counts and delivering appropriate notifications to [vats](#vat).
105+
**Important**: the garbage collection systems of the kernel, liveslots, and javascript are
106+
all mutually independent. See the [GC
107+
methods](../packages/ocap-kernel/src/store/methods/gc.ts) and [GC
108+
service](../packages/ocap-kernel/src/services/garbage-collection.ts) for implementation
109+
details.
68110

69111
### revocation
70112

71-
The process of invalidating an object reference, preventing further access to the object. Revoked objects return errors when accessed. See the [revocation methods](../packages/ocap-kernel/src/store/methods/revocation.ts) for implementation.
113+
The process of invalidating an object reference, preventing further access to the object.
114+
Revoked objects return errors when accessed. See the [revocation
115+
methods](../packages/ocap-kernel/src/store/methods/revocation.ts) for implementation.
72116

73117
### channel
74118

75-
A communication pathway between different components, such as between a [vat](#vat) and the [kernel](#kernel), or between different [clusters](#cluster). Channels use [streams](#stream) for message passing. See the [BaseDuplexStream](../packages/streams/src/BaseDuplexStream.ts) for the core channel implementation.
119+
A communication pathway between different components, such as between a [vat](#vat) and
120+
the [kernel](#kernel), or between different [clusters](#cluster). Channels use
121+
[streams](#stream) for message passing. See the
122+
[BaseDuplexStream](../packages/streams/src/BaseDuplexStream.ts) for the core channel
123+
implementation.
76124

77125
### stream
78126

79-
A remote asynchronous iterator that provides bidirectional communication between components. Streams implement the `Reader` interface from `@endo/stream` and can be used for message passing between [vats](#vat), kernel components, and external systems. See the [BaseDuplexStream](../packages/streams/src/BaseDuplexStream.ts) for bidirectional streams.
127+
A remote asynchronous iterator that provides bidirectional communication between
128+
components. Streams implement the `Reader` interface from `@endo/stream` and can be used
129+
for message passing between [vats](#vat), kernel components, and external systems. See the
130+
[BaseDuplexStream](../packages/streams/src/BaseDuplexStream.ts) for bidirectional
131+
streams.
80132

81133
### subcluster
82134

83-
A logically related group of [vats](#vat), intended to be operated together. Defined by a `ClusterConfig`. When a subcluster is launched, all its vats start and the [bootstrap](#bootstrap) vat receives references to the other vats. See the `ClusterConfig` type in [`packages/ocap-kernel/src/types.ts`](../packages/ocap-kernel/src/types.ts).
135+
A logically related group of [vats](#vat), intended to be operated together. Defined by a
136+
`ClusterConfig`. When a subcluster is launched, all its vats start and the
137+
[bootstrap](#bootstrap) vat receives references to the other vats. See the `ClusterConfig`
138+
type in [`packages/ocap-kernel/src/types.ts`](../packages/ocap-kernel/src/types.ts).
84139

85140
### system subcluster
86141

87-
A [subcluster](#subcluster) declared at [kernel](#kernel) initialization that can access privileged (`systemOnly`) [kernel services](#kernel-service). System subclusters persist across kernel restarts and are identified by a unique name. See the [SubclusterManager](../packages/ocap-kernel/src/SubclusterManager.ts).
142+
A [subcluster](#subcluster) declared at [kernel](#kernel) initialization that can access
143+
privileged (`systemOnly`) [kernel services](#kernel-service). System subclusters persist
144+
across kernel restarts and are identified by a unique name. See the
145+
[SubclusterManager](../packages/ocap-kernel/src/SubclusterManager.ts).
88146

89147
### run queue
90148

91-
The kernel's main execution queue that processes messages, notifications, and [garbage collection](#garbage-collection-gc) actions. Each [crank](#crank) processes one item from this queue. See the [KernelQueue](../packages/ocap-kernel/src/KernelQueue.ts) class and [queue methods](../packages/ocap-kernel/src/store/methods/queue.ts) for implementation details.
149+
The kernel's main execution queue that processes messages, notifications, and [garbage
150+
collection](#garbage-collection-gc) actions. Each [crank](#crank) processes one item from
151+
this queue. See the [KernelQueue](../packages/ocap-kernel/src/KernelQueue.ts) class and
152+
[queue methods](../packages/ocap-kernel/src/store/methods/queue.ts) for implementation
153+
details.
92154

93155
### router
94156

95-
The component responsible for routing messages to the correct [vat](#vat) based on target references and promise states. The router handles [delivery](#delivery) logic. See the [KernelRouter](../packages/ocap-kernel/src/KernelRouter.ts) for routing logic.
157+
The component responsible for routing messages to the correct [vat](#vat) based on target
158+
references and promise states. The router handles [delivery](#delivery) logic. See the
159+
[KernelRouter](../packages/ocap-kernel/src/KernelRouter.ts) for routing logic.
96160

97161
## Abbreviations
98162

99163
### clist
100164

101-
A _clist_ (short for "capability list") is a bidirectional mapping between short, channel-specific identifiers and actual object references. The clist is unique to a channel-runtime pair, and translates between the javascript runtime which holds the object references and the channel which communicates about them.
165+
A _clist_ (short for "capability list") is a bidirectional mapping between short,
166+
channel-specific identifiers and actual object references. The clist is unique to a
167+
channel-runtime pair, and translates between the javascript runtime which holds the object
168+
references and the channel which communicates about them.
102169

103170
### eref
104171

105-
An _ERef_ (short for "endpoint reference") is a generic term for a ref which is either a [vref](#vref) or an [rref](#rref).
172+
An _ERef_ (short for "endpoint reference") is a generic term for a ref which is either a
173+
[vref](#vref) or an [rref](#rref).
106174

107175
### kref
108176

109-
A _KRef_ (short for "kernel reference") designates an Object within the scope of the Kernel itself. It is used in the translation of References between one Vat and another. A KRef is generated and assigned by the Kernel whenever an Object reference is imported into or exported from a Vat for the first time.
177+
A _KRef_ (short for "kernel reference") designates an Object within the scope of the
178+
Kernel itself. It is used in the translation of References between one Vat and another. A
179+
KRef is generated and assigned by the Kernel whenever an Object reference is imported into
180+
or exported from a Vat for the first time.
110181

111182
### rref
112183

113-
An _RRef_ (short for "remote reference") designates an object within the scope of an established point-to-point communications [Channel](#channel) between two Clusters. An RRef does not survive the Channel it is associated with. An RRef is generated when the Kernel for one Cluster exports an Object Reference into the Channel connecting it to another Cluster's Kernel.
184+
An _RRef_ (short for "remote reference") designates an object within the scope of an
185+
established point-to-point communications [Channel](#channel) between two Clusters. An
186+
RRef does not survive the Channel it is associated with. An RRef is generated when the
187+
Kernel for one Cluster exports an Object Reference into the Channel connecting it to
188+
another Cluster's Kernel.
114189

115190
### vref
116191

117-
A _VRef_ (short for "vat reference") designates an Object within the scope of the Objects known to a particular Vat. It is used across the Kernel/Vat boundary in the marshaling of messages delivered into or sent by that Vat. A VRef is generated and assigned by the Kernel when importing an Object Reference into a Vat for the first time and by the Vat when exporting an Object Reference from it for the first time.
192+
A _VRef_ (short for "vat reference") designates an Object within the scope of the Objects
193+
known to a particular Vat. It is used across the Kernel/Vat boundary in the marshaling of
194+
messages delivered into or sent by that Vat. A VRef is generated and assigned by the
195+
Kernel when importing an Object Reference into a Vat for the first time and by the Vat
196+
when exporting an Object Reference from it for the first time.

0 commit comments

Comments
 (0)