refactor: update intro.1 man page

This commit is contained in:
daniel committed 2026-09-19 08:32:17 +02:00
1 parent 36cbee1415
commit 420a7c996c
1 file changed
+19 -33
+19 -33
View File
@@ -3,30 +3,19 @@
intro - introduction to MontaukOS userspace intro - introduction to MontaukOS userspace
.SH DESCRIPTION .SH DESCRIPTION
MontaukOS is a hobbyist 64-bit operating system written in C++20, MontaukOS is a 64-bit operating system written in C++20,
currently at version 0.1.7 (API version 8). Userspace programs currently at version 0.2.0 (API version 11). Userspace programs
run in Ring 3, are loaded as static ELF64 binaries, and run in Ring 3, are loaded as static ELF64 binaries, and
communicate with the kernel through the x86-64 SYSCALL/SYSRET communicate with the kernel through the x86-64 SYSCALL/SYSRET
mechanism (150 syscalls -- see syscalls(2)). mechanism (roughly 190 syscall numbers, 0-189 - see syscalls(2)).
Programs are compiled with a freestanding cross-compiler and Programs are built with the x86_64-montauk cross toolchain and
linked at virtual address 0x400000. There is no standard C linked at virtual address 0x400000. MontaukOS has its own C
library for C++ programs -- all system interaction goes through library along with the Montauk API (montauk:: wrappers).
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.
.SH GETTING STARTED .SH GETTING STARTED
To write a new system/CLI program, create a directory under To write a new system/CLI program, create a directory under
programs/src/ with a main.cpp file. The entry point is: programs/src/ with a main.cpp file.
extern "C" void _start() { ... }
There is no argc/argv. Use montauk::getargs() to retrieve any
arguments passed by the parent process. Include <montauk/syscall.h>
for the full typed syscall API. GUI apps additionally use
win_create()/win_poll()/win_present() from montauk/Window.hpp
(see framebuffer(2)).
Build with: Build with:
@@ -39,15 +28,12 @@
The boot ramdisk is mounted as drive 0 with the following The boot ramdisk is mounted as drive 0 with the following
directory structure: directory structure:
0:/os/ System/CLI binaries (shell, init, man, etc.), 0:/os/ System/CLI binaries, os data
plus os-owned data: certs/, firmware/, 0:/apps/ App bundles
licenses/, wallpapers/
0:/apps/ GUI app bundles, one directory per app
(<app>.elf + manifest.toml + icon)
0:/config/ System-wide config TOMLs 0:/config/ System-wide config TOMLs
0:/users/<name>/ Per-user home directories (created at 0:/users/<name>/ User home directories
login), with Music/, Videos/, Pictures/, 0:/state/ Mutable system runtime state
config/ subdirectories 0:/tmp/ Scratch space
0:/fonts/ Shared fonts 0:/fonts/ Shared fonts
0:/icons/ Shared icons 0:/icons/ Shared icons
0:/man/ Manual pages 0:/man/ Manual pages
@@ -56,15 +42,12 @@
Lua, headers and libraries), when installed Lua, headers and libraries), when installed
0:/boot/ Kernel, bootloader, ramdisk image 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. 0:/lib/ was merged into 0:/sdk/. Games and other GUI
programs (including doom) ship as bundles under 0:/apps/.
.SH SHELL .SH SHELL
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 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. of commands. Use 'man shell' for detailed shell documentation.
.SH MAN PAGES .SH MAN PAGES
@@ -77,6 +60,8 @@
fetch(1) HTTP client fetch(1) HTTP client
ping(1) ICMP ping ping(1) ICMP ping
nslookup(1) DNS lookup nslookup(1) DNS lookup
wifi(1) Wi-Fi configuration
sshd(1) SSH daemon
fontscale(1) Terminal font scaling fontscale(1) Terminal font scaling
edit(1) Text editor edit(1) Text editor
man(1) The man command itself man(1) The man command itself
@@ -90,6 +75,7 @@
file(2) File I/O syscalls file(2) File I/O syscalls
framebuffer(2) Framebuffer access framebuffer(2) Framebuffer access
malloc(3) Memory allocation malloc(3) Memory allocation
rtlsdr(3) RTL-SDR software radio API
.SH SEE ALSO .SH SEE ALSO
shell(1), syscalls(2), malloc(3) shell(1), syscalls(2), malloc(3)