docs - refresh man pages

This commit is contained in:
daniel committed 2026-10-14 07:31:20 +02:00
1 parent 7eda8b1a8d
commit a463834e0a
21 files changed
+972 -524

No files matched your search

+47 -55
View File
@@ -111,31 +111,22 @@
<pre><code><strong>NAME</strong>
intro - introduction to MontaukOS userspace
<strong>DESCRIPTION</strong>
MontaukOS is a hobbyist 64-bit operating system written in C++20,
currently at version 0.1.7 (API version 8). Userspace programs
MontaukOS is a 64-bit operating system written in C++20,
currently at version 0.2.0 (API version 11). Userspace programs
run in Ring 3, are loaded as static ELF64 binaries, and
communicate with the kernel through the x86-64 SYSCALL/SYSRET
mechanism (150 syscalls -- see syscalls(2)).
mechanism (roughly 190 syscall numbers, 0-189 - see <a href="syscalls.html">syscalls(2)</a>).
Programs are built with the x86_64-montauk cross toolchain and
linked at virtual address 0x400000. MontaukOS has its own C
library along with the Montauk API (montauk:: wrappers).
Programs are compiled with a freestanding cross-compiler and
linked at virtual address 0x400000. There is no standard C
library for C++ programs -- all system interaction goes through
the montauk:: syscall wrappers. A desktop environment with a
window server, GUI apps, and Bluetooth/audio/networking stacks
runs on top of the same syscall API.
<strong>GETTING STARTED</strong>
To write a new system/CLI program, create a directory under
programs/src/ with a main.cpp file. The entry point is:
extern "C" void _start() { ... }
There is no argc/argv. Use montauk::getargs() to retrieve any
arguments passed by the parent process. Include &lt;montauk/syscall.h&gt;
for the full typed syscall API. GUI apps additionally use
win_create()/win_poll()/win_present() from montauk/Window.hpp
(see framebuffer(2)).
programs/src/ with a main.cpp file.
Build with:
@@ -144,64 +135,65 @@
System/CLI binaries appear in programs/bin/os/; GUI app bundles
(ELF + manifest.toml + icon) appear under programs/bin/apps/&lt;name&gt;/.
<strong>RAMDISK LAYOUT</strong>
The boot ramdisk is mounted as drive 0 with the following
directory structure:
0:/os/ System/CLI binaries (shell, init, man, etc.),
plus os-owned data: certs/, firmware/,
licenses/, wallpapers/
0:/apps/ GUI app bundles, one directory per app
(&lt;app&gt;.elf + manifest.toml + icon)
0:/os/ System/CLI binaries, os data
0:/apps/ App bundles
0:/config/ System-wide config TOMLs
0:/users/&lt;name&gt;/ Per-user home directories (created at
login), with Music/, Videos/, Pictures/,
config/ subdirectories
0:/users/&lt;name&gt;/ User home directories
0:/state/ Mutable system runtime state
0:/tmp/ Scratch space
0:/fonts/ Shared fonts
0:/icons/ Shared icons
0:/man/ Manual pages
0:/www/ Web server content
0:/lib/ Lua and TinyCC toolchain payloads
0:/sdk/ Montauk SDK (native gcc/binutils, TinyCC,
Lua, headers and libraries), when installed
0:/boot/ Kernel, bootloader, ramdisk image
There is no 0:/games/, 0:/common/, 0:/home/, or 0:/etc/ --
these were used by earlier single-user releases and no longer
exist. Games and other GUI programs (including doom) ship as
bundles under 0:/apps/.
<strong>SHELL</strong>
The interactive shell is the primary way to interact with
The interactive shell can be used to interact with
MontaukOS. Commands are resolved against the current directory
first, then 0:/os/. Type 'help' at the shell prompt for a list
first, then 0:/os/.
Type 'help' at the shell prompt for a list
of commands. Use 'man shell' for detailed shell documentation.
<strong>MAN PAGES</strong>
The following man pages are available:
intro(1) This page
shell(1) Shell commands reference
init(1) Init system
dhcp(1) DHCP client
fetch(1) HTTP client
ping(1) ICMP ping
nslookup(1) DNS lookup
fontscale(1) Terminal font scaling
edit(1) Text editor
man(1) The man command itself
printctl(1) Printer control
printd(1) Print spooler daemon
wiki(1) Wikipedia article viewer
legal(7) Copyright and legal information
tls-errors(5) TLS/BearSSL error reference
syscalls(2) Overview of all syscalls
spawn(2) Process spawning
file(2) File I/O syscalls
framebuffer(2) Framebuffer access
malloc(3) Memory allocation
<a href="intro.html">intro(1)</a> This page
<a href="shell.html">shell(1)</a> Shell commands reference
<a href="init.html">init(1)</a> Init system
<a href="dhcp.html">dhcp(1)</a> DHCP client
<a href="fetch.html">fetch(1)</a> HTTP client
<a href="ping.html">ping(1)</a> ICMP ping
<a href="nslookup.html">nslookup(1)</a> DNS lookup
<a href="wifi.html">wifi(1)</a> Wi-Fi configuration
<a href="sshd.html">sshd(1)</a> SSH daemon
<a href="fontscale.html">fontscale(1)</a> Terminal font scaling
<a href="edit.html">edit(1)</a> Text editor
<a href="man.html">man(1)</a> The man command itself
<a href="printctl.html">printctl(1)</a> Printer control
<a href="printd.html">printd(1)</a> Print spooler daemon
<a href="wiki.html">wiki(1)</a> Wikipedia article viewer
<a href="legal.html">legal(7)</a> Copyright and legal information
<a href="tls-errors.html">tls-errors(5)</a> TLS/BearSSL error reference
<a href="syscalls.html">syscalls(2)</a> Overview of all syscalls
<a href="spawn.html">spawn(2)</a> Process spawning
<a href="file.html">file(2)</a> File I/O syscalls
<a href="framebuffer.html">framebuffer(2)</a> Framebuffer access
<a href="malloc.html">malloc(3)</a> Memory allocation
<a href="rtlsdr.html">rtlsdr(3)</a> RTL-SDR software radio API
<strong>SEE ALSO</strong>
shell(1), syscalls(2), malloc(3)</code></pre>
<a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a>, <a href="malloc.html">malloc(3)</a></code></pre>
<hr>
<div class="center">