03d1a1bc2f360f2f532a55c5118ba6593eee9d9a
The cross toolchain now builds real hosted C++: std::string, vector, unique_ptr, iostreams and exceptions all work in a plain x86_64-montauk-g++ invocation with no special flags. This is the library that native cc1plus will link against for the GCC self-host. crt1 now runs .preinit_array/.init_array before main and hooks .fini_array through atexit (main returns via exit(), so destructors run on both exit paths). Global constructors and libgcc's eh_frame registration both ride this. GCC is reconfigured with --enable-initfini-array (modern arrays instead of .ctors), --with-newlib (satisfies libstdc++'s crossconfig for unknown hosts), --disable-wchar_t and --disable-libstdcxx-pch; the montauk gcc patch grows a hunk keeping os/generic ctype under --with-newlib (the Montauk libc is not newlib). libc additions harvested by the libstdc++ build: mbtowc/wctomb, strxfrm, strtok/strtok_r, a real vfscanf/fscanf/scanf (character- driven with widths and l/ll; also unblocks gprof later), fgetpos/ fsetpos/setbuf/fpos_t, modf plus the C99 float math variants (acosf..tanhf, hypot/hypotf as wrappers), FP_* classification macros, the full POSIX errno vocabulary, complete DT_* dirent types, and mbstate_t. The SDK ships the real libstdc++.a (was an empty stand-in), the C++ headers at 0:/sdk/include/c++, and cxx-test.elf (global ctor, string, vector+sort, unique_ptr, throw/catch; exits 0 on 5/5). Ramdisk sits at 1571 files, within the 2048 table. Co-Authored-By: Claude Fable 5 <[email protected]>
doomgeneric
@ fc60163949
The Montauk Operating System
MontaukOS is an operating system written in modern C++. It runs on bare metal and supports various applications, including DOOM, a Wikipedia client, and standard desktop utilities.
Features
- Modern preemptive multitasking kernel
- Multi-user userspace with desktop environment and command line
- PCI-e support and drivers for Intel GPU and e100e Ethernet for graphics and networking on real hardware
- ACPI support with AML interpreter, including S3 sleep and ACPI shutdown
- Support for USB including input devices (keyboard/mouse), along with PS/2 input support
- Support for Intel High Definition (HDA) audio devices
- Userspace and kernel audio support
- Support for (some) Intel Bluetooth devices, userspace Bluetooth management app
- Support for the GPT partition table
- VFS using numbered drive identifiers with support for ext2 and FAT32 filesystems
- Support for AHCI and NVMe SSD drives
- Support for UEFI Runtime Services, including power management calls (shutdown/reboot)
- Customizable desktop environment with 12+ graphical apps, including a terminal emulator, file manager, Wikipedia client, weather app, DOOM, and more
- Modern icon pack (Flat Remix) used in desktop environment
- Support for TrueType font, JPEG image, and SVG icon rendering
- Networking including TCP/IP stack, UDP, DNS, DHCP and TLS via BearSSL
- Command-line IRC client
- Live viewable kernel log from GUI
- Mandelbrot set renderer
- PDF viewer app with full support for text (inc. baked-in TrueType fonts) and some graphics
- Userspace Music app with support for MP3 and WAV files
- 2D game engine and demo game with fantasy tileset
Goal
The goal of the MontaukOS project is to create a modern and unique operating system that runs on both emulators and on real hardware. The kernel and included userspace applications are written in modern C++.
History and methodology
Development started in early 2025, as a hand-written toy kernel. The first published Git commit was on Feb 27, 2025. In early 2026, Claude Opus 4.6 began being used to accelerate development of the kernel and userspace.
Languages
C++
53.9%
C
41.6%
HTML
2.3%
Makefile
0.8%
Roff
0.6%
Other
0.7%
