Compare commits
7
Commits
0971530366
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b31daeeef | ||
|
|
400772a84d | ||
|
|
f0cba5f57e | ||
|
|
0b0689a74e | ||
|
|
a463834e0a | ||
|
|
7eda8b1a8d | ||
|
|
62626d8acd |
No files matched your search
@@ -54,6 +54,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
@@ -117,6 +117,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
<!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 status codes">
|
||||||
|
<title>Status codes - MontaukOS</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.75em; }
|
||||||
|
h2 { margin: 1.25em 0 0.5em; }
|
||||||
|
.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; }
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0.5em 0;
|
||||||
|
}
|
||||||
|
th, td {
|
||||||
|
border: 1px solid #999;
|
||||||
|
padding: 0.35em 0.5em;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
th { background: #f0f0f0; }
|
||||||
|
th:first-child, td:first-child {
|
||||||
|
width: 8em;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.center { text-align: center; }
|
||||||
|
@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">Application Programming Manual</a></li>
|
||||||
|
<li><a href="status-codes.html" class="current">Status codes</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="main">
|
||||||
|
<div class="center">
|
||||||
|
<h1>Status codes</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>The following table is a reference to the numerical status codes returned by the MontaukOS system and applications.</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<col style="width: 8em">
|
||||||
|
<col>
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr><th>Code</th><th>Text</th><th>Explanation</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>0</td><td>Success</td><td></td></tr>
|
||||||
|
<tr><td>(-)1</td><td>Generic failure</td><td></td></tr>
|
||||||
|
<tr><td>(-)2</td><td>Permission denied</td><td></td></tr>
|
||||||
|
<tr><td>(-)3</td><td>Capability denied</td><td></td></tr>
|
||||||
|
<tr><td>(-)4</td><td>System integrity error</td><td>The path is protected by the system and can't be modified.</td></tr>
|
||||||
|
<tr><td>(-)5</td><td>Bad pointer</td><td></td></tr>
|
||||||
|
<tr><td>(-)6</td><td>Invalid argument</td><td></td></tr>
|
||||||
|
<tr><td>(-)7</td><td>Unsupported operation</td><td></td></tr>
|
||||||
|
<tr><td>(-)8</td><td>No device</td><td></td></tr>
|
||||||
|
<tr><td>(-)9</td><td>I/O failure</td><td></td></tr>
|
||||||
|
<tr><td>(-)10</td><td>Bad invocation</td><td></td></tr>
|
||||||
|
<tr><td>(-)11</td><td>No such path</td><td></td></tr>
|
||||||
|
<tr><td>(-)12</td><td>Busy</td><td></td></tr>
|
||||||
|
<tr><td>(-)13</td><td>Buffer too small</td><td>The buffer supplied by the caller is too small.</td></tr>
|
||||||
|
<tr><td>(-)14</td><td>Out of memory</td><td></td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="center">
|
||||||
|
<a href="../index.html">Back to Documentation Index</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -98,6 +98,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../index.html">Home</a></li>
|
<li><a href="../index.html">Home</a></li>
|
||||||
<li><a href="../downloads.html">Downloads</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="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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -131,6 +132,9 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href="apm/dialogs.html">Dialogs library</a>
|
<a href="apm/dialogs.html">Dialogs library</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="apm/status-codes.html">Status codes</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|||||||
+8
-2
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,9 +111,11 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
dhcp - obtain network configuration via DHCP
|
dhcp - obtain network configuration via DHCP
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
dhcp
|
dhcp
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
The DHCP client automatically obtains an IP address, subnet mask,
|
The DHCP client automatically obtains an IP address, subnet mask,
|
||||||
default gateway, and other network parameters from a DHCP server
|
default gateway, and other network parameters from a DHCP server
|
||||||
@@ -125,6 +128,7 @@
|
|||||||
The client is run automatically by the init system at boot, but
|
The client is run automatically by the init system at boot, but
|
||||||
may also be invoked manually from the shell.
|
may also be invoked manually from the shell.
|
||||||
|
|
||||||
|
|
||||||
<strong>PROTOCOL</strong>
|
<strong>PROTOCOL</strong>
|
||||||
The client performs the standard four-message DHCP exchange:
|
The client performs the standard four-message DHCP exchange:
|
||||||
|
|
||||||
@@ -139,11 +143,13 @@
|
|||||||
Each step has a 10-second timeout. If no response is received
|
Each step has a 10-second timeout. If no response is received
|
||||||
the client exits with an error and restores the previous config.
|
the client exits with an error and restores the previous config.
|
||||||
|
|
||||||
|
|
||||||
<strong>OUTPUT</strong>
|
<strong>OUTPUT</strong>
|
||||||
On success the client prints the assigned configuration:
|
On success the client prints the assigned configuration:
|
||||||
|
|
||||||
IP Address, Subnet Mask, Gateway, DNS Server, Lease Time
|
IP Address, Subnet Mask, Gateway, DNS Server, Lease Time
|
||||||
|
|
||||||
|
|
||||||
<strong>OPTIONS</strong>
|
<strong>OPTIONS</strong>
|
||||||
The DHCP client requests the following options from the server:
|
The DHCP client requests the following options from the server:
|
||||||
|
|
||||||
@@ -152,9 +158,9 @@
|
|||||||
6 DNS Server
|
6 DNS Server
|
||||||
51 Lease Time
|
51 Lease Time
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
ifconfig(1), shell(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
ifconfig(1), <a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+11
-2
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,9 +111,11 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
edit - text editor for MontaukOS
|
edit - text editor for MontaukOS
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
edit [filename]
|
edit [filename]
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
edit is an interactive text editor. When invoked with a filename,
|
edit is an interactive text editor. When invoked with a filename,
|
||||||
it opens the file for editing. If the file does not exist, a new
|
it opens the file for editing. If the file does not exist, a new
|
||||||
@@ -121,8 +124,10 @@
|
|||||||
When invoked without arguments, edit opens an empty buffer. You
|
When invoked without arguments, edit opens an empty buffer. You
|
||||||
will be prompted for a filename when saving.
|
will be prompted for a filename when saving.
|
||||||
|
|
||||||
|
|
||||||
<strong>KEYBOARD SHORTCUTS</strong>
|
<strong>KEYBOARD SHORTCUTS</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>Navigation</strong>
|
<strong>Navigation</strong>
|
||||||
Arrow Keys Move cursor up/down/left/right
|
Arrow Keys Move cursor up/down/left/right
|
||||||
Home Move to start of line
|
Home Move to start of line
|
||||||
@@ -130,18 +135,21 @@
|
|||||||
Page Up Scroll up one page
|
Page Up Scroll up one page
|
||||||
Page Down Scroll down one page
|
Page Down Scroll down one page
|
||||||
|
|
||||||
|
|
||||||
<strong>Editing</strong>
|
<strong>Editing</strong>
|
||||||
Backspace Delete character before cursor
|
Backspace Delete character before cursor
|
||||||
Delete Delete character at cursor
|
Delete Delete character at cursor
|
||||||
Enter Insert new line
|
Enter Insert new line
|
||||||
Tab Insert 4 spaces
|
Tab Insert 4 spaces
|
||||||
|
|
||||||
|
|
||||||
<strong>Commands</strong>
|
<strong>Commands</strong>
|
||||||
Ctrl+S Save file
|
Ctrl+S Save file
|
||||||
Ctrl+Q Quit (warns if unsaved changes)
|
Ctrl+Q Quit (warns if unsaved changes)
|
||||||
Ctrl+F Search for text
|
Ctrl+F Search for text
|
||||||
Ctrl+G Find next occurrence
|
Ctrl+G Find next occurrence
|
||||||
|
|
||||||
|
|
||||||
<strong>DISPLAY</strong>
|
<strong>DISPLAY</strong>
|
||||||
The top line shows the filename, a modified indicator [+],
|
The top line shows the filename, a modified indicator [+],
|
||||||
and the current cursor position (Ln, Col).
|
and the current cursor position (Ln, Col).
|
||||||
@@ -151,13 +159,14 @@
|
|||||||
Line numbers are displayed in a gutter on the left side.
|
Line numbers are displayed in a gutter on the left side.
|
||||||
Lines past the end of the file are marked with ~.
|
Lines past the end of the file are marked with ~.
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
edit intro.1 Edit a file
|
edit intro.1 Edit a file
|
||||||
edit Open a new empty buffer
|
edit Open a new empty buffer
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
cat(1), shell(1)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
cat(1), <a href="shell.html">shell(1)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+10
-3
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,10 +111,12 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
fetch - HTTP/HTTPS client for MontaukOS
|
fetch - HTTP/HTTPS client for MontaukOS
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
fetch [-v] <url>
|
fetch [-v] <url>
|
||||||
fetch [-v] <host> <port> [path]
|
fetch [-v] <host> <port> [path]
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
fetch performs an HTTP/1.0 GET request and prints the response
|
fetch performs an HTTP/1.0 GET request and prints the response
|
||||||
body to the terminal. Supports both plain HTTP and HTTPS (TLS 1.2)
|
body to the terminal. Supports both plain HTTP and HTTPS (TLS 1.2)
|
||||||
@@ -130,12 +133,14 @@
|
|||||||
|
|
||||||
If no path is given, "/" is used.
|
If no path is given, "/" is used.
|
||||||
|
|
||||||
|
|
||||||
<strong>OPTIONS</strong>
|
<strong>OPTIONS</strong>
|
||||||
<strong>-v</strong>
|
<strong>-v</strong>
|
||||||
Verbose mode. Print connection info, trust anchor count, TLS
|
Verbose mode. Print connection info, trust anchor count, TLS
|
||||||
handshake progress, and the HTTP status/size header before
|
handshake progress, and the HTTP status/size header before
|
||||||
the body.
|
the body.
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
fetch https://icanhazip.com
|
fetch https://icanhazip.com
|
||||||
Print your public IP address over HTTPS.
|
Print your public IP address over HTTPS.
|
||||||
@@ -155,6 +160,7 @@
|
|||||||
fetch 10.0.68.1 80 /
|
fetch 10.0.68.1 80 /
|
||||||
Fetch from a local server by IP (legacy syntax).
|
Fetch from a local server by IP (legacy syntax).
|
||||||
|
|
||||||
|
|
||||||
<strong>TLS SUPPORT</strong>
|
<strong>TLS SUPPORT</strong>
|
||||||
HTTPS connections use BearSSL for TLS 1.2. Server certificates
|
HTTPS connections use BearSSL for TLS 1.2. Server certificates
|
||||||
are validated against the system CA bundle at
|
are validated against the system CA bundle at
|
||||||
@@ -163,12 +169,13 @@
|
|||||||
Entropy for the TLS handshake is provided by RDTSC-seeded
|
Entropy for the TLS handshake is provided by RDTSC-seeded
|
||||||
random data via the SYS_GETRANDOM syscall.
|
random data via the SYS_GETRANDOM syscall.
|
||||||
|
|
||||||
|
|
||||||
<strong>KEYBOARD</strong>
|
<strong>KEYBOARD</strong>
|
||||||
Ctrl+Q Abort the request
|
Ctrl+Q Abort the request
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
ping(1), nslookup(1), tcpconnect(1), shell(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="ping.html">ping(1)</a>, <a href="nslookup.html">nslookup(1)</a>, tcpconnect(1), <a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+25
-14
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,26 +111,30 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
open, read, getsize, close, readdir - file I/O system calls
|
open, read, getsize, close, readdir - file I/O system calls
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong> int montauk::open(const char* path);</strong>
|
<strong>int montauk::open(const char* path);</strong>
|
||||||
<strong> int montauk::read(int handle, uint8_t* buf, uint64_t offset, uint64_t size);</strong>
|
<strong>int montauk::read(int handle, uint8_t* buf, uint64_t offset, uint64_t size);</strong>
|
||||||
<strong> uint64_t montauk::getsize(int handle);</strong>
|
<strong>uint64_t montauk::getsize(int handle);</strong>
|
||||||
<strong> void montauk::close(int handle);</strong>
|
<strong>void montauk::close(int handle);</strong>
|
||||||
<strong> int montauk::readdir(const char* path, const char** names, int max);</strong>
|
<strong>int montauk::readdir(const char* path, const char** names, int max);</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
MontaukOS provides a Virtual File System (VFS) with read/write
|
MontaukOS provides a Virtual File System (VFS) with read/write
|
||||||
support. Drive 0 is the boot ramdisk; additional drives may be
|
support. Drive 0 is the boot ramdisk; additional drives may be
|
||||||
mounted from GPT partitions backed by FAT32 or ext2 (see
|
mounted from GPT partitions backed by FAT32 or ext2 (see
|
||||||
syscalls(2), STORAGE section). Files are accessed via paths in
|
<a href="syscalls.html">syscalls(2)</a>, STORAGE section). Files are accessed via paths in
|
||||||
the format "<drive>:/<path>".
|
the format "<drive>:/<path>".
|
||||||
|
|
||||||
|
|
||||||
<strong>open</strong>
|
<strong>open</strong>
|
||||||
Opens a file and returns a non-negative handle on success, or a
|
Opens a file and returns a non-negative handle on success, or a
|
||||||
negative value on error (file not found, no free handles).
|
negative value on error (file not found, no free handles).
|
||||||
|
|
||||||
int h = montauk::open("0:/os/hello.elf");
|
int h = montauk::open("0:/os/hello.elf");
|
||||||
|
|
||||||
|
|
||||||
<strong>read</strong>
|
<strong>read</strong>
|
||||||
Reads up to 'size' bytes starting at 'offset' into 'buf'.
|
Reads up to 'size' bytes starting at 'offset' into 'buf'.
|
||||||
Returns the number of bytes actually read, or negative on error.
|
Returns the number of bytes actually read, or negative on error.
|
||||||
@@ -139,16 +144,19 @@
|
|||||||
uint8_t buf[512];
|
uint8_t buf[512];
|
||||||
int n = montauk::read(h, buf, 0, 512);
|
int n = montauk::read(h, buf, 0, 512);
|
||||||
|
|
||||||
|
|
||||||
<strong>getsize</strong>
|
<strong>getsize</strong>
|
||||||
Returns the total size in bytes of the file.
|
Returns the total size in bytes of the file.
|
||||||
|
|
||||||
uint64_t sz = montauk::getsize(h);
|
uint64_t sz = montauk::getsize(h);
|
||||||
|
|
||||||
|
|
||||||
<strong>close</strong>
|
<strong>close</strong>
|
||||||
Closes the file handle and frees kernel resources.
|
Closes the file handle and frees kernel resources.
|
||||||
|
|
||||||
montauk::close(h);
|
montauk::close(h);
|
||||||
|
|
||||||
|
|
||||||
<strong>readdir</strong>
|
<strong>readdir</strong>
|
||||||
Lists entries in a directory. Up to 'max' entry names (VFS cap
|
Lists entries in a directory. Up to 'max' entry names (VFS cap
|
||||||
256, driver-backed listings such as 0:/os/ cap 128) are written
|
256, driver-backed listings such as 0:/os/ cap 128) are written
|
||||||
@@ -164,6 +172,7 @@
|
|||||||
call, use montauk::readdir_at(path, names, max, startIndex) and
|
call, use montauk::readdir_at(path, names, max, startIndex) and
|
||||||
advance startIndex by the returned count until it returns 0.
|
advance startIndex by the returned count until it returns 0.
|
||||||
|
|
||||||
|
|
||||||
<strong>READING PATTERN</strong>
|
<strong>READING PATTERN</strong>
|
||||||
The standard pattern for reading a file:
|
The standard pattern for reading a file:
|
||||||
|
|
||||||
@@ -182,12 +191,13 @@
|
|||||||
}
|
}
|
||||||
montauk::close(h);
|
montauk::close(h);
|
||||||
|
|
||||||
|
|
||||||
<strong>WRITING, DELETING, RENAMING</strong>
|
<strong>WRITING, DELETING, RENAMING</strong>
|
||||||
<strong> int montauk::fcreate(const char* path);</strong>
|
<strong>int montauk::fcreate(const char* path);</strong>
|
||||||
<strong> int montauk::fwrite(int handle, const uint8_t* buf, uint64_t offset, uint64_t size);</strong>
|
<strong>int montauk::fwrite(int handle, const uint8_t* buf, uint64_t offset, uint64_t size);</strong>
|
||||||
<strong> int montauk::fdelete(const char* path);</strong>
|
<strong>int montauk::fdelete(const char* path);</strong>
|
||||||
<strong> int montauk::fmkdir(const char* path);</strong>
|
<strong>int montauk::fmkdir(const char* path);</strong>
|
||||||
<strong> int montauk::frename(const char* oldPath, const char* newPath);</strong>
|
<strong>int montauk::frename(const char* oldPath, const char* newPath);</strong>
|
||||||
|
|
||||||
fcreate creates a new file and returns a handle. fwrite writes
|
fcreate creates a new file and returns a handle. fwrite writes
|
||||||
bytes at the given offset. fdelete removes a file, fmkdir
|
bytes at the given offset. fdelete removes a file, fmkdir
|
||||||
@@ -200,15 +210,16 @@
|
|||||||
montauk::fs_mount), changes are written through to storage; use
|
montauk::fs_mount), changes are written through to storage; use
|
||||||
montauk::fs_sync() to flush caches before power-off.
|
montauk::fs_sync() to flush caches before power-off.
|
||||||
|
|
||||||
|
|
||||||
<strong>NOTES</strong>
|
<strong>NOTES</strong>
|
||||||
Drive 0 is loaded at boot from a USTAR tar archive into RAM.
|
Drive 0 is loaded at boot from a USTAR tar archive into RAM.
|
||||||
Other drives are mounted on demand from GPT partitions on
|
Other drives are mounted on demand from GPT partitions on
|
||||||
SATA/NVMe/USB block devices; see syscalls(2), STORAGE and
|
SATA/NVMe/USB block devices; see <a href="syscalls.html">syscalls(2)</a>, STORAGE and
|
||||||
DEVICES sections.
|
DEVICES sections.
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
syscalls(2), spawn(2), malloc(3)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="syscalls.html">syscalls(2)</a>, <a href="spawn.html">spawn(2)</a>, <a href="malloc.html">malloc(3)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,11 +111,13 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
fontscale - get or set terminal font scale
|
fontscale - get or set terminal font scale
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
fontscale
|
fontscale
|
||||||
fontscale <n>
|
fontscale <n>
|
||||||
fontscale <x> <y>
|
fontscale <x> <y>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
Controls the terminal font scale factor. The Flanterm terminal
|
Controls the terminal font scale factor. The Flanterm terminal
|
||||||
emulator renders text at a configurable scale multiplier.
|
emulator renders text at a configurable scale multiplier.
|
||||||
@@ -134,6 +137,7 @@
|
|||||||
Valid scale values are 1 through 8. After rescaling, the screen
|
Valid scale values are 1 through 8. After rescaling, the screen
|
||||||
is cleared.
|
is cleared.
|
||||||
|
|
||||||
|
|
||||||
<strong>OUTPUT</strong>
|
<strong>OUTPUT</strong>
|
||||||
fontscale
|
fontscale
|
||||||
Scale: 1x1 (160 cols x 50 rows)
|
Scale: 1x1 (160 cols x 50 rows)
|
||||||
@@ -141,15 +145,16 @@
|
|||||||
fontscale 2
|
fontscale 2
|
||||||
Scale set to 2x2 (80 cols x 25 rows)
|
Scale set to 2x2 (80 cols x 25 rows)
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
fontscale Show current scale and dimensions
|
fontscale Show current scale and dimensions
|
||||||
fontscale 2 Double the font size
|
fontscale 2 Double the font size
|
||||||
fontscale 3 2 3x horizontal, 2x vertical
|
fontscale 3 2 3x horizontal, 2x vertical
|
||||||
fontscale 1 Reset to default size
|
fontscale 1 Reset to default size
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
shell(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,14 +111,17 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
fb_info, fb_map - direct framebuffer access
|
fb_info, fb_map - direct framebuffer access
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong> void montauk::fb_info(montauk::abi::FbInfo* info);</strong>
|
<strong>void montauk::fb_info(montauk::abi::FbInfo* info);</strong>
|
||||||
<strong> void* montauk::fb_map();</strong>
|
<strong>void* montauk::fb_map();</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
These syscalls allow userspace programs to access the linear
|
These syscalls allow userspace programs to access the linear
|
||||||
framebuffer directly for graphical output.
|
framebuffer directly for graphical output.
|
||||||
|
|
||||||
|
|
||||||
<strong>fb_info</strong>
|
<strong>fb_info</strong>
|
||||||
Fills in an FbInfo structure with the framebuffer geometry:
|
Fills in an FbInfo structure with the framebuffer geometry:
|
||||||
|
|
||||||
@@ -128,15 +132,18 @@
|
|||||||
The pitch is the number of bytes per scanline (may be larger
|
The pitch is the number of bytes per scanline (may be larger
|
||||||
than width * 4 due to alignment). bpp is always 32.
|
than width * 4 due to alignment). bpp is always 32.
|
||||||
|
|
||||||
|
|
||||||
<strong>fb_map</strong>
|
<strong>fb_map</strong>
|
||||||
Maps the physical framebuffer into the process address space at
|
Maps the physical framebuffer into a dedicated region of the process
|
||||||
a fixed virtual address (0x50000000) and returns that address.
|
address space and returns its address. Programs must use the returned
|
||||||
|
pointer rather than assuming a particular virtual address.
|
||||||
|
|
||||||
uint32_t* pixels = (uint32_t*)montauk::fb_map();
|
uint32_t* pixels = (uint32_t*)montauk::fb_map();
|
||||||
|
|
||||||
Each pixel is a 32-bit value in 0xAARRGGBB format (blue in the
|
Each pixel is a 32-bit value in 0xAARRGGBB format (blue in the
|
||||||
low byte). Writing to this memory directly updates the screen.
|
low byte). Writing to this memory directly updates the screen.
|
||||||
|
|
||||||
|
|
||||||
<strong>PIXEL FORMAT</strong>
|
<strong>PIXEL FORMAT</strong>
|
||||||
Bits 31-24: Alpha (unused, typically 0xFF)
|
Bits 31-24: Alpha (unused, typically 0xFF)
|
||||||
Bits 23-16: Red
|
Bits 23-16: Red
|
||||||
@@ -145,6 +152,7 @@
|
|||||||
|
|
||||||
Example: red = 0x00FF0000, green = 0x0000FF00, blue = 0x000000FF
|
Example: red = 0x00FF0000, green = 0x0000FF00, blue = 0x000000FF
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLE</strong>
|
<strong>EXAMPLE</strong>
|
||||||
Fill the screen with blue:
|
Fill the screen with blue:
|
||||||
|
|
||||||
@@ -159,6 +167,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
<strong>NOTES</strong>
|
<strong>NOTES</strong>
|
||||||
After mapping, the cursor overlay is not composited. Programs
|
After mapping, the cursor overlay is not composited. Programs
|
||||||
that use the framebuffer take full control of screen output.
|
that use the framebuffer take full control of screen output.
|
||||||
@@ -166,9 +175,9 @@
|
|||||||
Only one mapping per process is supported. Calling fb_map()
|
Only one mapping per process is supported. Calling fb_map()
|
||||||
multiple times returns the same address.
|
multiple times returns the same address.
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
syscalls(2), malloc(3)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="syscalls.html">syscalls(2)</a>, <a href="malloc.html">malloc(3)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+65
-44
@@ -102,6 +102,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -127,56 +128,51 @@ Manual pages for MontaukOS, viewable in-system with the <a href="man.html">man(1
|
|||||||
|
|
||||||
<ul class="doc-list">
|
<ul class="doc-list">
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="intro.html">intro(1)</a>
|
|
||||||
<p>introduction to MontaukOS userspace</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="shell.html">shell(1)</a>
|
|
||||||
<p>MontaukOS interactive command shell</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="init.html">init(1)</a>
|
|
||||||
<p>MontaukOS init system</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="dhcp.html">dhcp(1)</a>
|
<a href="dhcp.html">dhcp(1)</a>
|
||||||
<p>obtain network configuration via DHCP</p>
|
<p>obtain network configuration via DHCP</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="fetch.html">fetch(1)</a>
|
|
||||||
<p>HTTP/HTTPS client for MontaukOS</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="ping.html">ping(1)</a>
|
|
||||||
<p>send ICMP echo requests</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="nslookup.html">nslookup(1)</a>
|
|
||||||
<p>DNS hostname lookup</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="fontscale.html">fontscale(1)</a>
|
|
||||||
<p>get or set terminal font scale</p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="edit.html">edit(1)</a>
|
<a href="edit.html">edit(1)</a>
|
||||||
<p>text editor for MontaukOS</p>
|
<p>text editor for MontaukOS</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="fetch.html">fetch(1)</a>
|
||||||
|
<p>HTTP/HTTPS client for MontaukOS</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="fontscale.html">fontscale(1)</a>
|
||||||
|
<p>get or set terminal font scale</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="init.html">init(1)</a>
|
||||||
|
<p>MontaukOS init system</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="intro.html">intro(1)</a>
|
||||||
|
<p>introduction to MontaukOS userspace</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="man.html">man(1)</a>
|
<a href="man.html">man(1)</a>
|
||||||
<p>display manual pages</p>
|
<p>display manual pages</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="nslookup.html">nslookup(1)</a>
|
||||||
|
<p>DNS hostname lookup</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="ping.html">ping(1)</a>
|
||||||
|
<p>send ICMP echo requests</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="printctl.html">printctl(1)</a>
|
<a href="printctl.html">printctl(1)</a>
|
||||||
<p>configure printers and submit print jobs</p>
|
<p>configure printers and submit print jobs</p>
|
||||||
@@ -187,6 +183,26 @@ Manual pages for MontaukOS, viewable in-system with the <a href="man.html">man(1
|
|||||||
<p>MontaukOS userspace print spooler daemon</p>
|
<p>MontaukOS userspace print spooler daemon</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="shell.html">shell(1)</a>
|
||||||
|
<p>MontaukOS interactive command shell</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="sshd.html">sshd(1)</a>
|
||||||
|
<p>MontaukOS SSH-2 server</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="vol.html">vol(1)</a>
|
||||||
|
<p>list mounted volumes</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="wifi.html">wifi(1)</a>
|
||||||
|
<p>scan for wireless networks and inspect the Wi-Fi adapter</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="wiki.html">wiki(1)</a>
|
<a href="wiki.html">wiki(1)</a>
|
||||||
<p>Wikipedia article viewer for MontaukOS</p>
|
<p>Wikipedia article viewer for MontaukOS</p>
|
||||||
@@ -199,8 +215,13 @@ Manual pages for MontaukOS, viewable in-system with the <a href="man.html">man(1
|
|||||||
<ul class="doc-list">
|
<ul class="doc-list">
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="syscalls.html">syscalls(2)</a>
|
<a href="file.html">file(2)</a>
|
||||||
<p>overview of MontaukOS system calls</p>
|
<p>file I/O system calls</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="framebuffer.html">framebuffer(2)</a>
|
||||||
|
<p>direct framebuffer access</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
@@ -209,13 +230,8 @@ Manual pages for MontaukOS, viewable in-system with the <a href="man.html">man(1
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a href="file.html">file(2)</a>
|
<a href="syscalls.html">syscalls(2)</a>
|
||||||
<p>file I/O system calls</p>
|
<p>overview of MontaukOS system calls</p>
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a href="framebuffer.html">framebuffer(2)</a>
|
|
||||||
<p>direct framebuffer access</p>
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
@@ -229,6 +245,11 @@ Manual pages for MontaukOS, viewable in-system with the <a href="man.html">man(1
|
|||||||
<p>userspace heap allocation</p>
|
<p>userspace heap allocation</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="rtlsdr.html">rtlsdr(3)</a>
|
||||||
|
<p>userspace RTL2832U and R820T2 radio driver</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>File Formats / Reference (Section 5)</h2>
|
<h2>File Formats / Reference (Section 5)</h2>
|
||||||
|
|||||||
+27
-12
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,30 +111,44 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
init - MontaukOS init system
|
init - MontaukOS init system
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
Spawned automatically by the kernel as PID 0.
|
Spawned automatically by the kernel as PID 0.
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
init is the first userspace process started by the MontaukOS
|
init is the first userspace process started by the MontaukOS
|
||||||
kernel. It chains system services in sequence, then launches
|
kernel. It discovers system services from 0:/config/init.toml
|
||||||
the interactive shell.
|
and starts them in the order their tables appear in that file.
|
||||||
|
|
||||||
Each service is spawned as a child process. init waits for it
|
Each enabled service is spawned as a child process. Services may
|
||||||
to exit before starting the next one. If a service fails to
|
run in the background or block startup until they exit. Disabled
|
||||||
spawn, init logs an error and continues to the next stage.
|
services are logged and skipped.
|
||||||
|
|
||||||
Log output is timestamped and color-coded:
|
Log output is timestamped and color-coded:
|
||||||
|
|
||||||
HH:MM:SS INFO init Starting dhcp
|
HH:MM:SS INFO init Starting dhcp
|
||||||
HH:MM:SS OK init dhcp finished (pid 1)
|
HH:MM:SS OK init dhcp finished (pid 1)
|
||||||
|
|
||||||
<strong>BOOT SEQUENCE</strong>
|
|
||||||
The following services are started in order:
|
|
||||||
|
|
||||||
1. 0:/os/dhcp.elf Obtain network configuration via DHCP
|
<strong>CONFIGURATION</strong>
|
||||||
2. 0:/os/shell.elf Launch the interactive shell
|
Each service is declared as a named TOML table:
|
||||||
|
|
||||||
|
[services.dhcp]
|
||||||
|
path = "0:/os/dhcp.elf"
|
||||||
|
enabled = true
|
||||||
|
wait = false
|
||||||
|
|
||||||
|
path is required. name controls the name shown in the boot log and
|
||||||
|
defaults to the table name. enabled and wait both default to true.
|
||||||
|
optional skips a service whose executable is not installed.
|
||||||
|
|
||||||
|
fallback names another configured service to start if spawning the
|
||||||
|
service fails. A service with fallback_only = true is available as
|
||||||
|
a fallback but is not started during the normal pass.
|
||||||
|
|
||||||
|
After all foreground services exit, init enters an idle loop.
|
||||||
|
|
||||||
After the shell exits, init enters an idle loop.
|
|
||||||
|
|
||||||
<strong>LOG LEVELS</strong>
|
<strong>LOG LEVELS</strong>
|
||||||
init uses four log levels, each with a distinct color:
|
init uses four log levels, each with a distinct color:
|
||||||
@@ -143,9 +158,9 @@
|
|||||||
WARN Yellow Non-fatal warning
|
WARN Yellow Non-fatal warning
|
||||||
FAIL Red Service failed to start
|
FAIL Red Service failed to start
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
dhcp(1), shell(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="dhcp.html">dhcp(1)</a>, <a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+48
-55
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,31 +111,22 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
intro - introduction to MontaukOS userspace
|
intro - introduction to MontaukOS userspace
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
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 <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>
|
<strong>GETTING STARTED</strong>
|
||||||
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:
|
||||||
|
|
||||||
@@ -143,64 +135,65 @@
|
|||||||
System/CLI binaries appear in programs/bin/os/; GUI app bundles
|
System/CLI binaries appear in programs/bin/os/; GUI app bundles
|
||||||
(ELF + manifest.toml + icon) appear under programs/bin/apps/<name>/.
|
(ELF + manifest.toml + icon) appear under programs/bin/apps/<name>/.
|
||||||
|
|
||||||
|
|
||||||
<strong>RAMDISK LAYOUT</strong>
|
<strong>RAMDISK LAYOUT</strong>
|
||||||
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
|
||||||
0:/www/ Web server content
|
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
|
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>
|
<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
|
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.
|
||||||
|
|
||||||
|
|
||||||
<strong>MAN PAGES</strong>
|
<strong>MAN PAGES</strong>
|
||||||
The following man pages are available:
|
The following man pages are available:
|
||||||
|
|
||||||
intro(1) This page
|
<a href="intro.html">intro(1)</a> This page
|
||||||
shell(1) Shell commands reference
|
<a href="shell.html">shell(1)</a> Shell commands reference
|
||||||
init(1) Init system
|
<a href="init.html">init(1)</a> Init system
|
||||||
dhcp(1) DHCP client
|
<a href="dhcp.html">dhcp(1)</a> DHCP client
|
||||||
fetch(1) HTTP client
|
<a href="fetch.html">fetch(1)</a> HTTP client
|
||||||
ping(1) ICMP ping
|
<a href="ping.html">ping(1)</a> ICMP ping
|
||||||
nslookup(1) DNS lookup
|
<a href="nslookup.html">nslookup(1)</a> DNS lookup
|
||||||
fontscale(1) Terminal font scaling
|
<a href="wifi.html">wifi(1)</a> Wi-Fi configuration
|
||||||
edit(1) Text editor
|
<a href="sshd.html">sshd(1)</a> SSH daemon
|
||||||
man(1) The man command itself
|
<a href="fontscale.html">fontscale(1)</a> Terminal font scaling
|
||||||
printctl(1) Printer control
|
<a href="edit.html">edit(1)</a> Text editor
|
||||||
printd(1) Print spooler daemon
|
<a href="man.html">man(1)</a> The man command itself
|
||||||
wiki(1) Wikipedia article viewer
|
<a href="printctl.html">printctl(1)</a> Printer control
|
||||||
legal(7) Copyright and legal information
|
<a href="printd.html">printd(1)</a> Print spooler daemon
|
||||||
tls-errors(5) TLS/BearSSL error reference
|
<a href="wiki.html">wiki(1)</a> Wikipedia article viewer
|
||||||
syscalls(2) Overview of all syscalls
|
<a href="legal.html">legal(7)</a> Copyright and legal information
|
||||||
spawn(2) Process spawning
|
<a href="tls-errors.html">tls-errors(5)</a> TLS/BearSSL error reference
|
||||||
file(2) File I/O syscalls
|
<a href="syscalls.html">syscalls(2)</a> Overview of all syscalls
|
||||||
framebuffer(2) Framebuffer access
|
<a href="spawn.html">spawn(2)</a> Process spawning
|
||||||
malloc(3) Memory allocation
|
<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>
|
<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>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+3
-1
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,6 +111,7 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
MontaukOS legal/copyright information
|
MontaukOS legal/copyright information
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
Copyright (c) 2025-2026 Daniel Hammer, et al.
|
Copyright (c) 2025-2026 Daniel Hammer, et al.
|
||||||
(includes contributors to other projects, i.e. The Limine Bootloader. Please refer to any other project's own license.)
|
(includes contributors to other projects, i.e. The Limine Bootloader. Please refer to any other project's own license.)
|
||||||
@@ -139,6 +141,7 @@
|
|||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
<strong>THIRD-PARTY COMPONENTS</strong>
|
<strong>THIRD-PARTY COMPONENTS</strong>
|
||||||
MontaukOS is distributed together with third-party components that remain
|
MontaukOS is distributed together with third-party components that remain
|
||||||
under their own licenses, including:
|
under their own licenses, including:
|
||||||
@@ -165,7 +168,6 @@
|
|||||||
Unsplash License
|
Unsplash License
|
||||||
|
|
||||||
Full license texts and notices are on this system in 0:/os/licenses/.</code></pre>
|
Full license texts and notices are on this system in 0:/os/licenses/.</code></pre>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+34
-24
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,60 +111,69 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
malloc, mfree, realloc - userspace heap allocation
|
malloc, mfree, realloc - userspace heap allocation
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong> void* montauk::malloc(uint64_t size);</strong>
|
<strong>void* montauk::malloc(uint64_t size);</strong>
|
||||||
<strong> void montauk::mfree(void* ptr);</strong>
|
<strong>void montauk::mfree(void* ptr);</strong>
|
||||||
<strong> void* montauk::realloc(void* ptr, uint64_t size);</strong>
|
<strong>void* montauk::realloc(void* ptr, uint64_t size);</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
The userspace heap provides dynamic memory allocation on top of
|
The userspace heap provides dynamic memory allocation on top of
|
||||||
the kernel's page-mapping syscall (SYS_ALLOC). Include the
|
anonymous virtual memory. The Montauk C++ API and libc's
|
||||||
header <montauk/heap.h> to use these functions.
|
malloc/free API use the same process-wide allocator.
|
||||||
|
|
||||||
|
|
||||||
<strong>malloc</strong>
|
<strong>malloc</strong>
|
||||||
Allocates 'size' bytes from the free list. Returns a 16-byte
|
Allocates 'size' bytes from the free list. Returns a 16-byte
|
||||||
aligned pointer, or nullptr on failure. When the free list is
|
aligned pointer, or nullptr on failure. When the free list is
|
||||||
empty, it requests more pages from the kernel via SYS_ALLOC
|
empty, it reserves more pages from the kernel. Physical pages
|
||||||
(minimum 16 KiB growth, initial seed of 64 KiB).
|
are committed as they are first touched.
|
||||||
|
|
||||||
char* buf = (char*)montauk::malloc(1024);
|
char* buf = (char*)montauk::malloc(1024);
|
||||||
|
|
||||||
|
|
||||||
<strong>mfree</strong>
|
<strong>mfree</strong>
|
||||||
Returns the block to the userspace free list. No syscall is
|
Returns the block to the userspace allocator. Arena blocks are
|
||||||
made -- the memory stays mapped and is immediately reusable.
|
immediately reusable; large direct mappings are returned to the
|
||||||
|
kernel, including their virtual address range.
|
||||||
Passing nullptr is a safe no-op.
|
Passing nullptr is a safe no-op.
|
||||||
|
|
||||||
montauk::mfree(buf);
|
montauk::mfree(buf);
|
||||||
|
|
||||||
|
|
||||||
<strong>realloc</strong>
|
<strong>realloc</strong>
|
||||||
Resizes the allocation to 'size' bytes. Allocates a new block,
|
Resizes the allocation to 'size' bytes. A block with sufficient
|
||||||
copies the smaller of old/new sizes, and frees the old block.
|
capacity is retained; otherwise a new block is allocated, the
|
||||||
|
smaller of old/new requested sizes is copied, and the old block
|
||||||
|
is freed. Integer overflow fails without changing the old block.
|
||||||
If ptr is nullptr, behaves like malloc.
|
If ptr is nullptr, behaves like malloc.
|
||||||
|
|
||||||
buf = (char*)montauk::realloc(buf, 2048);
|
buf = (char*)montauk::realloc(buf, 2048);
|
||||||
|
|
||||||
<strong>IMPLEMENTATION</strong>
|
|
||||||
The allocator uses a linked free-list with first-fit search.
|
|
||||||
Blocks larger than needed are split. The allocation header is
|
|
||||||
16 bytes (magic + size). All allocations are 16-byte aligned.
|
|
||||||
|
|
||||||
The heap grows by requesting pages from the kernel via
|
<strong>IMPLEMENTATION</strong>
|
||||||
SYS_ALLOC. These pages are never returned to the kernel (since
|
The allocator uses segregated size-class bins and a coalescing
|
||||||
SYS_FREE is currently a no-op), but mfree makes them available
|
address-ordered overflow list. Headers retain both requested size
|
||||||
for future malloc calls within the process.
|
and actual block extent. A process-wide lock serializes C and C++
|
||||||
|
allocation calls. All returned pointers are 16-byte aligned.
|
||||||
|
|
||||||
|
Allocations of 256 KiB or more use direct page mappings so they
|
||||||
|
can be released promptly. Smaller allocations use growing arenas.
|
||||||
|
|
||||||
|
|
||||||
<strong>LOW-LEVEL PAGE API</strong>
|
<strong>LOW-LEVEL PAGE API</strong>
|
||||||
For large allocations or when direct page control is needed:
|
For large allocations or when direct page control is needed:
|
||||||
|
|
||||||
void* montauk::alloc(uint64_t size); // SYS_ALLOC
|
void* montauk::alloc(uint64_t size); // SYS_ALLOC
|
||||||
void montauk::free(void* ptr); // SYS_FREE (no-op)
|
void montauk::free(void* ptr); // SYS_FREE
|
||||||
|
|
||||||
|
alloc() reserves zero-filled, read/write, non-executable pages.
|
||||||
|
Size is rounded up to 4 KiB. Freed ranges are reusable.
|
||||||
|
|
||||||
alloc() maps zeroed pages starting at 0x40000000 and growing
|
|
||||||
upward. Size is rounded up to 4 KiB page boundaries.
|
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
<strong>SEE ALSO</strong>
|
||||||
syscalls(2), file(2)</code></pre>
|
<a href="syscalls.html">syscalls(2)</a>, <a href="file.html">file(2)</a></code></pre>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+12
-5
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,9 +111,11 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
man - display manual pages
|
man - display manual pages
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong> man topic</strong>
|
<strong>man topic</strong>
|
||||||
<strong> man section topic</strong>
|
<strong>man section topic</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
The man command displays manual pages from the ramdisk in a
|
The man command displays manual pages from the ramdisk in a
|
||||||
@@ -123,9 +126,10 @@
|
|||||||
in order. If a section number is given, only that section is
|
in order. If a section number is given, only that section is
|
||||||
checked.
|
checked.
|
||||||
|
|
||||||
|
|
||||||
<strong>KEY BINDINGS</strong>
|
<strong>KEY BINDINGS</strong>
|
||||||
|
|
||||||
<strong>Navigation</strong>
|
<strong>Navigation</strong>
|
||||||
j, Down Arrow Scroll down one line
|
j, Down Arrow Scroll down one line
|
||||||
k, Up Arrow Scroll up one line
|
k, Up Arrow Scroll up one line
|
||||||
Space, Page Down Scroll down one page
|
Space, Page Down Scroll down one page
|
||||||
@@ -134,12 +138,14 @@
|
|||||||
G, End Go to bottom
|
G, End Go to bottom
|
||||||
q Quit
|
q Quit
|
||||||
|
|
||||||
|
|
||||||
<strong>SECTIONS</strong>
|
<strong>SECTIONS</strong>
|
||||||
1 User commands and programs
|
1 User commands and programs
|
||||||
2 System calls (kernel interface)
|
2 System calls (kernel interface)
|
||||||
3 Library functions (userspace libraries)
|
3 Library functions (userspace libraries)
|
||||||
7 Miscellaneous (legal, conventions)
|
7 Miscellaneous (legal, conventions)
|
||||||
|
|
||||||
|
|
||||||
<strong>FILES</strong>
|
<strong>FILES</strong>
|
||||||
Man pages are stored on the ramdisk at:
|
Man pages are stored on the ramdisk at:
|
||||||
|
|
||||||
@@ -147,15 +153,16 @@
|
|||||||
|
|
||||||
For example, man intro reads 0:/man/intro.1
|
For example, man intro reads 0:/man/intro.1
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
man intro View the introduction
|
man intro View the introduction
|
||||||
man 2 syscalls View syscall overview (section 2)
|
man 2 syscalls View syscall overview (section 2)
|
||||||
man malloc View malloc documentation
|
man malloc View malloc documentation
|
||||||
man legal View copyright information
|
man legal View copyright information
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
intro(1), shell(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="intro.html">intro(1)</a>, <a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,9 +111,11 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
nslookup - DNS hostname lookup
|
nslookup - DNS hostname lookup
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
nslookup <hostname>
|
nslookup <hostname>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
Resolves a hostname to an IPv4 address using the configured
|
Resolves a hostname to an IPv4 address using the configured
|
||||||
DNS server and prints the result.
|
DNS server and prints the result.
|
||||||
@@ -121,6 +124,7 @@
|
|||||||
configured DNS server and waits up to 5 seconds for a reply.
|
configured DNS server and waits up to 5 seconds for a reply.
|
||||||
Results are cached in an 8-entry kernel cache with TTL support.
|
Results are cached in an 8-entry kernel cache with TTL support.
|
||||||
|
|
||||||
|
|
||||||
<strong>OUTPUT</strong>
|
<strong>OUTPUT</strong>
|
||||||
Server: 10.0.68.1
|
Server: 10.0.68.1
|
||||||
Name: example.com
|
Name: example.com
|
||||||
@@ -131,18 +135,20 @@
|
|||||||
|
|
||||||
Could not resolve: badhost.invalid
|
Could not resolve: badhost.invalid
|
||||||
|
|
||||||
|
|
||||||
<strong>DNS CONFIGURATION</strong>
|
<strong>DNS CONFIGURATION</strong>
|
||||||
The DNS server address is obtained automatically via DHCP.
|
The DNS server address is obtained automatically via DHCP.
|
||||||
It can also be viewed and set with ifconfig. The default
|
It can also be viewed and set with ifconfig. The default
|
||||||
is 10.0.68.1 (QEMU user-mode networking).
|
is 10.0.68.1 (QEMU user-mode networking).
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
nslookup google.com
|
nslookup google.com
|
||||||
nslookup icanhazip.com
|
nslookup icanhazip.com
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
ping(1), fetch(1), dhcp(1), ifconfig(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="ping.html">ping(1)</a>, <a href="fetch.html">fetch(1)</a>, <a href="dhcp.html">dhcp(1)</a>, ifconfig(1), <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+7
-2
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,9 +111,11 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
ping - send ICMP echo requests
|
ping - send ICMP echo requests
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
ping <host>
|
ping <host>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
Sends 4 ICMP echo requests to the specified host and prints
|
Sends 4 ICMP echo requests to the specified host and prints
|
||||||
the round-trip time for each reply.
|
the round-trip time for each reply.
|
||||||
@@ -123,6 +126,7 @@
|
|||||||
Each request has a 3-second timeout. Requests are sent at
|
Each request has a 3-second timeout. Requests are sent at
|
||||||
1-second intervals.
|
1-second intervals.
|
||||||
|
|
||||||
|
|
||||||
<strong>OUTPUT</strong>
|
<strong>OUTPUT</strong>
|
||||||
PING example.com (93.184.216.34)
|
PING example.com (93.184.216.34)
|
||||||
Reply from 93.184.216.34: time=12ms
|
Reply from 93.184.216.34: time=12ms
|
||||||
@@ -134,6 +138,7 @@
|
|||||||
|
|
||||||
Request timed out
|
Request timed out
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
ping 10.0.68.1
|
ping 10.0.68.1
|
||||||
Ping the gateway by IP address.
|
Ping the gateway by IP address.
|
||||||
@@ -141,9 +146,9 @@
|
|||||||
ping google.com
|
ping google.com
|
||||||
Ping by hostname (requires DNS).
|
Ping by hostname (requires DNS).
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
nslookup(1), ifconfig(1), shell(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="nslookup.html">nslookup(1)</a>, ifconfig(1), <a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+22
-19
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -109,36 +110,38 @@
|
|||||||
|
|
||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
printctl - configure printers and submit print jobs
|
printctl - configure printers and submit print jobs
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong>printctl</strong>
|
<strong>printctl</strong>
|
||||||
<em>command</em>
|
<em>command</em>
|
||||||
[<em>options</em>]
|
<em>[ options ]</em>
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
<strong>printctl</strong>
|
<strong>printctl</strong>
|
||||||
manages the MontaukOS userspace print spooler and submits print jobs to IPP printers.
|
manages the MontaukOS userspace print spooler and submits print jobs to IPP printers.
|
||||||
|
|
||||||
<strong>COMMANDS</strong>
|
<strong>COMMANDS</strong>
|
||||||
|
|
||||||
<strong>set-printer <em>URI</em></strong>
|
<strong>set-printer URI</strong>
|
||||||
Store the default printer URI.
|
Store the default printer URI.
|
||||||
|
|
||||||
<strong>show-printer</strong>
|
<strong>show-printer</strong>
|
||||||
Print the configured default printer URI.
|
Print the configured default printer URI.
|
||||||
|
|
||||||
<strong>print <em>FILE</em> [--printer <em>URI</em>] [--name <em>JOB</em>] [--wait]</strong>
|
<strong>print FILE [--printer URI] [--name JOB] [--wait]</strong>
|
||||||
Queue a file for printing.
|
Queue a file for printing.
|
||||||
|
|
||||||
<strong>test-page [--printer <em>URI</em>] [--wait] [--no-wait]</strong>
|
<strong>test-page [--printer URI] [--wait] [--no-wait]</strong>
|
||||||
Generate and queue a simple test page.
|
Generate and queue a simple test page.
|
||||||
|
|
||||||
<strong>status [--verbose]</strong>
|
<strong>status [--verbose]</strong>
|
||||||
Show daemon state and queued, active, completed, and failed jobs.
|
Show daemon state and queued, active, completed, and failed jobs.
|
||||||
|
|
||||||
<strong>inspect <em>JOB-ID</em></strong>
|
<strong>inspect JOB-ID</strong>
|
||||||
Show full metadata and debug details for a queued, active, completed, or failed job.
|
Show full metadata and debug details for a queued, active, completed, or failed job.
|
||||||
|
|
||||||
<strong>probe [<em>URI</em>]</strong>
|
|
||||||
Probe the configured printer, print host and resolution details, and show IPP capability diagnostics.</code></pre>
|
|
||||||
|
|
||||||
|
<strong>probe [URI]</strong>
|
||||||
|
Probe the configured printer, print host and resolution details, and show IPP capability diagnostics.</code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -109,16 +110,17 @@
|
|||||||
|
|
||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
printd - MontaukOS userspace print spooler daemon
|
printd - MontaukOS userspace print spooler daemon
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong>printd</strong>
|
<strong>printd</strong>
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
<strong>printd</strong>
|
<strong>printd</strong>
|
||||||
monitors the print spool directories, claims queued jobs, and delivers them to IPP printers.
|
monitors the print spool directories, claims queued jobs, and delivers them to IPP printers.
|
||||||
|
|
||||||
It is normally launched automatically by
|
It is normally launched automatically by
|
||||||
<strong>init</strong>(1)
|
<strong>init (1)</strong>
|
||||||
and does not require direct user interaction.</code></pre>
|
and does not require direct user interaction.</code></pre>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -0,0 +1,166 @@
|
|||||||
|
<!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: rtlsdr(3) - userspace RTL2832U and R820T2 radio driver">
|
||||||
|
<title>rtlsdr(3) - 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>rtlsdr(3)</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<pre><code><strong>NAME</strong>
|
||||||
|
rtlsdr.lib - userspace RTL2832U and R820T2 radio driver
|
||||||
|
|
||||||
|
<strong>SYNOPSIS</strong>
|
||||||
|
|
||||||
|
#include <rtlsdr/rtlsdr.h>
|
||||||
|
|
||||||
|
|
||||||
|
<strong>DESCRIPTION</strong>
|
||||||
|
The library at
|
||||||
|
<strong>0:/os/rtlsdr.lib</strong>
|
||||||
|
drives supported Realtek RTL2832U USB receivers from userspace through the
|
||||||
|
generic process-owned USB API. Supported USB product IDs are 0bda:2832 and
|
||||||
|
0bda:2838. Samples are returned as interleaved unsigned 8-bit I/Q pairs.
|
||||||
|
|
||||||
|
Applications load the library with libloader, resolve the
|
||||||
|
<strong>rtlsdr_*</strong>
|
||||||
|
symbols declared in the header, enumerate devices, open one, configure it,
|
||||||
|
start bulk reception, read samples, stop, and close it. Claims are exclusive
|
||||||
|
and are released by the kernel if the process exits or the device disconnects.
|
||||||
|
|
||||||
|
<strong>API</strong>
|
||||||
|
<strong>rtlsdr_count</strong>
|
||||||
|
and
|
||||||
|
<strong>rtlsdr_get_device_info</strong>
|
||||||
|
enumerate compatible unbound USB interfaces.
|
||||||
|
<strong>rtlsdr_open</strong>
|
||||||
|
claims an interface and returns an opaque device pointer.
|
||||||
|
<strong>rtlsdr_set_center_freq,</strong>
|
||||||
|
<strong>rtlsdr_set_sample_rate,</strong>
|
||||||
|
<strong>rtlsdr_set_tuner_gain_mode,</strong>
|
||||||
|
<strong>rtlsdr_set_tuner_gain,</strong>
|
||||||
|
<strong>rtlsdr_set_freq_correction,</strong>
|
||||||
|
<strong>rtlsdr_set_agc_mode,</strong>
|
||||||
|
and
|
||||||
|
<strong>rtlsdr_set_direct_sampling</strong>
|
||||||
|
configure the receiver.
|
||||||
|
<strong>rtlsdr_start,</strong>
|
||||||
|
<strong>rtlsdr_read,</strong>
|
||||||
|
and
|
||||||
|
<strong>rtlsdr_stop</strong>
|
||||||
|
control non-blocking reception.
|
||||||
|
|
||||||
|
<strong>NOTES</strong>
|
||||||
|
Syscall numbers 140 through 148 are reserved former SDR slots and are not an
|
||||||
|
API. Device-specific control and tuner programming live entirely in this
|
||||||
|
library.</code></pre>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="center">
|
||||||
|
<a href="../index.html">Back to Documentation Index</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
+48
-12
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,6 +111,7 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
shell - MontaukOS interactive command shell
|
shell - MontaukOS interactive command shell
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
The MontaukOS shell is a command interpreter launched by init
|
The MontaukOS shell is a command interpreter launched by init
|
||||||
after system services have started. It provides command
|
after system services have started. It provides command
|
||||||
@@ -120,6 +122,7 @@
|
|||||||
a command is not a builtin, the shell searches for a matching
|
a command is not a builtin, the shell searches for a matching
|
||||||
ELF binary and executes it as a child process.
|
ELF binary and executes it as a child process.
|
||||||
|
|
||||||
|
|
||||||
<strong>COMMAND RESOLUTION</strong>
|
<strong>COMMAND RESOLUTION</strong>
|
||||||
When a non-builtin command is entered, the shell searches for
|
When a non-builtin command is entered, the shell searches for
|
||||||
a matching binary in the following order:
|
a matching binary in the following order:
|
||||||
@@ -143,16 +146,20 @@
|
|||||||
Arguments after the command name are passed to the spawned
|
Arguments after the command name are passed to the spawned
|
||||||
process.
|
process.
|
||||||
|
|
||||||
|
|
||||||
<strong>BUILTINS</strong>
|
<strong>BUILTINS</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>help</strong>
|
<strong>help</strong>
|
||||||
Display a categorized list of available commands.
|
Display a categorized list of available commands.
|
||||||
|
|
||||||
|
|
||||||
<strong>ls [dir]</strong>
|
<strong>ls [dir]</strong>
|
||||||
List files in the current directory, or in the specified
|
List files in the current directory, or in the specified
|
||||||
directory. Directory entries are shown with a trailing slash.
|
directory. Directory entries are shown with a trailing slash.
|
||||||
Examples: ls, ls man, ls os
|
Examples: ls, ls man, ls os
|
||||||
|
|
||||||
|
|
||||||
<strong>cd [dir]</strong>
|
<strong>cd [dir]</strong>
|
||||||
Change the working directory. With no argument, returns to the
|
Change the working directory. With no argument, returns to the
|
||||||
logged-in user's home directory (0:/users/<user>); with /,
|
logged-in user's home directory (0:/users/<user>); with /,
|
||||||
@@ -160,33 +167,42 @@
|
|||||||
The shell prompt reflects the current directory.
|
The shell prompt reflects the current directory.
|
||||||
Examples: cd os, cd .., cd
|
Examples: cd os, cd .., cd
|
||||||
|
|
||||||
|
|
||||||
<strong>pwd</strong>
|
<strong>pwd</strong>
|
||||||
Print the current working directory as an absolute path
|
Print the current working directory as an absolute path
|
||||||
(e.g. "0:/os").
|
(e.g. "0:/os").
|
||||||
|
|
||||||
|
|
||||||
<strong>echo [-n] ...</strong>
|
<strong>echo [-n] ...</strong>
|
||||||
Print the arguments. -n suppresses the trailing newline.
|
Print the arguments. -n suppresses the trailing newline.
|
||||||
|
|
||||||
|
|
||||||
<strong>set [VAR=value]</strong>
|
<strong>set [VAR=value]</strong>
|
||||||
With no argument, list all shell variables (built-in and
|
With no argument, list all shell variables (built-in and
|
||||||
user-defined). With VAR=value, set a variable. With a bare
|
user-defined). With VAR=value, set a variable. With a bare
|
||||||
name, print that variable's value.
|
name, print that variable's value.
|
||||||
|
|
||||||
|
|
||||||
<strong>unset VAR</strong>
|
<strong>unset VAR</strong>
|
||||||
Remove a user-defined shell variable.
|
Remove a user-defined shell variable.
|
||||||
|
|
||||||
|
|
||||||
<strong>true / false</strong>
|
<strong>true / false</strong>
|
||||||
Return exit status 0 / 1 without doing anything. Useful with
|
Return exit status 0 / 1 without doing anything. Useful with
|
||||||
&& and ||.
|
&& and ||.
|
||||||
|
|
||||||
|
|
||||||
<strong>N:</strong>
|
<strong>N:</strong>
|
||||||
A bare "<number>:" (e.g. "1:") switches the current drive to
|
A bare "<number>:" (e.g. "1:") switches the current drive to
|
||||||
drive N and resets the working directory to that drive's root.
|
drive N and resets the working directory to that drive's root.
|
||||||
|
|
||||||
|
|
||||||
<strong>exit</strong>
|
<strong>exit</strong>
|
||||||
Terminate the shell process (with the last command's exit code).
|
Terminate the shell process (with the last command's exit code).
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNTAX</strong>
|
<strong>SYNTAX</strong>
|
||||||
|
|
||||||
<strong>Variables</strong>
|
<strong>Variables</strong>
|
||||||
NAME=value Set a shell variable (no leading $)
|
NAME=value Set a shell variable (no leading $)
|
||||||
$VAR or ${VAR} Expand a variable's value
|
$VAR or ${VAR} Expand a variable's value
|
||||||
@@ -195,11 +211,13 @@
|
|||||||
home directory, current directory)
|
home directory, current directory)
|
||||||
\$ Escape a literal '$'
|
\$ Escape a literal '$'
|
||||||
|
|
||||||
|
|
||||||
<strong>Tilde expansion</strong>
|
<strong>Tilde expansion</strong>
|
||||||
A leading ~ expands to the session home directory
|
A leading ~ expands to the session home directory
|
||||||
(0:/users/<user>) when followed by end-of-string, '/', or a
|
(0:/users/<user>) when followed by end-of-string, '/', or a
|
||||||
space.
|
space.
|
||||||
|
|
||||||
|
|
||||||
<strong>Command chaining</strong>
|
<strong>Command chaining</strong>
|
||||||
cmd1 ; cmd2 Run cmd2 unconditionally after cmd1
|
cmd1 ; cmd2 Run cmd2 unconditionally after cmd1
|
||||||
cmd1 && cmd2 Run cmd2 only if cmd1 succeeded (exit 0)
|
cmd1 && cmd2 Run cmd2 only if cmd1 succeeded (exit 0)
|
||||||
@@ -208,25 +226,29 @@
|
|||||||
Single and double quotes protect ;, &&, and || from being
|
Single and double quotes protect ;, &&, and || from being
|
||||||
treated as separators.
|
treated as separators.
|
||||||
|
|
||||||
|
|
||||||
<strong>Comments</strong>
|
<strong>Comments</strong>
|
||||||
A '#' outside of quotes starts a comment; the rest of the line
|
A '#' outside of quotes starts a comment; the rest of the line
|
||||||
is ignored.
|
is ignored.
|
||||||
|
|
||||||
|
|
||||||
<strong>EXTERNAL COMMANDS</strong>
|
<strong>EXTERNAL COMMANDS</strong>
|
||||||
All external commands live in 0:/os/ (see COMMAND RESOLUTION).
|
All external commands live in 0:/os/ (see COMMAND RESOLUTION).
|
||||||
Where a dedicated man page exists it is noted below; run
|
Where a dedicated man page exists it is noted below; run
|
||||||
'man <command>' for details.
|
'man <command>' for details.
|
||||||
|
|
||||||
|
|
||||||
<strong>File commands</strong>
|
<strong>File commands</strong>
|
||||||
cat <file> Display file contents
|
cat <file> Display file contents
|
||||||
edit [file] Text editor -- see edit(1)
|
edit [file] Text editor -- see <a href="edit.html">edit(1)</a>
|
||||||
copy <src> <dst> Copy a file
|
copy <src> <dst> Copy a file
|
||||||
move <src> <dst> Move/rename a file
|
move <src> <dst> Move/rename a file
|
||||||
rm <file> Remove a file
|
rm <file> Remove a file
|
||||||
touch <file> Create an empty file
|
touch <file> Create an empty file
|
||||||
|
|
||||||
|
|
||||||
<strong>System commands</strong>
|
<strong>System commands</strong>
|
||||||
man <topic> View manual pages -- see man(1)
|
man <topic> View manual pages -- see <a href="man.html">man(1)</a>
|
||||||
whoami Print the current username
|
whoami Print the current username
|
||||||
info / mtkfetch Show system information
|
info / mtkfetch Show system information
|
||||||
date Show current date and time
|
date Show current date and time
|
||||||
@@ -234,30 +256,39 @@
|
|||||||
proclist List running processes
|
proclist List running processes
|
||||||
power CPU power/thermal status (power [watch [secs]])
|
power CPU power/thermal status (power [watch [secs]])
|
||||||
clear Clear the screen and framebuffer
|
clear Clear the screen and framebuffer
|
||||||
fontscale [n] Get or set terminal font scale -- see fontscale(1)
|
fontscale [n] Get or set terminal font scale -- see <a href="fontscale.html">fontscale(1)</a>
|
||||||
lua Lua interpreter
|
lua Lua interpreter
|
||||||
tcc TinyCC (in-system C compiler)
|
tcc TinyCC (in-system C compiler)
|
||||||
reset Reboot the system
|
reset / reboot Request a supervised system reboot
|
||||||
shutdown Shut down the system
|
shutdown / poweroff Request a supervised system shutdown
|
||||||
|
suspend Enter ACPI sleep
|
||||||
|
|
||||||
|
Interactive shutdown and reboot are shell builtins: they post a
|
||||||
|
capability-checked request and exit the console, allowing login.elf to
|
||||||
|
flush filesystems and perform the final power operation. They do not grant
|
||||||
|
CAP_POWER_CONTROL to the shell.
|
||||||
|
|
||||||
|
|
||||||
<strong>Network commands</strong>
|
<strong>Network commands</strong>
|
||||||
ping <host> Send ICMP echo requests -- see ping(1)
|
ping <host> Send ICMP echo requests -- see <a href="ping.html">ping(1)</a>
|
||||||
nslookup <host> DNS lookup -- see nslookup(1)
|
nslookup <host> DNS lookup -- see <a href="nslookup.html">nslookup(1)</a>
|
||||||
ifconfig Show/set network configuration
|
ifconfig Show/set network configuration
|
||||||
tcpconnect <host> <port> Interactive TCP client
|
tcpconnect <host> <port> Interactive TCP client
|
||||||
irc IRC client
|
irc IRC client
|
||||||
dhcp DHCP client -- see dhcp(1)
|
dhcp DHCP client -- see <a href="dhcp.html">dhcp(1)</a>
|
||||||
fetch <url> HTTP/HTTPS client (TLS 1.2) -- see fetch(1)
|
fetch <url> HTTP/HTTPS client (TLS 1.2) -- see <a href="fetch.html">fetch(1)</a>
|
||||||
wiki <title> Wikipedia article viewer -- see wiki(1)
|
wiki <title> Wikipedia article viewer -- see <a href="wiki.html">wiki(1)</a>
|
||||||
httpd HTTP server
|
httpd HTTP server
|
||||||
|
|
||||||
Network commands accept both IP addresses and hostnames.
|
Network commands accept both IP addresses and hostnames.
|
||||||
Hostnames are resolved via the configured DNS server.
|
Hostnames are resolved via the configured DNS server.
|
||||||
|
|
||||||
|
|
||||||
<strong>Bluetooth</strong>
|
<strong>Bluetooth</strong>
|
||||||
btlist List connected Bluetooth devices
|
btlist List connected Bluetooth devices
|
||||||
btbonds List bonded (paired) Bluetooth devices
|
btbonds List bonded (paired) Bluetooth devices
|
||||||
|
|
||||||
|
|
||||||
<strong>Software-defined radio</strong>
|
<strong>Software-defined radio</strong>
|
||||||
sdr [freqMHz [rateHz]] Receive and report basic signal
|
sdr [freqMHz [rateHz]] Receive and report basic signal
|
||||||
statistics from an attached RTL-SDR dongle
|
statistics from an attached RTL-SDR dongle
|
||||||
@@ -269,22 +300,26 @@
|
|||||||
disks, devexplorer, procmgr, powermgr, printers, timezone,
|
disks, devexplorer, procmgr, powermgr, printers, timezone,
|
||||||
weather, wikipedia. There is no 0:/games/ directory.
|
weather, wikipedia. There is no 0:/games/ directory.
|
||||||
|
|
||||||
|
|
||||||
<strong>TAB COMPLETION</strong>
|
<strong>TAB COMPLETION</strong>
|
||||||
Pressing Tab completes the word under the cursor against, in
|
Pressing Tab completes the word under the cursor against, in
|
||||||
order: executable names in 0:/os/, shell builtins, and file/
|
order: executable names in 0:/os/, shell builtins, and file/
|
||||||
directory entries in the current directory. A single match is
|
directory entries in the current directory. A single match is
|
||||||
completed inline; multiple matches are listed below the prompt.
|
completed inline; multiple matches are listed below the prompt.
|
||||||
|
|
||||||
|
|
||||||
<strong>INPUT</strong>
|
<strong>INPUT</strong>
|
||||||
The shell uses non-blocking keyboard input via SYS_GETKEY (with
|
The shell uses non-blocking keyboard input via SYS_GETKEY (with
|
||||||
SYS_INPUT_WAIT to sleep between events) to support arrow key
|
SYS_INPUT_WAIT to sleep between events) to support arrow key
|
||||||
detection. Lines are limited to 255 characters.
|
detection. Lines are limited to 255 characters.
|
||||||
|
|
||||||
|
|
||||||
<strong>Editing</strong>
|
<strong>Editing</strong>
|
||||||
Backspace Delete character before cursor
|
Backspace Delete character before cursor
|
||||||
Tab Tab-complete the current word
|
Tab Tab-complete the current word
|
||||||
Enter Execute the command line
|
Enter Execute the command line
|
||||||
|
|
||||||
|
|
||||||
<strong>History</strong>
|
<strong>History</strong>
|
||||||
The shell stores the last 32 unique commands. Duplicate
|
The shell stores the last 32 unique commands. Duplicate
|
||||||
consecutive entries are suppressed.
|
consecutive entries are suppressed.
|
||||||
@@ -292,6 +327,7 @@
|
|||||||
Up Arrow Recall previous command
|
Up Arrow Recall previous command
|
||||||
Down Arrow Recall next command (or clear line)
|
Down Arrow Recall next command (or clear line)
|
||||||
|
|
||||||
|
|
||||||
<strong>PROMPT</strong>
|
<strong>PROMPT</strong>
|
||||||
The prompt displays the current drive and working directory:
|
The prompt displays the current drive and working directory:
|
||||||
|
|
||||||
@@ -299,9 +335,9 @@
|
|||||||
0:/os> _ (in os/ directory)
|
0:/os> _ (in os/ directory)
|
||||||
1:/> _ (at root of drive 1)
|
1:/> _ (at root of drive 1)
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
man(1), intro(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="man.html">man(1)</a>, <a href="intro.html">intro(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
+17
-5
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,13 +111,16 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
spawn, waitpid - create and wait for processes
|
spawn, waitpid - create and wait for processes
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
<strong> int montauk::spawn(const char* path, const char* args = nullptr);</strong>
|
<strong>int montauk::spawn(const char* path, const char* args = nullptr);</strong>
|
||||||
<strong> void montauk::waitpid(int pid);</strong>
|
<strong>void montauk::waitpid(int pid);</strong>
|
||||||
<strong> int montauk::getargs(char* buf, uint64_t maxLen);</strong>
|
<strong>int montauk::getargs(char* buf, uint64_t maxLen);</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>spawn</strong>
|
<strong>spawn</strong>
|
||||||
Loads the ELF64 binary at the given VFS path and creates a new
|
Loads the ELF64 binary at the given VFS path and creates a new
|
||||||
process. The path must include the drive prefix, for example:
|
process. The path must include the drive prefix, for example:
|
||||||
@@ -135,6 +139,7 @@
|
|||||||
Failure occurs when there are no free process slots (max 256),
|
Failure occurs when there are no free process slots (max 256),
|
||||||
the file cannot be found, or the ELF is invalid.
|
the file cannot be found, or the ELF is invalid.
|
||||||
|
|
||||||
|
|
||||||
<strong>waitpid</strong>
|
<strong>waitpid</strong>
|
||||||
Blocks the calling process until the process with the given PID
|
Blocks the calling process until the process with the given PID
|
||||||
has exited. Internally, this yields the CPU in a loop:
|
has exited. Internally, this yields the CPU in a loop:
|
||||||
@@ -145,6 +150,7 @@
|
|||||||
it spawns a child and waits for it to complete before showing
|
it spawns a child and waits for it to complete before showing
|
||||||
the next prompt.
|
the next prompt.
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
Spawn a program and wait for it:
|
Spawn a program and wait for it:
|
||||||
|
|
||||||
@@ -156,6 +162,7 @@
|
|||||||
montauk::print("child exited\n");
|
montauk::print("child exited\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
<strong>getargs</strong>
|
<strong>getargs</strong>
|
||||||
Copies the argument string into buf (up to maxLen bytes, always
|
Copies the argument string into buf (up to maxLen bytes, always
|
||||||
null-terminated). Returns the number of characters copied, or
|
null-terminated). Returns the number of characters copied, or
|
||||||
@@ -167,15 +174,20 @@
|
|||||||
The argument string is set by the parent when calling spawn().
|
The argument string is set by the parent when calling spawn().
|
||||||
If no arguments were provided, the buffer will be empty.
|
If no arguments were provided, the buffer will be empty.
|
||||||
|
|
||||||
|
A spawned child inherits a snapshot of its parent's environment. Libc
|
||||||
|
exposes it through getenv(), setenv(), and environ. posix_spawn() can
|
||||||
|
instead provide an explicit envp for the child.
|
||||||
|
|
||||||
|
|
||||||
<strong>NOTES</strong>
|
<strong>NOTES</strong>
|
||||||
The _start() entry point receives no argc/argv. Use getargs()
|
The _start() entry point receives no argc/argv. Use getargs()
|
||||||
to retrieve the argument string passed by the parent process.
|
to retrieve the argument string passed by the parent process.
|
||||||
|
|
||||||
Process exit codes are not yet collected by waitpid.
|
Process exit codes are not yet collected by waitpid.
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
syscalls(2), file(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="syscalls.html">syscalls(2)</a>, <a href="file.html">file(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -0,0 +1,191 @@
|
|||||||
|
<!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: sshd(1) - MontaukOS SSH-2 server">
|
||||||
|
<title>sshd(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>sshd(1)</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<pre><code><strong>NAME</strong>
|
||||||
|
sshd - MontaukOS SSH-2 server
|
||||||
|
|
||||||
|
<strong>SYNOPSIS</strong>
|
||||||
|
<strong>sshd</strong>
|
||||||
|
|
||||||
|
<strong>DESCRIPTION</strong>
|
||||||
|
<strong>sshd</strong>
|
||||||
|
accepts SSH-2 connections and gives each authenticated user a MontaukOS shell.
|
||||||
|
|
||||||
|
It is normally launched automatically by
|
||||||
|
<strong>init (1)</strong>
|
||||||
|
and does not require direct user interaction. Remote access is disabled by
|
||||||
|
default; enable it from Settings > SSH Server, which sets
|
||||||
|
<em>services.ssh.enabled</em>
|
||||||
|
in
|
||||||
|
<em>0:/config/init.toml .</em>
|
||||||
|
The change takes effect on the next boot.
|
||||||
|
|
||||||
|
<strong>AUTHENTICATION</strong>
|
||||||
|
Passwords are the only supported method, checked against the MontaukOS account
|
||||||
|
database. A user must additionally be listed in the
|
||||||
|
<em>[allow]</em>
|
||||||
|
table of
|
||||||
|
<em>0:/config/ssh.toml</em>
|
||||||
|
before a login is accepted; users absent from that table are refused. The
|
||||||
|
Settings applet maintains this table.
|
||||||
|
|
||||||
|
Failed passwords are delayed, and a connection is dropped after eight attempts.
|
||||||
|
|
||||||
|
<strong>CONFIGURATION</strong>
|
||||||
|
|
||||||
|
<em>0:/config/ssh.toml</em>
|
||||||
|
Listening port
|
||||||
|
<em>( server.port ,</em>
|
||||||
|
default 22) and the per-user
|
||||||
|
<em>[allow]</em>
|
||||||
|
table.
|
||||||
|
|
||||||
|
<em>0:/config/ssh_hostkey.toml</em>
|
||||||
|
The RSA host key, generated on first start. Note that the filesystem has no
|
||||||
|
permission model, so this file is readable by any local process; keeping it
|
||||||
|
separate from
|
||||||
|
<em>ssh.toml</em>
|
||||||
|
limits exposure but is not access control.
|
||||||
|
|
||||||
|
<strong>DIAGNOSTICS</strong>
|
||||||
|
Messages go to the boot console only. They do not appear in
|
||||||
|
<strong>klog (1):</strong>
|
||||||
|
<strong>SYS_PRINT</strong>
|
||||||
|
writes the kernel terminal rather than the kernel log ring, and is discarded
|
||||||
|
entirely once the desktop suppresses console output. There is currently nowhere
|
||||||
|
to read them from on a running desktop.
|
||||||
|
|
||||||
|
<strong>PROTOCOL</strong>
|
||||||
|
Key exchange is diffie-hellman-group14-sha256 with an rsa-sha2-256 host key;
|
||||||
|
the transport uses aes128-ctr with hmac-sha2-256. Client-initiated rekeying is
|
||||||
|
supported. Only one session channel per connection is served, and connections
|
||||||
|
are handled one at a time.
|
||||||
|
|
||||||
|
<strong>LIMITATIONS</strong>
|
||||||
|
Public key authentication, port forwarding, X11 forwarding, SFTP and SCP are not
|
||||||
|
implemented.
|
||||||
|
|
||||||
|
<em>exec</em>
|
||||||
|
requests run the command by feeding it to an interactive shell, so the shell
|
||||||
|
prompt and the echoed command line appear in the output. Scripts that parse
|
||||||
|
remote command output should account for this.
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<strong>shell (1),</strong>
|
||||||
|
<strong>init (1)</strong></code></pre>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="center">
|
||||||
|
<a href="../index.html">Back to Documentation Index</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
+539
-244
File diff suppressed because it is too large.
Load diff
+67
-62
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,209 +111,213 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
tls-errors - BearSSL TLS and X.509 error codes
|
tls-errors - BearSSL TLS and X.509 error codes
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
MontaukOS uses BearSSL for TLS 1.2 connections. When a TLS
|
MontaukOS uses BearSSL for TLS 1.2 connections. When a TLS
|
||||||
operation fails, an integer error code is reported. This page
|
operation fails, an integer error code is reported. This page
|
||||||
lists all possible error codes.
|
lists all possible error codes.
|
||||||
|
|
||||||
|
|
||||||
<strong>SSL/TLS ENGINE ERRORS</strong>
|
<strong>SSL/TLS ENGINE ERRORS</strong>
|
||||||
|
|
||||||
<strong>0 BR_ERR_OK</strong>
|
<strong>0 BR_ERR_OK</strong>
|
||||||
No error.
|
No error.
|
||||||
|
|
||||||
<strong>1 BR_ERR_BAD_PARAM</strong>
|
<strong>1 BR_ERR_BAD_PARAM</strong>
|
||||||
Caller-provided parameter is incorrect.
|
Caller-provided parameter is incorrect.
|
||||||
|
|
||||||
<strong>2 BR_ERR_BAD_STATE</strong>
|
<strong>2 BR_ERR_BAD_STATE</strong>
|
||||||
Operation cannot be applied in the current engine state.
|
Operation cannot be applied in the current engine state.
|
||||||
|
|
||||||
<strong>3 BR_ERR_UNSUPPORTED_VERSION</strong>
|
<strong>3 BR_ERR_UNSUPPORTED_VERSION</strong>
|
||||||
Incoming protocol or record version is unsupported.
|
Incoming protocol or record version is unsupported.
|
||||||
|
|
||||||
<strong>4 BR_ERR_BAD_VERSION</strong>
|
<strong>4 BR_ERR_BAD_VERSION</strong>
|
||||||
Incoming record version does not match the expected version.
|
Incoming record version does not match the expected version.
|
||||||
|
|
||||||
<strong>5 BR_ERR_BAD_LENGTH</strong>
|
<strong>5 BR_ERR_BAD_LENGTH</strong>
|
||||||
Incoming record length is invalid.
|
Incoming record length is invalid.
|
||||||
|
|
||||||
<strong>6 BR_ERR_TOO_LARGE</strong>
|
<strong>6 BR_ERR_TOO_LARGE</strong>
|
||||||
Incoming record is too large, or buffer is too small for the
|
Incoming record is too large, or buffer is too small for the
|
||||||
handshake message to send.
|
handshake message to send.
|
||||||
|
|
||||||
<strong>7 BR_ERR_BAD_MAC</strong>
|
<strong>7 BR_ERR_BAD_MAC</strong>
|
||||||
Decryption found invalid padding, or the record MAC is
|
Decryption found invalid padding, or the record MAC is
|
||||||
not correct.
|
not correct.
|
||||||
|
|
||||||
<strong>8 BR_ERR_NO_RANDOM</strong>
|
<strong>8 BR_ERR_NO_RANDOM</strong>
|
||||||
No initial entropy was provided and none could be obtained
|
No initial entropy was provided and none could be obtained
|
||||||
from the OS.
|
from the OS.
|
||||||
|
|
||||||
<strong>9 BR_ERR_UNKNOWN_TYPE</strong>
|
<strong>9 BR_ERR_UNKNOWN_TYPE</strong>
|
||||||
Incoming record type is unknown.
|
Incoming record type is unknown.
|
||||||
|
|
||||||
<strong>10 BR_ERR_UNEXPECTED</strong>
|
<strong>10 BR_ERR_UNEXPECTED</strong>
|
||||||
Incoming record or message has wrong type for the current
|
Incoming record or message has wrong type for the current
|
||||||
engine state.
|
engine state.
|
||||||
|
|
||||||
<strong>12 BR_ERR_BAD_CCS</strong>
|
<strong>12 BR_ERR_BAD_CCS</strong>
|
||||||
ChangeCipherSpec message from the peer has invalid contents.
|
ChangeCipherSpec message from the peer has invalid contents.
|
||||||
|
|
||||||
<strong>13 BR_ERR_BAD_ALERT</strong>
|
<strong>13 BR_ERR_BAD_ALERT</strong>
|
||||||
Alert message from the peer has invalid contents (odd length).
|
Alert message from the peer has invalid contents (odd length).
|
||||||
|
|
||||||
<strong>14 BR_ERR_BAD_HANDSHAKE</strong>
|
<strong>14 BR_ERR_BAD_HANDSHAKE</strong>
|
||||||
Incoming handshake message decoding failed.
|
Incoming handshake message decoding failed.
|
||||||
|
|
||||||
<strong>15 BR_ERR_OVERSIZED_ID</strong>
|
<strong>15 BR_ERR_OVERSIZED_ID</strong>
|
||||||
ServerHello contains a session ID larger than 32 bytes.
|
ServerHello contains a session ID larger than 32 bytes.
|
||||||
|
|
||||||
<strong>16 BR_ERR_BAD_CIPHER_SUITE</strong>
|
<strong>16 BR_ERR_BAD_CIPHER_SUITE</strong>
|
||||||
Server wants to use a cipher suite that we did not advertise,
|
Server wants to use a cipher suite that we did not advertise,
|
||||||
or we tried to advertise a cipher suite that we do not support.
|
or we tried to advertise a cipher suite that we do not support.
|
||||||
|
|
||||||
<strong>17 BR_ERR_BAD_COMPRESSION</strong>
|
<strong>17 BR_ERR_BAD_COMPRESSION</strong>
|
||||||
Server wants to use a compression method that we did not
|
Server wants to use a compression method that we did not
|
||||||
advertise.
|
advertise.
|
||||||
|
|
||||||
<strong>18 BR_ERR_BAD_FRAGLEN</strong>
|
<strong>18 BR_ERR_BAD_FRAGLEN</strong>
|
||||||
Server's max fragment length does not match client's.
|
Server's max fragment length does not match client's.
|
||||||
|
|
||||||
<strong>19 BR_ERR_BAD_SECRENEG</strong>
|
<strong>19 BR_ERR_BAD_SECRENEG</strong>
|
||||||
Secure renegotiation failed.
|
Secure renegotiation failed.
|
||||||
|
|
||||||
<strong>20 BR_ERR_EXTRA_EXTENSION</strong>
|
<strong>20 BR_ERR_EXTRA_EXTENSION</strong>
|
||||||
Server sent an extension type that we did not announce, or
|
Server sent an extension type that we did not announce, or
|
||||||
used the same extension type more than once in ServerHello.
|
used the same extension type more than once in ServerHello.
|
||||||
|
|
||||||
<strong>21 BR_ERR_BAD_SNI</strong>
|
<strong>21 BR_ERR_BAD_SNI</strong>
|
||||||
Invalid Server Name Indication contents (when used by the
|
Invalid Server Name Indication contents (when used by the
|
||||||
server, this extension shall be empty).
|
server, this extension shall be empty).
|
||||||
|
|
||||||
<strong>22 BR_ERR_BAD_HELLO_DONE</strong>
|
<strong>22 BR_ERR_BAD_HELLO_DONE</strong>
|
||||||
Invalid ServerHelloDone from the server (length is not 0).
|
Invalid ServerHelloDone from the server (length is not 0).
|
||||||
|
|
||||||
<strong>23 BR_ERR_LIMIT_EXCEEDED</strong>
|
<strong>23 BR_ERR_LIMIT_EXCEEDED</strong>
|
||||||
Internal limit exceeded (e.g. server's public key is too
|
Internal limit exceeded (e.g. server's public key is too
|
||||||
large).
|
large).
|
||||||
|
|
||||||
<strong>24 BR_ERR_BAD_FINISHED</strong>
|
<strong>24 BR_ERR_BAD_FINISHED</strong>
|
||||||
Finished message from peer does not match the expected value.
|
Finished message from peer does not match the expected value.
|
||||||
|
|
||||||
<strong>25 BR_ERR_RESUME_MISMATCH</strong>
|
<strong>25 BR_ERR_RESUME_MISMATCH</strong>
|
||||||
Session resumption attempted with a different version or
|
Session resumption attempted with a different version or
|
||||||
cipher suite.
|
cipher suite.
|
||||||
|
|
||||||
<strong>26 BR_ERR_INVALID_ALGORITHM</strong>
|
<strong>26 BR_ERR_INVALID_ALGORITHM</strong>
|
||||||
Unsupported or invalid algorithm (ECDHE curve, signature
|
Unsupported or invalid algorithm (ECDHE curve, signature
|
||||||
algorithm, hash function).
|
algorithm, hash function).
|
||||||
|
|
||||||
<strong>27 BR_ERR_BAD_SIGNATURE</strong>
|
<strong>27 BR_ERR_BAD_SIGNATURE</strong>
|
||||||
Invalid signature on ServerKeyExchange or CertificateVerify.
|
Invalid signature on ServerKeyExchange or CertificateVerify.
|
||||||
|
|
||||||
<strong>28 BR_ERR_WRONG_KEY_USAGE</strong>
|
<strong>28 BR_ERR_WRONG_KEY_USAGE</strong>
|
||||||
Peer's public key does not have the proper type or is not
|
Peer's public key does not have the proper type or is not
|
||||||
allowed for the requested operation.
|
allowed for the requested operation.
|
||||||
|
|
||||||
<strong>29 BR_ERR_NO_CLIENT_AUTH</strong>
|
<strong>29 BR_ERR_NO_CLIENT_AUTH</strong>
|
||||||
Client did not send a certificate upon request, or the client
|
Client did not send a certificate upon request, or the client
|
||||||
certificate could not be validated.
|
certificate could not be validated.
|
||||||
|
|
||||||
<strong>31 BR_ERR_IO</strong>
|
<strong>31 BR_ERR_IO</strong>
|
||||||
I/O error or premature close on the underlying transport.
|
I/O error or premature close on the underlying transport.
|
||||||
|
|
||||||
|
|
||||||
<strong>X.509 CERTIFICATE ERRORS</strong>
|
<strong>X.509 CERTIFICATE ERRORS</strong>
|
||||||
|
|
||||||
<strong>32 BR_ERR_X509_OK</strong>
|
<strong>32 BR_ERR_X509_OK</strong>
|
||||||
X.509 validation was successful (not an error).
|
X.509 validation was successful (not an error).
|
||||||
|
|
||||||
<strong>33 BR_ERR_X509_INVALID_VALUE</strong>
|
<strong>33 BR_ERR_X509_INVALID_VALUE</strong>
|
||||||
Invalid value in an ASN.1 structure.
|
Invalid value in an ASN.1 structure.
|
||||||
|
|
||||||
<strong>34 BR_ERR_X509_TRUNCATED</strong>
|
<strong>34 BR_ERR_X509_TRUNCATED</strong>
|
||||||
Truncated certificate.
|
Truncated certificate.
|
||||||
|
|
||||||
<strong>35 BR_ERR_X509_EMPTY_CHAIN</strong>
|
<strong>35 BR_ERR_X509_EMPTY_CHAIN</strong>
|
||||||
Empty certificate chain (no certificate at all).
|
Empty certificate chain (no certificate at all).
|
||||||
|
|
||||||
<strong>36 BR_ERR_X509_INNER_TRUNC</strong>
|
<strong>36 BR_ERR_X509_INNER_TRUNC</strong>
|
||||||
Inner element extends beyond outer element size.
|
Inner element extends beyond outer element size.
|
||||||
|
|
||||||
<strong>37 BR_ERR_X509_BAD_TAG_CLASS</strong>
|
<strong>37 BR_ERR_X509_BAD_TAG_CLASS</strong>
|
||||||
Unsupported tag class (application or private).
|
Unsupported tag class (application or private).
|
||||||
|
|
||||||
<strong>38 BR_ERR_X509_BAD_TAG_VALUE</strong>
|
<strong>38 BR_ERR_X509_BAD_TAG_VALUE</strong>
|
||||||
Unsupported tag value.
|
Unsupported tag value.
|
||||||
|
|
||||||
<strong>39 BR_ERR_X509_INDEFINITE_LENGTH</strong>
|
<strong>39 BR_ERR_X509_INDEFINITE_LENGTH</strong>
|
||||||
Indefinite length encoding found.
|
Indefinite length encoding found.
|
||||||
|
|
||||||
<strong>40 BR_ERR_X509_EXTRA_ELEMENT</strong>
|
<strong>40 BR_ERR_X509_EXTRA_ELEMENT</strong>
|
||||||
Extraneous element in certificate.
|
Extraneous element in certificate.
|
||||||
|
|
||||||
<strong>41 BR_ERR_X509_UNEXPECTED</strong>
|
<strong>41 BR_ERR_X509_UNEXPECTED</strong>
|
||||||
Unexpected element in certificate.
|
Unexpected element in certificate.
|
||||||
|
|
||||||
<strong>42 BR_ERR_X509_NOT_CONSTRUCTED</strong>
|
<strong>42 BR_ERR_X509_NOT_CONSTRUCTED</strong>
|
||||||
Expected constructed element, but found primitive.
|
Expected constructed element, but found primitive.
|
||||||
|
|
||||||
<strong>43 BR_ERR_X509_NOT_PRIMITIVE</strong>
|
<strong>43 BR_ERR_X509_NOT_PRIMITIVE</strong>
|
||||||
Expected primitive element, but found constructed.
|
Expected primitive element, but found constructed.
|
||||||
|
|
||||||
<strong>44 BR_ERR_X509_PARTIAL_BYTE</strong>
|
<strong>44 BR_ERR_X509_PARTIAL_BYTE</strong>
|
||||||
BIT STRING length is not a multiple of 8.
|
BIT STRING length is not a multiple of 8.
|
||||||
|
|
||||||
<strong>45 BR_ERR_X509_BAD_BOOLEAN</strong>
|
<strong>45 BR_ERR_X509_BAD_BOOLEAN</strong>
|
||||||
BOOLEAN value has invalid length.
|
BOOLEAN value has invalid length.
|
||||||
|
|
||||||
<strong>46 BR_ERR_X509_OVERFLOW</strong>
|
<strong>46 BR_ERR_X509_OVERFLOW</strong>
|
||||||
Value is off-limits (overflow).
|
Value is off-limits (overflow).
|
||||||
|
|
||||||
<strong>47 BR_ERR_X509_BAD_DN</strong>
|
<strong>47 BR_ERR_X509_BAD_DN</strong>
|
||||||
Invalid distinguished name.
|
Invalid distinguished name.
|
||||||
|
|
||||||
<strong>48 BR_ERR_X509_BAD_TIME</strong>
|
<strong>48 BR_ERR_X509_BAD_TIME</strong>
|
||||||
Invalid date/time representation in certificate.
|
Invalid date/time representation in certificate.
|
||||||
|
|
||||||
<strong>49 BR_ERR_X509_UNSUPPORTED</strong>
|
<strong>49 BR_ERR_X509_UNSUPPORTED</strong>
|
||||||
Certificate contains unsupported features that cannot be
|
Certificate contains unsupported features that cannot be
|
||||||
ignored.
|
ignored.
|
||||||
|
|
||||||
<strong>50 BR_ERR_X509_LIMIT_EXCEEDED</strong>
|
<strong>50 BR_ERR_X509_LIMIT_EXCEEDED</strong>
|
||||||
Key or signature size exceeds internal limits.
|
Key or signature size exceeds internal limits.
|
||||||
|
|
||||||
<strong>51 BR_ERR_X509_WRONG_KEY_TYPE</strong>
|
<strong>51 BR_ERR_X509_WRONG_KEY_TYPE</strong>
|
||||||
Key type does not match that which was expected.
|
Key type does not match that which was expected.
|
||||||
|
|
||||||
<strong>52 BR_ERR_X509_BAD_SIGNATURE</strong>
|
<strong>52 BR_ERR_X509_BAD_SIGNATURE</strong>
|
||||||
Signature is invalid.
|
Signature is invalid.
|
||||||
|
|
||||||
<strong>53 BR_ERR_X509_TIME_UNKNOWN</strong>
|
<strong>53 BR_ERR_X509_TIME_UNKNOWN</strong>
|
||||||
Validation time is unknown (no time was set).
|
Validation time is unknown (no time was set).
|
||||||
|
|
||||||
<strong>54 BR_ERR_X509_EXPIRED</strong>
|
<strong>54 BR_ERR_X509_EXPIRED</strong>
|
||||||
Certificate is expired or not yet valid.
|
Certificate is expired or not yet valid.
|
||||||
|
|
||||||
<strong>55 BR_ERR_X509_DN_MISMATCH</strong>
|
<strong>55 BR_ERR_X509_DN_MISMATCH</strong>
|
||||||
Issuer/subject DN mismatch in the chain.
|
Issuer/subject DN mismatch in the chain.
|
||||||
|
|
||||||
<strong>56 BR_ERR_X509_BAD_SERVER_NAME</strong>
|
<strong>56 BR_ERR_X509_BAD_SERVER_NAME</strong>
|
||||||
Expected server name was not found in the chain.
|
Expected server name was not found in the chain.
|
||||||
|
|
||||||
<strong>57 BR_ERR_X509_CRITICAL_EXTENSION</strong>
|
<strong>57 BR_ERR_X509_CRITICAL_EXTENSION</strong>
|
||||||
Unknown critical extension in certificate.
|
Unknown critical extension in certificate.
|
||||||
|
|
||||||
<strong>58 BR_ERR_X509_NOT_CA</strong>
|
<strong>58 BR_ERR_X509_NOT_CA</strong>
|
||||||
Not a CA, or path length constraint violation.
|
Not a CA, or path length constraint violation.
|
||||||
|
|
||||||
<strong>59 BR_ERR_X509_FORBIDDEN_KEY_USAGE</strong>
|
<strong>59 BR_ERR_X509_FORBIDDEN_KEY_USAGE</strong>
|
||||||
Key Usage extension prohibits the intended usage.
|
Key Usage extension prohibits the intended usage.
|
||||||
|
|
||||||
<strong>60 BR_ERR_X509_WEAK_PUBLIC_KEY</strong>
|
<strong>60 BR_ERR_X509_WEAK_PUBLIC_KEY</strong>
|
||||||
Public key found in certificate is too small.
|
Public key found in certificate is too small.
|
||||||
|
|
||||||
<strong>62 BR_ERR_X509_NOT_TRUSTED</strong>
|
<strong>62 BR_ERR_X509_NOT_TRUSTED</strong>
|
||||||
Chain could not be linked to a trust anchor.
|
Chain could not be linked to a trust anchor.
|
||||||
|
|
||||||
|
|
||||||
<strong>FATAL ALERTS</strong>
|
<strong>FATAL ALERTS</strong>
|
||||||
When a fatal alert is received from the peer, the error code
|
When a fatal alert is received from the peer, the error code
|
||||||
is 256 + the TLS alert value. When a fatal alert is sent to
|
is 256 + the TLS alert value. When a fatal alert is sent to
|
||||||
@@ -341,9 +346,9 @@
|
|||||||
For example, error 296 means a handshake_failure alert was
|
For example, error 296 means a handshake_failure alert was
|
||||||
received (256 + 40 = 296).
|
received (256 + 40 = 296).
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
fetch(1), syscalls(2)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="fetch.html">fetch(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -0,0 +1,157 @@
|
|||||||
|
<!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: vol(1) - list mounted volumes">
|
||||||
|
<title>vol(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>vol(1)</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<pre><code><strong>NAME</strong>
|
||||||
|
vol - list mounted volumes
|
||||||
|
|
||||||
|
|
||||||
|
<strong>SYNOPSIS</strong>
|
||||||
|
vol
|
||||||
|
|
||||||
|
|
||||||
|
<strong>DESCRIPTION</strong>
|
||||||
|
Prints information about volumes present on the system.
|
||||||
|
|
||||||
|
Drive numbers (column "Vol") represent volumes rather than physical disk devices.
|
||||||
|
|
||||||
|
The boot ramdisk, if present, reports "-" for its size, disk, and partition.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>OUTPUT</strong>
|
||||||
|
Vol Type Label Size Disk Part Partition
|
||||||
|
0:/ ramdisk MontaukOS - - - -
|
||||||
|
1:/ ext2 Montauk 118.4 GiB 0 0 Montauk
|
||||||
|
2:/ FAT32 EFI 512.0 MiB 0 1 EFI System
|
||||||
|
|
||||||
|
Disks:
|
||||||
|
0 NVMe Samsung SSD 990 PRO 1TB
|
||||||
|
|
||||||
|
|
||||||
|
<strong>COLUMNS</strong>
|
||||||
|
Vol Drive number, as written in paths ("1:/file.txt").
|
||||||
|
Type Filesystem type (ext2, FAT32, ramdisk).
|
||||||
|
Label Filesystem volume label, or "-" if unset.
|
||||||
|
Size Partition size, binary prefixes.
|
||||||
|
Disk Block device index (see disk legend below the table).
|
||||||
|
Part Partition index on that disk.
|
||||||
|
Partition GPT partition name, or "-" if unset.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
disks(1), <a href="shell.html">shell(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="center">
|
||||||
|
<a href="../index.html">Back to Documentation Index</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,230 @@
|
|||||||
|
<!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: wifi(1) - scan for wireless networks and inspect the Wi-Fi adapter">
|
||||||
|
<title>wifi(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>wifi(1)</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<pre><code><strong>NAME</strong>
|
||||||
|
wifi - scan for wireless networks and inspect the Wi-Fi adapter
|
||||||
|
|
||||||
|
|
||||||
|
<strong>SYNOPSIS</strong>
|
||||||
|
wifi [scan [seconds]]
|
||||||
|
wifi info
|
||||||
|
wifi debug
|
||||||
|
wifi connect <ssid> [passphrase]
|
||||||
|
wifi status
|
||||||
|
wifi disconnect
|
||||||
|
wifi saved
|
||||||
|
wifi forget <ssid>
|
||||||
|
|
||||||
|
|
||||||
|
<strong>DESCRIPTION</strong>
|
||||||
|
Drives the Intel Wi-Fi adapter. With no arguments, runs a five
|
||||||
|
second scan and lists the networks found, strongest signal first.
|
||||||
|
|
||||||
|
The driver supports Intel AX210-family devices whose RF type is
|
||||||
|
GF (marketed as AX211), which is what the bundled firmware image
|
||||||
|
covers. Other Intel wireless parts are left unclaimed.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>COMMANDS</strong>
|
||||||
|
scan [seconds]
|
||||||
|
Sweep every regulatory-permitted channel and report the
|
||||||
|
networks seen. The duration is clamped to 1-20 seconds and
|
||||||
|
defaults to 5.
|
||||||
|
|
||||||
|
info
|
||||||
|
Adapter status: MAC address, firmware version, supported
|
||||||
|
bands, usable channel count and whether a scan is running.
|
||||||
|
|
||||||
|
debug
|
||||||
|
Everything info prints, plus RX/error counters, a scan with
|
||||||
|
per-BSS detail (BSSID, channel, RSSI, security) and band and
|
||||||
|
security tallies. Use this when a scan finds nothing.
|
||||||
|
|
||||||
|
connect <ssid> [passphrase]
|
||||||
|
Joins a network from the last scan: open, or WPA2/WPA3-PSK
|
||||||
|
with CCMP or GCMP. Blocks until the link is up or the attempt
|
||||||
|
fails, and says which it was. A passphrase given here is
|
||||||
|
remembered in 0:/config/wifi.toml; given only an SSID, the
|
||||||
|
remembered one is used. Run <a href="dhcp.html">dhcp(1)</a> afterwards for an address.
|
||||||
|
|
||||||
|
status
|
||||||
|
The network currently joined, with signal and cipher.
|
||||||
|
|
||||||
|
disconnect
|
||||||
|
Leaves the network and tears the firmware contexts down.
|
||||||
|
|
||||||
|
saved
|
||||||
|
Lists the networks in 0:/config/wifi.toml and whether the
|
||||||
|
desktop rejoins them by itself at startup.
|
||||||
|
|
||||||
|
forget <ssid>
|
||||||
|
Removes a network from 0:/config/wifi.toml.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>OUTPUT</strong>
|
||||||
|
SSID SIGNAL RSSI CH BAND SECURITY
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
homenet [####] -42 6 2.4GHz WPA2
|
||||||
|
homenet-5g [###.] -61 44 5GHz WPA3
|
||||||
|
guest [##..] -74 11 2.4GHz open
|
||||||
|
|
||||||
|
|
||||||
|
<strong>FIRMWARE</strong>
|
||||||
|
The adapter needs firmware from the ramdisk:
|
||||||
|
|
||||||
|
0:/os/firmware/intel/iwlwifi-so-a0-gf-a0-<api>.ucode
|
||||||
|
0:/os/firmware/intel/iwlwifi-so-a0-gf-a0.pnvm
|
||||||
|
|
||||||
|
Loading happens shortly after boot, off the boot-critical path,
|
||||||
|
so "wifi info" may briefly report "detected (firmware not loaded
|
||||||
|
yet)". The PNVM file carries regulatory data; without it the
|
||||||
|
firmware falls back to conservative built-in limits.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>SAVED NETWORKS</strong>
|
||||||
|
0:/config/wifi.toml holds the networks the system may rejoin
|
||||||
|
without being asked, as [network.<n>] tables of ssid and psk, and
|
||||||
|
a wifi.autoconnect flag. The desktop writes it when "Remember this
|
||||||
|
network" is ticked, and reads it after the automatic scan it runs
|
||||||
|
at startup. Passphrases are stored as typed; anyone who can read
|
||||||
|
0:/config can read them.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>GRAPHICAL USE</strong>
|
||||||
|
The desktop panel carries a Wi-Fi icon whenever a supported
|
||||||
|
adapter is present, separate from the Ethernet one. Its menu lists
|
||||||
|
the networks in range, asks for a passphrase when one is needed,
|
||||||
|
and shows the address once the link is up. The Network app has the
|
||||||
|
same list under its Wi-Fi tab, along with Forget.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>DIAGNOSTICS</strong>
|
||||||
|
no supported Wi-Fi adapter found
|
||||||
|
No matching device, or its RF type is not GF.
|
||||||
|
|
||||||
|
radio disabled (RF-kill)
|
||||||
|
The hardware kill switch is off. No scanning is possible.
|
||||||
|
|
||||||
|
error
|
||||||
|
Firmware load or configuration failed; klog(1) has the
|
||||||
|
detail under the WiFi and WiFi-FW tags.
|
||||||
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
ifconfig(1), klog(1), <a href="dhcp.html">dhcp(1)</a>, <a href="syscalls.html">syscalls(2)</a></code></pre>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="center">
|
||||||
|
<a href="../index.html">Back to Documentation Index</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
+14
-4
@@ -90,6 +90,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
@@ -110,11 +111,13 @@
|
|||||||
<pre><code><strong>NAME</strong>
|
<pre><code><strong>NAME</strong>
|
||||||
wiki - Wikipedia article viewer for MontaukOS
|
wiki - Wikipedia article viewer for MontaukOS
|
||||||
|
|
||||||
|
|
||||||
<strong>SYNOPSIS</strong>
|
<strong>SYNOPSIS</strong>
|
||||||
wiki <title>
|
wiki <title>
|
||||||
wiki -f <title>
|
wiki -f <title>
|
||||||
wiki -s <query>
|
wiki -s <query>
|
||||||
|
|
||||||
|
|
||||||
<strong>DESCRIPTION</strong>
|
<strong>DESCRIPTION</strong>
|
||||||
wiki fetches and displays Wikipedia articles in the terminal.
|
wiki fetches and displays Wikipedia articles in the terminal.
|
||||||
It connects to en.wikipedia.org over HTTPS (TLS 1.2) and
|
It connects to en.wikipedia.org over HTTPS (TLS 1.2) and
|
||||||
@@ -125,16 +128,18 @@
|
|||||||
color-coded headings and word-wrapped text. Multi-word titles
|
color-coded headings and word-wrapped text. Multi-word titles
|
||||||
are accepted as separate arguments and joined automatically.
|
are accepted as separate arguments and joined automatically.
|
||||||
|
|
||||||
|
|
||||||
<strong>OPTIONS</strong>
|
<strong>OPTIONS</strong>
|
||||||
<strong>-f</strong>
|
<strong>-f</strong>
|
||||||
Full article mode. Display the complete article text instead
|
Full article mode. Display the complete article text instead
|
||||||
of just the summary. Section headings are color-coded.
|
of just the summary. Section headings are color-coded.
|
||||||
|
|
||||||
<strong>-s</strong>
|
<strong>-s</strong>
|
||||||
Search mode. Search Wikipedia for articles matching the
|
Search mode. Search Wikipedia for articles matching the
|
||||||
query and display a numbered list of up to 10 results.
|
query and display a numbered list of up to 10 results.
|
||||||
Press a number key to view that article's summary.
|
Press a number key to view that article's summary.
|
||||||
|
|
||||||
|
|
||||||
<strong>EXAMPLES</strong>
|
<strong>EXAMPLES</strong>
|
||||||
wiki Linux
|
wiki Linux
|
||||||
Show a summary of the Linux article.
|
Show a summary of the Linux article.
|
||||||
@@ -145,13 +150,16 @@
|
|||||||
wiki -s operating system
|
wiki -s operating system
|
||||||
Search for articles related to "operating system".
|
Search for articles related to "operating system".
|
||||||
|
|
||||||
|
|
||||||
<strong>TLS SUPPORT</strong>
|
<strong>TLS SUPPORT</strong>
|
||||||
Connections use BearSSL for TLS 1.2. Server certificates
|
Connections use BearSSL for TLS 1.2. Server certificates
|
||||||
are validated against the system CA bundle at
|
are validated against the system CA bundle at
|
||||||
0:/os/certs/ca-certificates.crt.
|
0:/os/certs/ca-certificates.crt.
|
||||||
|
|
||||||
|
|
||||||
<strong>KEYBOARD</strong>
|
<strong>KEYBOARD</strong>
|
||||||
|
|
||||||
|
|
||||||
<strong>Article pager</strong>
|
<strong>Article pager</strong>
|
||||||
j / Down Scroll down one line
|
j / Down Scroll down one line
|
||||||
k / Up Scroll up one line
|
k / Up Scroll up one line
|
||||||
@@ -161,16 +169,18 @@
|
|||||||
G / End Jump to bottom
|
G / End Jump to bottom
|
||||||
q Quit pager
|
q Quit pager
|
||||||
|
|
||||||
|
|
||||||
<strong>Search results</strong>
|
<strong>Search results</strong>
|
||||||
1-9, 0 View article (0 = result 10)
|
1-9, 0 View article (0 = result 10)
|
||||||
q Quit search
|
q Quit search
|
||||||
|
|
||||||
|
|
||||||
<strong>General</strong>
|
<strong>General</strong>
|
||||||
Ctrl+Q Abort during network request
|
Ctrl+Q Abort during network request
|
||||||
|
|
||||||
<strong>SEE ALSO</strong>
|
|
||||||
fetch(1), ping(1), nslookup(1), shell(1)</code></pre>
|
|
||||||
|
|
||||||
|
<strong>SEE ALSO</strong>
|
||||||
|
<a href="fetch.html">fetch(1)</a>, <a href="ping.html">ping(1)</a>, <a href="nslookup.html">nslookup(1)</a>, <a href="shell.html">shell(1)</a></code></pre>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="center">
|
<div class="center">
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="../../index.html">Home</a></li>
|
<li><a href="../../index.html">Home</a></li>
|
||||||
<li><a href="../../downloads.html">Downloads</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="../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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
|
|||||||
+94
-2
@@ -113,12 +113,14 @@
|
|||||||
<li><a href="index.html">Home</a></li>
|
<li><a href="index.html">Home</a></li>
|
||||||
<li><a href="downloads.html" class="current">Downloads</a></li>
|
<li><a href="downloads.html" class="current">Downloads</a></li>
|
||||||
<li><a href="docs/index.html">Documentation</a></li>
|
<li><a href="docs/index.html">Documentation</a></li>
|
||||||
|
<li><a href="history.html">History</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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<hr>
|
<hr>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#latest">Latest Release</a></li>
|
<li><a href="#latest">Latest Release</a></li>
|
||||||
|
<li><a href="#v020">v0.2.0</a></li>
|
||||||
<li><a href="#v019">v0.1.9</a></li>
|
<li><a href="#v019">v0.1.9</a></li>
|
||||||
<li><a href="#v018">v0.1.8</a></li>
|
<li><a href="#v018">v0.1.8</a></li>
|
||||||
<li><a href="#v017">v0.1.7</a></li>
|
<li><a href="#v017">v0.1.7</a></li>
|
||||||
@@ -140,13 +142,104 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<h2 id="latest">Latest Release</h2>
|
<h2 id="latest">Latest Release</h2>
|
||||||
|
<div class="box release-card" id="v020">
|
||||||
|
<h3>MontaukOS 0.2.0</h3>
|
||||||
|
<p class="release-meta">October 14, 2026</p>
|
||||||
|
<p>It is recommended that users run MontaukOS in a virtual machine rather than on real hardware.</p>
|
||||||
|
<h4>Links</h4>
|
||||||
|
<ul>
|
||||||
|
<li><a href="downloads/montauk-0.2.0-x86_64.iso">Download ISO</a> (30 MB) - recommended</li>
|
||||||
|
<li><a href="downloads/montauk-0.2.0-sdk-x86_64.iso">Download ISO with Montauk SDK</a> (196 MB) - includes gcc/g++/binutils toolchain</li>
|
||||||
|
<li><a href="license.html">License</a></li>
|
||||||
|
<li><a href="docs/tutorials/index.html">Tutorials</a></li>
|
||||||
|
<li><a href="docs/man/index.html">Manual pages</a></li>
|
||||||
|
</ul>
|
||||||
|
<blockquote>
|
||||||
|
For questions or comments, please mail to [email protected].
|
||||||
|
</blockquote>
|
||||||
|
<h4>New</h4>
|
||||||
|
<ul>
|
||||||
|
<li>Capability (application permissions) model added</li>
|
||||||
|
<li>Consent prompts for missing app permissions</li>
|
||||||
|
<li>New Capabilities app for reviewing and managing app permissions</li>
|
||||||
|
<li>Unified system status codes; the shell and Files now print a readable message on failure</li>
|
||||||
|
<li>Text is now UTF-8 throughout, with Unicode key events and dead keys</li>
|
||||||
|
<li>Keyboard layout support, with English, Norwegian, Czech, Swedish, and Danish layouts</li>
|
||||||
|
<li>NumLock support</li>
|
||||||
|
<li>Battery percentage reporting via ACPI, with a battery indicator in the desktop panel</li>
|
||||||
|
<li>Display brightness control, including on hybrid graphics laptops, with a slider in the desktop panel</li>
|
||||||
|
<li>Discrete GPUs are powered down automatically on hybrid graphics laptops</li>
|
||||||
|
<li>ext2 block cache with readahead, speeding up disk-heavy work such as on-OS compilation</li>
|
||||||
|
<li>Userspace system logging: <code>klog</code> is now <code>syslog</code>, logs identify the user and program, and system services log through <code>montauk::service_log</code></li>
|
||||||
|
<li>The system log is written to disk (<code>0:/state/logs</code>) during shutdown</li>
|
||||||
|
<li>Desktop sessions now own the processes started in them, and those processes are ended on logout</li>
|
||||||
|
<li>Rust userspace support (<code>no_std</code>)</li>
|
||||||
|
<li>Futex syscalls (<code>SYS_FUTEX_WAIT</code>/<code>SYS_FUTEX_WAKE</code>) as groundwork for Rust std and pthreads</li>
|
||||||
|
<li>Process termination codes; <code>abort()</code> now ends the whole process from any thread</li>
|
||||||
|
<li><code>isatty()</code> now reports whether a terminal is actually attached</li>
|
||||||
|
<li>Settings panel and a Pure Black theme in Terminal (the default for Console sessions)</li>
|
||||||
|
<li>Syntax highlighting for C++, HTML, CSS, and JavaScript in <code>edit</code> and Text Editor</li>
|
||||||
|
<li>Expanded SVG renderer</li>
|
||||||
|
<li>New <code>vol</code> command for listing mounted volumes</li>
|
||||||
|
<li>Revamped desktop application categories</li>
|
||||||
|
<li>Fonts, icons, and manual pages moved to <code>0:/os</code>; persistent state now lives in <code>0:/state</code></li>
|
||||||
|
<li>RTL-SDR driver moved from the kernel to userspace</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Fixed</h4>
|
||||||
|
<ul>
|
||||||
|
<li>Opening a directory as a file is now rejected on ext2 and FAT32, fixing on-OS gcc on installed systems</li>
|
||||||
|
<li>Fixed several syscall result and status code comparisons</li>
|
||||||
|
<li>Fixed a TLS layout bug for binaries whose TLS segment has an alignment below 16</li>
|
||||||
|
<li>A fault in one thread now ends the whole process instead of leaving its sibling threads running</li>
|
||||||
|
<li>Fixed an ACPI hardware ID endianness bug</li>
|
||||||
|
<li>Fixed a race in Wi-Fi event processing and other Wi-Fi bugs</li>
|
||||||
|
<li>DHCP no longer runs when no network device has an active link</li>
|
||||||
|
<li>Reduced idle CPU wakeups and deferred-work polling</li>
|
||||||
|
<li>Redirected consoles are now inherited by processes spawned with capabilities</li>
|
||||||
|
<li>Fixed numpad navigation</li>
|
||||||
|
<li>Fixed a timezone formatting bug</li>
|
||||||
|
<li>Fixed the login wallpaper startup delay</li>
|
||||||
|
<li>Fixed text overlap in file dialogs</li>
|
||||||
|
<li>Persisted kernel logs are no longer double-spaced</li>
|
||||||
|
<li>Files lists now scroll with the arrow keys, and volume labels are consistent</li>
|
||||||
|
<li><code>mbrtowc</code> added to libc</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Known issues</h4>
|
||||||
|
<ul>
|
||||||
|
<li>Intel GPU may struggle to wake up from S3 sleep, causing a black screen requiring a reset. S3 sleep is highly experimental and users are discouraged from relying on it.</li>
|
||||||
|
<li>Due to licensing restrictions, the proprietary DOOM WAD cannot be shipped; the DOOM engine warns at launch when no compatible WAD file is present, and game content is unavailable until the user supplies one.</li>
|
||||||
|
</ul>
|
||||||
|
<h4>Included in ISO</h4>
|
||||||
|
<p>Two x86_64 images are published for this release. <code>montauk-0.2.0-sdk-x86_64.iso</code> additionally carries the Montauk SDK (gcc, binutils, etc.)</p>
|
||||||
|
<ul>
|
||||||
|
<li>MontaukOS SMP kernel</li>
|
||||||
|
<li>Userspace bootstrap (<code>0:/os/init.elf</code>) and other essential system utilities</li>
|
||||||
|
<li>MontaukOS desktop environment and graphical apps</li>
|
||||||
|
<li>NetSurf web browser (<code>0:/apps/netsurf</code>)</li>
|
||||||
|
<li>Manual pages (<code>0:/os/man</code>), readable via <code>man</code> command</li>
|
||||||
|
<li>Service and system configuration (<code>0:/config</code>: init.toml, capabilities.toml, ssh.toml, ntp.toml)</li>
|
||||||
|
<li>System CA certificates (<code>0:/os/certs/ca-certificates.crt</code>)</li>
|
||||||
|
<li>Intel Bluetooth controller and Wi-Fi (iwlwifi) firmware (<code>0:/os/firmware/intel</code>)</li>
|
||||||
|
<li>Third-party license texts and notices (<code>0:/os/licenses</code>)</li>
|
||||||
|
<li>Tiny C Compiler (<code>tcc</code>) with MontaukOS headers and libraries (<code>0:/sdk/tcc</code>)</li>
|
||||||
|
<li>Lua 5.4 interpreter (<code>lua</code>) with headers and static library (<code>0:/sdk/lua</code>)</li>
|
||||||
|
<li>Montauk SDK - native GCC/G++ and binutils (<code>0:/sdk</code>) - SDK image only</li>
|
||||||
|
<li>Flat Remix icon pack</li>
|
||||||
|
<li>JetBrains Mono, Noto Serif, Roboto, and C059 Roman (open Century Schoolbook) TrueType fonts</li>
|
||||||
|
<li>DOOM engine with SDL_mixer audio support (game data not included)</li>
|
||||||
|
<li>Experimental HTTP server (<code>httpd</code>) and default page (<code>0:/www/index.html</code>)</li>
|
||||||
|
<li>Default wallpaper - blossoms by Nikhil Kumar, Unsplash (<code>0:/os/wallpapers</code>)</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>Release Archive</h2>
|
||||||
<div class="box release-card" id="v019">
|
<div class="box release-card" id="v019">
|
||||||
<h3>MontaukOS 0.1.9</h3>
|
<h3>MontaukOS 0.1.9</h3>
|
||||||
<p class="release-meta">August 13, 2026</p>
|
<p class="release-meta">August 13, 2026</p>
|
||||||
<p>It is recommended that users run MontaukOS in a virtual machine rather than on real hardware.</p>
|
<p>It is recommended that users run MontaukOS in a virtual machine rather than on real hardware.</p>
|
||||||
<h4>Links</h4>
|
<h4>Links</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="downloads/montauk-0.1.9-x86_64.iso">Download ISO</a> (29 MB) - recommended</li>
|
<li><a href="downloads/montauk-0.1.9-x86_64.iso">Download ISO</a> (29 MB)</li>
|
||||||
<li><a href="downloads/montauk-0.1.9-sdk-x86_64.iso">Download ISO with Montauk SDK</a> (194 MB) - includes gcc/g++/binutils toolchain</li>
|
<li><a href="downloads/montauk-0.1.9-sdk-x86_64.iso">Download ISO with Montauk SDK</a> (194 MB) - includes gcc/g++/binutils toolchain</li>
|
||||||
<li><a href="license.html">License</a></li>
|
<li><a href="license.html">License</a></li>
|
||||||
<li><a href="docs/tutorials/index.html">Tutorials</a></li>
|
<li><a href="docs/tutorials/index.html">Tutorials</a></li>
|
||||||
@@ -222,7 +315,6 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>Release Archive</h2>
|
|
||||||
<div class="box release-card" id="v018">
|
<div class="box release-card" id="v018">
|
||||||
<h3>MontaukOS 0.1.8</h3>
|
<h3>MontaukOS 0.1.8</h3>
|
||||||
<p class="release-meta">July 18, 2026</p>
|
<p class="release-meta">July 18, 2026</p>
|
||||||
|
|||||||
+108
@@ -0,0 +1,108 @@
|
|||||||
|
<!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="The history of MontaukOS">
|
||||||
|
<title>History - MontaukOS</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; }
|
||||||
|
.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; }
|
||||||
|
@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="docs/index.html">Documentation</a></li>
|
||||||
|
<li><a href="history.html" class="current">History</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>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="main">
|
||||||
|
<h1>History</h1>
|
||||||
|
<p>
|
||||||
|
History of the MontaukOS project (major milestones).</a>
|
||||||
|
</p>
|
||||||
|
<hr>
|
||||||
|
<h2>Before MontaukOS</h2>
|
||||||
|
<p>MontaukOS came after a series of abadoned kernel and operating system projects that had been in development since 2022.</p>
|
||||||
|
<p>These projects were abandoned due to decay, code quality, and architectural incoherence.</p>
|
||||||
|
<hr>
|
||||||
|
<h2>Late 2024 - early 2025</h2>
|
||||||
|
<p>
|
||||||
|
<h3>December 2024/January 2025</h3>
|
||||||
|
<p>Early development of the MontaukOS codebase was started, deriving from the <a href="https://github.com/Limine-Bootloader/limine-cxx-template">Limine C++ template</a>, a template for creating a freestanding binary that can be loaded by the <a href="https://en.wikipedia.org/wiki/Limine_(bootloader)">Limine bootloader</a> using its protocol.</p>
|
||||||
|
<h3>February 2025</h3>
|
||||||
|
<p>Basic kernel features were implemented, including <a href="https://git.montaukos.org/daniel/MontaukOS/src/commit/6f1c6f131680ccaa7c0bf3ec8f6a0aab77d3d2fd/kernel/src/Memory/PageAllocator.cpp">an allocator for page frames</a> and <a href="https://git.montaukos.org/daniel/MontaukOS/src/commit/6f1c6f131680ccaa7c0bf3ec8f6a0aab77d3d2fd/kernel/src/Hal/GDT.cpp">an implementation of the Global Descriptor Table for x86_64 processors</a>. The first commit to the <a href="https://git.montaukos.org/daniel/MontaukOS/src/commit/6f1c6f131680ccaa7c0bf3ec8f6a0aab77d3d2fd">repo</a> was made on February 27, 2025 at 7:48 p.m.</p>
|
||||||
|
<p>MontaukOS was published under the name 'OS220'.</p>
|
||||||
|
<h3>March 2025</h3>
|
||||||
|
<p>The <a href="https://git.montaukos.org/daniel/MontaukOS/src/commit/17d0bbf1bb9dcee03c1238c58a7fd6cec90a777e/kernel/src/Memory/MemoryAllocator.cpp">first version</a> of the kernel heap allocator was written and committed.</p>
|
||||||
|
<h3>April 2025</h3>
|
||||||
|
<p><a href="https://git.montaukos.org/daniel/MontaukOS/src/commit/2515149f28f004878e85e7e24ad1322fcfb81f12/kernel/src/Memory/Paging.cpp">Support for virtual memory paging on x86_64 processors</a> was implemented.</p>
|
||||||
|
<h3>May 2025</h3>
|
||||||
|
<p>Rudimentary support for parsing <a href="https://en.wikipedia.org/wiki/ACPI">ACPI</a> tables was implemented.</p>
|
||||||
|
<h3>August 2025</h3>
|
||||||
|
<p>The first <a href="https://git.montaukos.org/daniel/MontaukOS/commit/18ab6286828165cfdae1d04f2c38e2cff1e99b19">commit</a> assisted by large language model (LLM) technology was made. An LLM implemented TUI box-drawing for the kernel-mode panic screen.</p>
|
||||||
|
<h3>February 2026</h3>
|
||||||
|
<p>OS220 was renamed to ZenithOS.</p>
|
||||||
|
<p>Support for the Local and IO APICs, and support for PS/2 keyboard and mouse devices, was added.</p>
|
||||||
|
<p>Initial support for PCI-e devices was added.</p>
|
||||||
|
<p>The MontaukOS shell (shell.elf) was added.</p>
|
||||||
|
<p>The DOOM video game, via the <a href="https://github.com/ozkl/doomgeneric">doomgeneric</a> project, was ported.</p>
|
||||||
|
<p>Support for Intel I217/I218/I219 network devices was added, along with support for TCP/IP and user-mode networking.</p>
|
||||||
|
<p>An initial version of the MontaukOS Desktop (desktop.elf) was <a href="https://git.montaukos.org/daniel/MontaukOS/commit/987a85da27c3f40b28513f74029303fd08c19459">implemented</a>.</p>
|
||||||
|
<p>Initial versions of various user-mode desktop apps were added.</p>
|
||||||
|
<p>ZenithOS was renamed to MontaukOS.</p>
|
||||||
|
<h3>March 2026</h3>
|
||||||
|
<p>The Word Processor and PDF Viewer apps were added.</p>
|
||||||
|
<p>Support for the GUID Partition Table and the FAT32 file system were added.</p>
|
||||||
|
<p>The Installer app was added, allowing users to deploy MontaukOS permanently.</p>
|
||||||
|
<p>Support for NVMe storage devices was added.</p>
|
||||||
|
<p>Support for Intel HDA audio devices was added, along with a userspace Music app.</p>
|
||||||
|
<p>Support for symmetric multiprocessing (SMP) on x86_64 platforms was <a href="https://git.montaukos.org/daniel/MontaukOS/commit/41ad1f640412b7a675d60488009cab709d4089dd">implemented</a>.</p>
|
||||||
|
<p>Screenshot app added.</p>
|
||||||
|
<h3>April 2026</h3>
|
||||||
|
<p>Support for IPP printer devices and document printing was added.</p>
|
||||||
|
<p>MontaukOS GUI elements were standardized into the MTK toolkit.</p>
|
||||||
|
<h3>May 2026</h3>
|
||||||
|
<p>Support for USB mass storage devices implemented.</p>
|
||||||
|
<h3>June 2026</h3>
|
||||||
|
<p>Support for A2DP Bluetooth audio devices added.</p>
|
||||||
|
<hr>
|
||||||
|
<p><a href="downloads.html">Browse downloads and release notes</a></p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -166,6 +166,7 @@
|
|||||||
<li><a href="index.html" class="current">Home</a></li>
|
<li><a href="index.html" class="current">Home</a></li>
|
||||||
<li><a href="downloads.html">Downloads</a></li>
|
<li><a href="downloads.html">Downloads</a></li>
|
||||||
<li><a href="docs/index.html">Documentation</a></li>
|
<li><a href="docs/index.html">Documentation</a></li>
|
||||||
|
<li><a href="history.html">History</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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -194,6 +195,10 @@ targeting both emulators and real hardware.
|
|||||||
<hr>
|
<hr>
|
||||||
<h2 id="news">News</h2>
|
<h2 id="news">News</h2>
|
||||||
<article class="news-entry">
|
<article class="news-entry">
|
||||||
|
<h3><a href="downloads.html">MontaukOS 0.2.0 released</a></h3>
|
||||||
|
<p><time datetime="2026-10-14">October 14, 2026</time></p>
|
||||||
|
</article>
|
||||||
|
<article class="news-entry">
|
||||||
<h3><a href="https://danhammer.net/2026/08/22/a-new-system-logging-architecture-for-montaukos/">A new system logging architecture for MontaukOS</a></h3>
|
<h3><a href="https://danhammer.net/2026/08/22/a-new-system-logging-architecture-for-montaukos/">A new system logging architecture for MontaukOS</a></h3>
|
||||||
<p><time datetime="2026-08-22">August 22, 2026</time> – <a href="https://danhammer.net/">Daniel Hammer’s personal blog</a></p>
|
<p><time datetime="2026-08-22">August 22, 2026</time> – <a href="https://danhammer.net/">Daniel Hammer’s personal blog</a></p>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -79,6 +79,7 @@
|
|||||||
<li><a href="index.html">Home</a></li>
|
<li><a href="index.html">Home</a></li>
|
||||||
<li><a href="downloads.html">Downloads</a></li>
|
<li><a href="downloads.html">Downloads</a></li>
|
||||||
<li><a href="docs/index.html">Documentation</a></li>
|
<li><a href="docs/index.html">Documentation</a></li>
|
||||||
|
<li><a href="history.html">History</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/issues">Issue tracker</a></li>
|
||||||
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
<li><a href="https://git.montaukos.org/daniel/MontaukOS">Git</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Reference in new issue
Block a user