Files
2026-10-14 07:31:20 +02:00

206 lines
6.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="MontaukOS manual page: intro(1) - introduction to MontaukOS userspace">
<title>intro(1) - MontaukOS Manual</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Open Sans', Arial, sans-serif;
max-width: 960px;
margin: 0 auto;
padding: 1em;
line-height: 1.5;
display: flex;
gap: 2em;
}
p { margin: 0 0 0.5em; }
h2 { margin: 0.5em 0; }
.sidebar {
width: 160px;
flex-shrink: 0;
}
.sidebar ul {
list-style: none;
padding: 0;
}
.sidebar li {
margin: 0.5em 0;
}
.sidebar a {
color: #0066CC;
text-decoration: none;
font-weight: 600;
}
.sidebar a:hover {
color: #004499;
text-decoration: underline;
}
.sidebar .current {
color: #004499;
}
.sidebar hr {
border: none;
border-top: 1px solid #999;
margin: 0.75em 0;
}
.main {
flex: 1;
min-width: 0;
}
a { color: #0000EE; }
a:visited { color: #0066CC; }
hr { border-style: solid; border-width: 1px 0 0 0; border-color: #999; }
pre { background: #f0f0f0; padding: 0.5em; overflow-x: auto; }
code { background: #f0f0f0; padding: 0 0.15em; }
pre code { padding: 0; }
.center { text-align: center; }
.box {
border: 1px solid #999;
padding: 0.5em;
margin: 0.5em 0;
}
@media (max-width: 700px) {
body {
flex-direction: column;
gap: 1em;
padding: 1em 0.75em;
}
.sidebar {
width: auto;
}
.sidebar ul {
display: flex;
flex-wrap: wrap;
gap: 0 1em;
}
.sidebar hr {
width: 100%;
}
}
</style>
</head>
<body>
<div class="sidebar">
<ul>
<li><a href="../../index.html">Home</a></li>
<li><a href="../../downloads.html">Downloads</a></li>
<li><a href="../../history.html">History</a></li>
<li><a href="../index.html">Documentation</a></li>
<li><a href="https://git.montaukos.org/daniel/MontaukOS/issues">Issue tracker</a></li>
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
</ul>
<hr>
<ul>
<li><a href="index.html" class="current">Man Pages</a></li>
</ul>
</div>
<div class="main">
<div class="center">
<h1>intro(1)</h1>
</div>
<hr>
<pre><code><strong>NAME</strong>
intro - introduction to MontaukOS userspace
<strong>DESCRIPTION</strong>
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 <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).
<strong>GETTING STARTED</strong>
To write a new system/CLI program, create a directory under
programs/src/ with a main.cpp file.
Build with:
cd programs &amp;&amp; make
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, os data
0:/apps/ App bundles
0:/config/ System-wide config TOMLs
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:/sdk/ Montauk SDK (native gcc/binutils, TinyCC,
Lua, headers and libraries), when installed
0:/boot/ Kernel, bootloader, ramdisk image
<strong>SHELL</strong>
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.
<strong>MAN PAGES</strong>
The following man pages are available:
<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>
<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">
<a href="../index.html">Back to Documentation Index</a>
</div>
</div>
</body>
</html>