.TH INTRO 1 .SH NAME intro - introduction to MontaukOS userspace .SH DESCRIPTION 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 (roughly 190 syscall numbers, 0-189 - see syscalls(2)). 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). .SH GETTING STARTED To write a new system/CLI program, create a directory under programs/src/ with a main.cpp file. Build with: cd programs && make System/CLI binaries appear in programs/bin/os/; GUI app bundles (ELF + manifest.toml + icon) appear under programs/bin/apps//. .SH RAMDISK LAYOUT The boot ramdisk is mounted as drive 0 with the following directory structure: 0:/os/ System/CLI binaries, os data 0:/apps/ App bundles 0:/config/ System-wide config TOMLs 0:/users// 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:/sdk/ Montauk SDK (native gcc/binutils, TinyCC, Lua, headers and libraries), when installed 0:/boot/ Kernel, bootloader, ramdisk image .SH SHELL 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 of commands. Use 'man shell' for detailed shell documentation. .SH MAN PAGES 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 wifi(1) Wi-Fi configuration sshd(1) SSH daemon 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 rtlsdr(3) RTL-SDR software radio API .SH SEE ALSO shell(1), syscalls(2), malloc(3)