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