modus
Menu

Modules

The 77 modules that the tool builds, 74 of them in the boot image. A program is a module whose source is in programs/; the others are modules that a program loads or calls. The purpose of each is the first sentence of the comment before package in its source.

ModuleKindBoot imageExportsImportsPurpose
test_calleemoduleno1A test module with one export
test_callermoduleno1test_calleeA test module that imports test_callee and has the entry
kernelmoduleno1The kernel (docs/ARCHITECTURE.md, systems K1 to K5)
rootprogramyes1The root service: the first program (docs/ARCHITECTURE.md, U2)
inputprogramyes1The input service: the device service of the PS/2 keyboard and mouse (docs/ARCHITECTURE.md, U4)
compositorprogramyes3The compositor (docs/ARCHITECTURE.md, U8): the service that owns the display
consoleprogramyes1The console (property 19): a program that has a terminal
monitorprogramyes6A system tool: the memory of the machine and the programs that run, as a picture that changes twice per second
plasmaprogramyes1A demonstration: an animation that the processor computes for each frame
lifeprogramyes4A demonstration: Conway's Game of Life
paintprogramyes5A demonstration: drawing with the pointer
faultprogramyes1A program that writes to an address that it does not have
templeprogramyes1A demonstration, for fun: the temple of Jon
nodeprogramyes1One node of the `rings` demonstration (package relay)
ringsprogramyes1A demonstration of communication between programs (properties 2, 4, 6)
threadsprogramyes1A demonstration of threads (docs/ARCHITECTURE.md, decision 6)
workersprogramyes1A demonstration of the lock and of the word wait
rightsprogramyes1A demonstration of rights on handles (properties 2 and 20)
originprogramyes1A demonstration of the origin of a handle and of Handle_Revoke (properties 2 and 13)
limitsprogramyes1A demonstration of the limits of a budget: processor time and log records (property 20)
budgetprogramyes1A demonstration of budgets (properties 2 and 20)
flowprogramyes1A measure of one ring (properties 4 and 6)
crowdprogramyes1A measure of the shared queue and of the event
tallyprogramyes6A count that its callers add to
manualprogramyes17The manual: it shows the documentation of each module of the boot image
clockprogramyes1A measure of the time page
randomnessprogramyes1The randomness of the system, shown (docs/RANDOMNESS.md)
extended_stateprogramyes1The extended state of each thread, kept by the kernel (docs/ARCHITECTURE.md, "The extended state of the processor")
terminalprogramyes1The terminal: it shows the text that a program gives as records, and it gives the keys of the person to that program (support/terminal)
floodprogramyes1A program that writes lines to its terminal as fast as it can
processorsprogramyes1A demonstration of several processors
bootprogramyes1A system tool: how the machine started, at any time
pagesprogramyes1A system tool: what the page tables give, as the kernel reads it from the tables themselves
framesprogramyes1A demonstration of paging as a tool of the system (paging, second part)
twinprogramyes1A program that the program `frames` starts several times, to show the shared code of a module and a page that two programs share (package support:twins)
locksprogramyes1The measures of the locks of the kernel
shortageprogramyes1The real shortage of page frames (docs/ARCHITECTURE.md, "The frame caches")
schedulerprogramyes1The scheduling strategies of the kernel, measured side by side (docs/SCHEDULING.md)
address_spaceprogramyes1A program drives its own virtual memory (docs/ARCHITECTURE.md, "The virtual memory of a program")
lockerprogramyes1A program that the program `locks` starts several times, to load the kernel from several programs at one time (package support:lockers)
logprogramyes2A system tool: the log of the machine, as records
blockprogramyes1The block service: the device service of one virtio block device (virtio 1.x over PCI, the "modern" interface)
frameprogramyes1The frame service: the device service of one virtio network device (virtio 1.x over PCI, the "modern" interface)
networkprogramyes1The network service: the one client of the frame service of the network device, and the service that gives each program with the grant one endpoint of datagrams (contract/datagram)
netprogramyes1The first layer of the network, shown case by case: the link and the address, an ARP answer of the gateway, an echo of the gateway, a UDP datagram to an echo server and its answer, the refusals of the grant, the frames from the wire that the network service refused, and the measures
remoteprogramyes1The remote service: the calls of the host (docs/MODULE_CONTRACT.md, section 4, "A call from the host")
serverprogramyes5A simple HTTP/1.1 server of this system (RFC 9110, RFC 9112): TCP in the program (support/tcp), one thread, one table of connections, and records of fixed size for all its state
fetchprogramyes1A web client of this system: TCP in the program (support/tcp) over a segment endpoint with a client grant
inspectprogramyes4A developer tool: the memory and the execution of one program, live (docs/TOOLS.md)
diskprogramyes1A measure of the block service (contract/block), on a disk of its own: the disk of the measures, that holds no data of a program
storageprogramyes12The storage service: it keeps the private store of each program on the data disk, through a block service
notesprogramyes1A program that keeps its state when it stops and when the machine stops: a note and a count, in its private store
hostprogramyes1The call host: a program that loads one module and executes the isolated calls of its exports (property 19, package isolated)
probemoduleyes8A module of commands that tests the sandbox of an isolated call (property 19)
mathmoduleyes8A module of commands (property 19)
cryptographymoduleyes14The cryptography of the system as one module of code: each export is a primitive of Odin's core:crypto that the system took (support/cryptography, docs/CRYPTOGRAPHY.md), in the forms of the system
cryptography_vectorsprogramyes1cryptographyThe module `cryptography` as it ships, at work (docs/CRYPTOGRAPHY.md)
quic_echoprogramyes1cryptographyA QUIC echo server (docs/QUIC.md, section 6): QUIC in the program (support/quic), over a datagram endpoint with a listen grant of UDP
samplemoduleyes14A module of commands that take a record, a handle or a table (property 19)
hostile_exportsmoduleyes5Exports that are wrong on purpose, for the tests of the callers (docs/MODULE_CONTRACT.md, "Tables and bytes as parameters")
calendarmoduleyes1The days of the months of the Gregorian calendar
calendar_fixedmoduleyes1The days of the months of the Gregorian calendar, with the correction of the module calendar
calendar_changedmoduleyes1The days of the months of a calendar that a parameter chooses
agendamoduleyes4calendarA module of commands that imports the module calendar
lonelymoduleyes1test_calleeA module of commands whose import is not in the boot image
importsprogramyes1calendarA demonstration of the loader: a module with imports, and the replacement of an import (docs/MODULE_CONTRACT.md, "Replacement of an import")
errorsprogramyes1A program that shows the errors of the system: one case for each kind of error
interface_elementsprogramyes1The elements of the interface package, live (docs/INTERFACE.md)
tablesprogramyes1Tables and bytes as parameters (docs/MODULE_CONTRACT.md, "Tables and bytes as parameters"): one description, three ways to call
interface_modulemoduleyes8The interface package as a module (docs/INTERFACE.md, section 7; the test of the claim "the functions are written so the package can become a module later with the same calls")
interface_through_moduleprogramyes1interface_moduleThe interface package as a module, for one program (docs/INTERFACE.md, section 7)
text_shapingmoduleyes2Text shaping as a module (docs/FONTS.md, section 12.3): each export calls one function of support/text_shaping over tables in memory of the caller
vector_glyphsprogramyes1The choice of the vector font (docs/FONTS.md, "The font file"): the same lines of the system in each candidate font and in Spleen 8x16, one word of each enlarged, and the measures of the text path
interface_fontprogramyes1The interface font (docs/FONTS.md, section 12): B612 Regular and Bold, placed by support/text_shaping and drawn by graphics.text_proportional
pointersprogramyes1The pointer themes of the boot image (docs/POINTERS.md), as a table that a person reads: each pointer shape of a theme at each of its sizes, its hot spot marked, its frames, and the theme with its license and its attribution
settingsprogramyes4The settings of the person (docs/FONTS.md, "The setting"): the font of the system, the order of the color stripes of the screen, the pointer theme and the grid fit of the vector font
dateprogramyes2The date of the machine: this service reads the real-time clock of the machine (the CMOS clock, ports 0x70 and 0x71) at its start and each 10 seconds, and writes in the date page the date of the time 0 of the system

Read from module_builds in tools/kerneltool/modules.odin and from the source folder of each module.