ProcContext
Defined in: packages/core/src/kernel/types.ts:456
The system call interface available to every bin. Every running process receives a ProcContext.
Remarks
Section titled “Remarks”ProcContext is the single API surface bins use to interact with the system. It provides process identity, I/O streams, filesystem access via ProcFS, process lifecycle control (spawn, exec, exit, signal, wait), namespace manipulation, and optional capabilities (catalog install, service registration, srv posting).
Optional members (catalogInstall?, registerExec?, registerService?, etc.) are
present only when the system was built with the corresponding capability. Bins must
check for their existence before calling.
Example
Section titled “Example”const myBin: BinFunction = async (proc) => { const name = proc.argv[1] ?? 'world' await proc.stdout.write(`Hello, ${name}!\n`) const content = await proc.fs.readFile('/etc/motd') await proc.stderr.write(content) return exitCode(0)}Properties
Section titled “Properties”abortSignal
Section titled “abortSignal”
readonlyabortSignal:AbortSignal
Defined in: packages/core/src/kernel/types.ts:478
Abort signal — aborted when the process is killed. Bins can check
abortSignal.aborted or pass it to fetch/AbortController-aware APIs.
readonlyargv:string[]
Defined in: packages/core/src/kernel/types.ts:463
Command-line arguments. argv[0] is the command name.
catalogInstall?
Section titled “catalogInstall?”
optionalcatalogInstall?: (name) =>Promise<CatalogInstallResult|undefined>
Defined in: packages/core/src/kernel/types.ts:521
Install a package from the pre-bundled catalog.
Present only when the system was built with .catalog() entries.
Returns install info or undefined if the package is not in the catalog.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<CatalogInstallResult | undefined>
readonlycwd:AbsPath
Defined in: packages/core/src/kernel/types.ts:467
Current working directory (absolute path).
env:
Record<string,string>
Defined in: packages/core/src/kernel/types.ts:465
Environment variables. Mutable — changes are visible to child processes.
readonlyfs:ProcFS
Defined in: packages/core/src/kernel/types.ts:481
Filesystem operations routed through this process’s namespace.
getServer?
Section titled “getServer?”
optionalgetServer?: (name) =>Fileserver|undefined
Defined in: packages/core/src/kernel/types.ts:548
Retrieve a posted Fileserver from /srv by name.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Fileserver | undefined
readonlypid:Pid
Defined in: packages/core/src/kernel/types.ts:458
Process identifier for this process.
postServer?
Section titled “postServer?”
optionalpostServer?: (name,server) =>void
Defined in: packages/core/src/kernel/types.ts:545
Post a Fileserver to /srv for other processes to discover and mount.
Parameters
Section titled “Parameters”string
server
Section titled “server”Returns
Section titled “Returns”void
readonlyppid:Pid
Defined in: packages/core/src/kernel/types.ts:460
Parent process identifier (0 = kernel-spawned).
registerExec?
Section titled “registerExec?”
optionalregisterExec?: (binName,fn) =>void
Defined in: packages/core/src/kernel/types.ts:527
Register a bin function on the filesystem exec table. Present when the system supports runtime package installation.
Parameters
Section titled “Parameters”binName
Section titled “binName”string
Returns
Section titled “Returns”void
registerService?
Section titled “registerService?”
optionalregisterService?: (def) =>Promise<void>
Defined in: packages/core/src/kernel/types.ts:535
Register and start a service at runtime (post-boot). Present when init is running with a supervisor. Validates bin is resolvable before registering. Services go through existing supervisor machinery (restart policies, backoff).
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Promise<void>
removeServer?
Section titled “removeServer?”
optionalremoveServer?: (name) =>void
Defined in: packages/core/src/kernel/types.ts:551
Remove a posted Fileserver from /srv.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
resolveBin?
Section titled “resolveBin?”
optionalresolveBin?: (name) =>Promise<BinFunction|undefined>
Defined in: packages/core/src/kernel/types.ts:542
Resolve a bin name to a BinFunction via the kernel’s exec resolution (namespace/ExecCapable/$PATH lookup). Used by the shell to discover promoted builtins (e.g. pkg) at runtime without a static import.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<BinFunction | undefined>
shellOpts?
Section titled “shellOpts?”
optionalshellOpts?:ShellOpts
Defined in: packages/core/src/kernel/types.ts:566
Shell option flags (e.g. xtrace). Present when the process is running inside a shell interpreter; undefined in non-shell contexts.
stderr
Section titled “stderr”
readonlystderr:Writable
Defined in: packages/core/src/kernel/types.ts:474
Standard error stream.
readonlystdin:Readable
Defined in: packages/core/src/kernel/types.ts:470
Standard input stream.
stdout
Section titled “stdout”
readonlystdout:Writable
Defined in: packages/core/src/kernel/types.ts:472
Standard output stream.
Methods
Section titled “Methods”bind()
Section titled “bind()”bind(
oldPath,newPath,flags?):void
Defined in: packages/core/src/kernel/types.ts:510
Parameters
Section titled “Parameters”oldPath
Section titled “oldPath”string
newPath
Section titled “newPath”string
flags?
Section titled “flags?”BindFlags
Returns
Section titled “Returns”void
chdir()
Section titled “chdir()”chdir(
path):Promise<void>
Defined in: packages/core/src/kernel/types.ts:506
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Promise<void>
exec()
Section titled “exec()”exec(
bin,argv):never
Defined in: packages/core/src/kernel/types.ts:497
Replace the current process image with a new bin. Throws an ExecSentinel that the kernel catches — code after exec() never runs. Same pid, same fds, same namespace. Used by login → shell transition.
Parameters
Section titled “Parameters”string | BinFunction
string[]
Returns
Section titled “Returns”never
exit()
Section titled “exit()”exit(
code?):never
Defined in: packages/core/src/kernel/types.ts:498
Parameters
Section titled “Parameters”Returns
Section titled “Returns”never
getTermSize()?
Section titled “getTermSize()?”
optionalgetTermSize():TerminalSize
Defined in: packages/core/src/kernel/types.ts:560
Return current terminal dimensions, if a controlling terminal exists.
Returns
Section titled “Returns”mount()
Section titled “mount()”mount(
server,path):void
Defined in: packages/core/src/kernel/types.ts:509
Parameters
Section titled “Parameters”server
Section titled “server”string
Returns
Section titled “Returns”void
off(
signal):void
Defined in: packages/core/src/kernel/types.ts:514
Parameters
Section titled “Parameters”signal
Section titled “signal”Returns
Section titled “Returns”void
on(
signal,handler):void
Defined in: packages/core/src/kernel/types.ts:513
Parameters
Section titled “Parameters”signal
Section titled “signal”handler
Section titled “handler”() => void
Returns
Section titled “Returns”void
resolveServer()
Section titled “resolveServer()”resolveServer(
path):Fileserver|undefined
Defined in: packages/core/src/kernel/types.ts:554
Resolve a path to the Fileserver mounted at that point (for post/srv).
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”Fileserver | undefined
setsid()
Section titled “setsid()”setsid():
Pid
Defined in: packages/core/src/kernel/types.ts:505
Returns
Section titled “Returns”setuid()
Section titled “setuid()”setuid(
uid):void
Defined in: packages/core/src/kernel/types.ts:504
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
signal()
Section titled “signal()”signal(
pid,sig):void
Defined in: packages/core/src/kernel/types.ts:499
Parameters
Section titled “Parameters”Returns
Section titled “Returns”void
spawn()
Section titled “spawn()”spawn(
bin,argv,opts?):Promise<ChildHandle>
Defined in: packages/core/src/kernel/types.ts:491
Spawn a child process.
Parameters
Section titled “Parameters”string | BinFunction
A BinFunction or a string path resolved via $PATH.
string[]
Arguments for the child. argv[0] is conventionally the command name.
Optional I/O redirects, env overrides, cwd.
Returns
Section titled “Returns”Promise<ChildHandle>
A ChildHandle with the child’s pid and I/O streams.
unmount()
Section titled “unmount()”unmount(
path):void
Defined in: packages/core/src/kernel/types.ts:557
Remove a mount point from this process’s namespace.
Parameters
Section titled “Parameters”string
Returns
Section titled “Returns”void
wait()
Section titled “wait()”wait(
pid):Promise<ExitCode>
Defined in: packages/core/src/kernel/types.ts:500
Parameters
Section titled “Parameters”Returns
Section titled “Returns”Promise<ExitCode>
waitAny()
Section titled “waitAny()”Defined in: packages/core/src/kernel/types.ts:501