From f3d475a0d59b1e20eec72a96fda0fd109947fd67 Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Wed, 14 Oct 2026 07:46:40 +0200 Subject: [PATCH] feat: release - 0.2.0 --- GNUmakefile | 5 +++ archives/releasenotes.txt | 75 ++++++++++++++++++++++++++++++++++++++ kernel/src/Api/BuildNo.hpp | 2 +- kernel/src/Api/Info.hpp | 4 +- 4 files changed, 83 insertions(+), 3 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 185e9e5..3a1416b 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -252,6 +252,10 @@ ifeq ($(ARCH),loongarch64) endif rm -rf iso_root +# Example and regression-test programs that are built into 0:/os for +# development but have no place on a release image. +RELEASE_EXCLUDE_PROGRAMS := rusthello.elf futextest.elf memtest.elf + .PHONY: release release: limine/limine kernel ramdisk rm -rf iso_root .release-tmp @@ -281,6 +285,7 @@ ifeq ($(RELEASE_WITHOUT_SDK),1) rm -rf .release-tmp/sdk/bin .release-tmp/sdk/lib .release-tmp/sdk/include \ .release-tmp/sdk/libexec .release-tmp/sdk/x86_64-montauk endif + rm -f $(addprefix .release-tmp/os/,$(RELEASE_EXCLUDE_PROGRAMS)) find .release-tmp -name '*.elf' -exec strip {} + # The ramdisk carries its own copy of the kernel at 0:/boot/kernel -- that is # the image the Installer lays down on the target disk -- and it is not named diff --git a/archives/releasenotes.txt b/archives/releasenotes.txt index ae92cc3..e885a6f 100644 --- a/archives/releasenotes.txt +++ b/archives/releasenotes.txt @@ -1,3 +1,78 @@ +MontaukOS 0.2.0 (October 14, 2026) + (278b20825815ec04a22fd1c2fcfedbd38e116e6d) + +New +==== + * Kernel capability model - processes run with a capability set, and protected paths and privileged syscalls are gated on it + * Permission consent prompts - apps ask before first use of a protected capability, and answers are remembered + * New Capabilities app for reviewing and managing app permissions + * Unified system status codes; the shell and Files now print a readable message on failure + * Text is now UTF-8 throughout, with Unicode key events and dead keys + * Keyboard layout support, with English, Norwegian, Czech, Swedish, and Danish layouts + * NumLock support + * Battery percentage reporting via ACPI, with a battery indicator in the desktop panel + * Display brightness control, including on hybrid graphics laptops, with a slider in the desktop panel + * Discrete GPUs are powered down automatically on hybrid graphics laptops + * ext2 block cache with readahead, speeding up disk-heavy work such as on-OS compilation + * Userspace system logging: klog is now syslog, logs identify the user and program, and system services log through montauk::service_log + * The system log is written to disk (0:/state/logs) during shutdown + * Desktop sessions now own the processes started in them, and those processes are ended on logout + * Rust userspace support (no_std) + * Futex syscalls (SYS_FUTEX_WAIT/SYS_FUTEX_WAKE) as groundwork for Rust std and pthreads + * Process termination codes; abort() now ends the whole process from any thread + * isatty() now reports whether a terminal is actually attached + * Settings panel and a Pure Black theme in Terminal (the default for Console sessions) + * Syntax highlighting for C++, HTML, CSS, and JavaScript in edit and Text Editor + * Expanded SVG renderer + * New vol command for listing mounted volumes + * Revamped desktop application categories + * Fonts, icons, and manual pages moved to 0:/os; persistent state now lives in 0:/state + * RTL-SDR driver moved from the kernel to userspace + +Fixed +===== + * Opening a directory as a file is now rejected on ext2 and FAT32, fixing on-OS gcc on installed systems + * Fixed several syscall result and status code comparisons + * Fixed a TLS layout bug for binaries whose TLS segment has an alignment below 16 + * A fault in one thread now ends the whole process instead of leaving its sibling threads running + * Fixed an ACPI hardware ID endianness bug + * Fixed a race in Wi-Fi event processing and other Wi-Fi bugs + * DHCP no longer runs when no network device has an active link + * Reduced idle CPU wakeups and deferred-work polling + * Redirected consoles are now inherited by processes spawned with capabilities + * Fixed numpad navigation + * Fixed a timezone formatting bug + * Fixed the login wallpaper startup delay + * Fixed text overlap in file dialogs + * Persisted kernel logs are no longer double-spaced + * Files lists now scroll with the arrow keys, and volume labels are consistent + * mbrtowc added to libc + +Included in ISO +================ + + Two x86_64 images are published for this release. + montauk-0.2.0-sdk-x86_64.iso additionally carries the + Montauk SDK (gcc, binutils, etc.) + + * MontaukOS SMP kernel + * Userspace bootstrap (0:/os/init.elf) and other essential system utilities + * MontaukOS desktop environment and graphical apps + * NetSurf web browser (0:/apps/netsurf) + * Manual pages (0:/os/man), readable via man command + * Service and system configuration (0:/config: init.toml, capabilities.toml, ssh.toml, ntp.toml) + * System CA certificates (0:/os/certs/ca-certificates.crt) + * Intel Bluetooth controller and Wi-Fi (iwlwifi) firmware (0:/os/firmware/intel) + * Third-party license texts and notices (0:/os/licenses) + * Tiny C Compiler (tcc) with MontaukOS headers and libraries (0:/sdk/tcc) + * Lua 5.4 interpreter (lua) with headers and static library (0:/sdk/lua) + * Montauk SDK - native GCC/G++ and binutils (0:/sdk) - SDK image only + * Flat Remix icon pack + * JetBrains Mono, Noto Serif, Roboto, and C059 Roman (open Century Schoolbook) TrueType fonts + * DOOM engine with SDL_mixer audio support (game data not included) + * Experimental HTTP server (httpd) and default page (0:/www/index.html) + * Default wallpaper - blossoms by Nikhil Kumar, Unsplash (0:/os/wallpapers) + MontaukOS 0.1.9 (August 13, 2026) (a28b8ad0b2932203b812e967f35f029f060fd6b5) diff --git a/kernel/src/Api/BuildNo.hpp b/kernel/src/Api/BuildNo.hpp index 0c359d8..47643ad 100644 --- a/kernel/src/Api/BuildNo.hpp +++ b/kernel/src/Api/BuildNo.hpp @@ -12,4 +12,4 @@ #pragma once -#define MONTAUK_BUILD_NUMBER 308 +#define MONTAUK_BUILD_NUMBER 1 diff --git a/kernel/src/Api/Info.hpp b/kernel/src/Api/Info.hpp index 24c02d0..0b318f3 100644 --- a/kernel/src/Api/Info.hpp +++ b/kernel/src/Api/Info.hpp @@ -17,13 +17,13 @@ namespace montauk::abi { // Copy strings into fixed-size arrays (user-accessible) const char* name = "MontaukOS"; - const char* ver = "0.2.0"; + const char* ver = "0.2.1"; for (int i = 0; name[i]; i++) outInfo->osName[i] = name[i]; outInfo->osName[9] = '\0'; for (int i = 0; ver[i]; i++) outInfo->osVersion[i] = ver[i]; outInfo->osVersion[5] = '\0'; - outInfo->apiVersion = 11; + outInfo->apiVersion = 12; outInfo->maxProcesses = Sched::MaxProcesses; outInfo->buildNumber = MONTAUK_BUILD_NUMBER; }