diff --git a/kernel/src/Main.cpp b/kernel/src/Main.cpp index f46b804..d2f877a 100644 --- a/kernel/src/Main.cpp +++ b/kernel/src/Main.cpp @@ -186,12 +186,6 @@ extern "C" void kmain() { Fs::InitializeBootFilesystems(boot.modules); - // EXPERIMENT (wip/bt-deferred-init): the Bluetooth firmware bring-up is - // NOT run here -- the idle loop picks it up via ServiceDeferredInit() - // after boot, with CPU reservation, the IRQ-safe trace ring, and the - // bulk-pipelined download. Earlier deferral attempts (2026-07-05) made - // the AX211 stop answering after the first FC05; this run captures a - // ring trace of exactly what the event pipe delivers in deferred mode. Hal::LoadTSS(); montauk::abi::InitializeSyscalls(); @@ -202,13 +196,6 @@ extern "C" void kmain() { // Boot Application Processors (all subsystems ready, APs can schedule) Smp::BootAPs(boot.smp); - // The Bluetooth firmware bring-up is deferred to the idle loop - // (ServiceDeferredInit from IdleOnce) so its download never stalls boot. - // Requires the HCI multi-packet event reassembly in Hci.cpp: without it, - // the next command races the tail of a multi-packet response and wedges - // the AX211 bootloader -- which only ever worked before because boot-time - // flanterm rendering accidentally paced the commands. - // Flush any stale PS/2 mouse bytes that accumulated during boot // (edge-triggered IRQs can be lost while spinlocks disable interrupts) Drivers::PS2::Mouse::FlushState(); diff --git a/montaukos.org/THIRD-PARTY-NOTICES.txt b/montaukos.org/THIRD-PARTY-NOTICES.txt index 35097df..9e20f04 100644 --- a/montaukos.org/THIRD-PARTY-NOTICES.txt +++ b/montaukos.org/THIRD-PARTY-NOTICES.txt @@ -373,6 +373,40 @@ License: Unsplash License (https://unsplash.com/license) does not include the right to compile images from Unsplash to replicate a similar or competing service. +================================================================================ +15. Flanterm (text renderer for kernel debug log) +================================================================================ +Compiled into the MontaukOS kernel (see kernel/src/Libraries/flanterm). +The files are taken unmodified from the flanterm project. + + Copyright (C) 2022-2026 Mintsuki and contributors. + Upstream: https://github.com/Mintsuki/Flanterm + (formerly https://codeberg.org/Mintsuki/Flanterm) + +License: BSD-2-Clause license (https://raw.githubusercontent.com/Mintsuki/Flanterm/refs/heads/trunk/LICENSE) + + Copyright (C) 2022-2026 Mintsuki and contributors. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ For licensing inquiries regarding MontaukOS itself, contact: daniel@nexlink.cloud diff --git a/montaukos.org/docs/usersmanual/connectivity.html b/montaukos.org/docs/usersmanual/connectivity.html new file mode 100644 index 0000000..68fdb63 --- /dev/null +++ b/montaukos.org/docs/usersmanual/connectivity.html @@ -0,0 +1,131 @@ + + + + + + + Connectivity - MontaukOS Tutorials + + + + + + + + + +
+
+

Connecting to a network (and to the Internet) on MontaukOS

+
+ +
+

This tutorial explains how to connect to your local network on MontaukOS.

+

+

+ MontaukOS includes drivers for Intel Ethernet adapters, including virtualized adapters found on QEMU and VirtualBox, and adapters used on a wide variety of desktops and laptops. Wireless networking via Wi-Fi is currently not supported.

+ For most Ethernet configurations, MontaukOS should automatically connect to your local network and obtain an IP address via the DHCP protocol. You can review your network connection using the Network configuration applet: +

    +
  1. Open the applications menu and click on the 'Settings' entry.
  2. +
  3. Double-click the 'Network' applet from within the Settings virtual folder.
  4. +
+
+ +

The Network applet displayed on a QEMU/KVM virtual machine (MontaukOS 0.1.5)

+
+ If you need to manually configure your connection - such as by setting up a static IP - you can use the "Configure" tab. + Configuration options include the IP address, subnet mask, gateway IP, and DNS server. +
+

+
+ + The 'DHCP' button on the toolbar invokes the DHCP client manually, in the background. MontaukOS otherwise runs the DHCP client automatically once every system startup.

+ + If the Network applet reports that there is no network adapter present, it is very likely that MontaukOS does not have network drivers for your device. For further troubleshooting, you can use the Devices (devexplorer) app to review + devices detected by the system, or use the Kernel Log tool to inspect relevant kernel log lines. +

+
    + +

+
+ +
+Back to Documentation Index +
+ +
+ + \ No newline at end of file diff --git a/montaukos.org/docs/usersmanual/images/initialsetup.png b/montaukos.org/docs/usersmanual/images/initialsetup.png new file mode 100644 index 0000000..484b3a5 Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/initialsetup.png differ diff --git a/montaukos.org/docs/usersmanual/images/networkapplet-configure.png b/montaukos.org/docs/usersmanual/images/networkapplet-configure.png new file mode 100644 index 0000000..a5c33e2 Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/networkapplet-configure.png differ diff --git a/montaukos.org/docs/usersmanual/images/networkapplet-overview.png b/montaukos.org/docs/usersmanual/images/networkapplet-overview.png new file mode 100644 index 0000000..90d1091 Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/networkapplet-overview.png differ diff --git a/montaukos.org/docs/usersmanual/images/terminal-c.png b/montaukos.org/docs/usersmanual/images/terminal-c.png new file mode 100644 index 0000000..40b0ab3 Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/terminal-c.png differ diff --git a/montaukos.org/docs/usersmanual/images/terminal-lua.png b/montaukos.org/docs/usersmanual/images/terminal-lua.png new file mode 100644 index 0000000..79e9387 Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/terminal-lua.png differ diff --git a/montaukos.org/docs/usersmanual/images/texteditor-c.png b/montaukos.org/docs/usersmanual/images/texteditor-c.png new file mode 100644 index 0000000..de007fa Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/texteditor-c.png differ diff --git a/montaukos.org/docs/usersmanual/images/texteditor-lua.png b/montaukos.org/docs/usersmanual/images/texteditor-lua.png new file mode 100644 index 0000000..e48cfce Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/texteditor-lua.png differ diff --git a/montaukos.org/docs/usersmanual/images/timezone.png b/montaukos.org/docs/usersmanual/images/timezone.png new file mode 100644 index 0000000..a082d8e Binary files /dev/null and b/montaukos.org/docs/usersmanual/images/timezone.png differ diff --git a/montaukos.org/docs/usersmanual/index.html b/montaukos.org/docs/usersmanual/index.html index 062faa6..2abb671 100644 --- a/montaukos.org/docs/usersmanual/index.html +++ b/montaukos.org/docs/usersmanual/index.html @@ -89,19 +89,26 @@
-

User's Manual

+

User's Tutorials


-This volume is the manual for MontaukOS end users, covering installation, configuration, -and everyday use of the operating system and its applications. +This volume contains tutorials for users covering everyday use of the MontaukOS system.

-

-No pages yet. -

+

Getting started

+ + +

Programming

+
diff --git a/montaukos.org/docs/usersmanual/initialsetup.html b/montaukos.org/docs/usersmanual/initialsetup.html new file mode 100644 index 0000000..40c33b0 --- /dev/null +++ b/montaukos.org/docs/usersmanual/initialsetup.html @@ -0,0 +1,134 @@ + + + + + + + Initial Setup - MontaukOS Tutorials + + + + + + + + + +
+
+

Initial Setup on MontaukOS

+
+ +
+

This tutorial explains how to create your first account and set your time zone on MontaukOS.

+
+

+

Account creation and login

+ When you successfully boot MontaukOS for the first time, you should see the 'MontaukOS Setup' window, as depicted below. + +


+ +
    +
  1. It is recommended to select a new username for your account rather than keeping the default username 'admin'.
  2. +
  3. Select a display name for your account.
  4. +
  5. Choose a password for your account, and enter it in both the 'Password' and 'Confirm Password' fields.
  6. +
  7. Click 'Create Account'.
  8. +
  9. First-time setup is complete. Keep the 'Desktop' session selected and use the credentials you just created to log in to the system.
  10. +
+ +

Time zone selection

+
    +
  1. Click on the application menu icon located at the top-left corner of the desktop, and click the 'Settings' entry.
  2. +
  3. Double-click the 'Time Zone' icon within the virtual 'Settings' folder.
  4. +
  5. The default time zone is Oslo, Norway. To adjust your time zone, scroll along the left pane (countries) and select your country or region. Then, select the city closest to your location on the right pane.
  6. +
  7. Click 'Apply'.
  8. +
+
+ +
+

+
    + +

+
+ + + +
+ + \ No newline at end of file diff --git a/montaukos.org/docs/usersmanual/tutorial-programming-c.html b/montaukos.org/docs/usersmanual/tutorial-programming-c.html new file mode 100644 index 0000000..4ddb11a --- /dev/null +++ b/montaukos.org/docs/usersmanual/tutorial-programming-c.html @@ -0,0 +1,143 @@ + + + + + + + C Hello World - MontaukOS Tutorials + + + + + + + + + +
+
+

Writing and running a "Hello, World" program in C

+
+ +
+

This tutorial explains how to create and run a simple program in the C programming language (using the tcc C compiler) on MontaukOS.

+
    +
  1. Open the Text Editor by navigating to the 'Applications' section in the app menu.
  2. +
    Did you know? The MontaukOS Text Editor provides syntax highlighting for C and Lua files.
    +
  3. Type: +
    +#include <stdio.h>
    +
    +int main(void) {
    +    printf("Hello, World!\n");
    +    return 0;
    +}
    +    
    + into the Text Editor window. This code outputs the string "Hello, World!" along with a line break to the Terminal.

  4. +
    + + +
    +
  5. Click the Save (floppy disk) button on the top panel. Choose a directory to save your code in - for example, your Home folder - give the source file a name ending in .c, and click 'Save'.
  6. +
  7. Open the Terminal app by navigating to the 'Applications' section in the app menu. You should see something like this appear on your screen: +
    +    MontaukOS
    +    Copyright (c) 2025-2026 Montauk Operating System Project
    +
    +    Logged in as admin
    +
    +    Type 'help' for available commands.
    +
    +0:/users/admin>
    +        
    +
    +
  8. +
  9. If you saved your program's source file somewhere other than your Home directory, switch to the directory in which you saved your program using the cd command. For example, cd Documents.
  10. +
  11. Type 'tcc ' followed by your program's name, and then press enter. For example, 'tcc hello.c'.
  12. +
  13. Run your program by typing its name without the '.c' extension, before pressing enter - for example, "hello".
  14. +
  15. You should see "Hello, World!" displayed in the Terminal window. Congratulations!
  16. +
    + +

+
+ + + +
+ + \ No newline at end of file diff --git a/montaukos.org/docs/usersmanual/tutorial-programming.html b/montaukos.org/docs/usersmanual/tutorial-programming.html new file mode 100644 index 0000000..b73ead8 --- /dev/null +++ b/montaukos.org/docs/usersmanual/tutorial-programming.html @@ -0,0 +1,139 @@ + + + + + + + Lua Hello World - MontaukOS Tutorials + + + + + + + + + +
+
+

Writing and running a "Hello, World" program in Lua

+
+ +
+

This tutorial explains how to create and run a simple program in the Lua programming language on MontaukOS.

+
    +
  1. Open the Text Editor by navigating to the 'Applications' section in the app menu.
  2. +
    Did you know? The MontaukOS Text Editor provides syntax highlighting for C and Lua files.
    +
  3. Type: +
    print("Hello, World!")
    + into the Text Editor window. This code outputs the string "Hello, World!" to the Terminal.

  4. +
    + + +
    +
  5. Click the Save (floppy disk) button on the top panel. Choose a directory to save your code in - for example, your Home folder - give the program a name ending in .lua, and click 'Save'.
  6. +
  7. Open the Terminal app by navigating to the 'Applications' section in the app menu. You should see something like this appear on your screen: +
    +    MontaukOS
    +    Copyright (c) 2025-2026 Montauk Operating System Project
    +
    +    Logged in as admin
    +
    +    Type 'help' for available commands.
    +
    +0:/users/admin>
    +        
    +
    +
  8. +
  9. If you saved your program somewhere other than your Home directory, switch to the directory in which you saved your program using the cd command. For example, cd Documents.
  10. +
  11. Type 'lua ' followed by your program's name, and then press enter. For example, 'lua hello.lua'.
  12. +
  13. You should see "Hello, World!" displayed in the Terminal window. Congratulations!
  14. +
    + +
+
+

Beware!

+

The Lua implementation on MontaukOS currently has known issues. For example, floating point calculations do not work.

+ +
+ + + +
+ + \ No newline at end of file diff --git a/montaukos.org/index.html b/montaukos.org/index.html index aafdfdf..e086236 100644 --- a/montaukos.org/index.html +++ b/montaukos.org/index.html @@ -145,42 +145,37 @@

MontaukOS

-

Modern and unique bare metal operating system


About

-MontaukOS is a novel multi-user operating system that runs on bare metal. -It features its own preemptive multitasking kernel and modern userspace with its own desktop environment, +MontaukOS is a multi-user, multitasking operating system that runs on bare metal. +It features its own kernel and modern userspace with its own desktop environment, targeting both emulators and real hardware.

-

-MontaukOS is not Linux, nor is it Unix-like. Rather, it uses its own custom Montauk kernel with its own architecture and design.


Features

-

Applications

+

Featured applications


@@ -248,8 +243,8 @@ const slideshowItems = [ }, { src: 'images/mtk_procmgr_devexplorer.png', - alt: 'MontaukOS screenshot showing Process Manager and Developer Explorer', - caption: 'Process Manager and Developer Explorer open on the MontaukOS desktop.' + alt: 'MontaukOS screenshot showing Process Manager and Device Explorer', + caption: 'Process Manager and Device Explorer open on the MontaukOS desktop.' } ];