Commit Graph
104 Commits
Author SHA1 Message Date
danielandClaude Fable 5 54c0584b85 refactor: move the native devkit from 0:/usr to 0:/sdk (Montauk SDK)
0:/usr was a Unix transplant in an otherwise Montauk-native layout.
The SDK now lives at 0:/sdk/{bin,include,lib} (+ ldscripts under
0:/sdk/x86_64-montauk): Montauk-flavored, and a clean unit for a
future per-component installer tickbox. Native binutils is rebuilt
with --prefix=/sdk so ld's compiled-in search paths follow; future
ports configure with --prefix=/sdk.

Also add pathconf() with _PC_* names to the libc: now that realpath
exists, libiberty's lrealpath.c compiles its pathconf fallback path
unconditionally.

Shell command resolution and tab completion updated to 0:/sdk/bin.
Boot-verified in QEMU: setup, login, desktop on the new image with
zero usr/ remnants in the ramdisk.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-15 09:11:05 +02:00
danielandClaude Fable 5 bd9158fdcc feat: POSIX libc surface, native binutils (as/ld/ar run on MontaukOS)
Grow the Montauk libc enough to cross-build binutils 2.43.1 with
--host=x86_64-montauk. gas, ld, ar, nm, objcopy, objdump, readelf,
ranlib, strip and friends now link as native ET_EXEC Montauk binaries
(staged stripped in toolchain/native/, not yet shipped in the image).

New libc surface: full Linux errno and signal sets, O_* flags with
real O_EXCL/O_APPEND semantics, unlink/rmdir/dup/dup2/getpid/_exit,
kill (SYS_KILL), fcntl, fileno/fdopen, putc/getchar/rewind,
ctime/asctime, strtoll/strtoull/atoll, bsearch, mkstemp/mktemp,
realpath (lexical, drive-prefix aware), mbstowcs/mblen, chmod/fchmod/
umask/utime no-ops (VFS has no modes or settable times), full struct
stat with fake inodes, sscanf field widths (bounded conversions),
SCN*/PRI* completions, wait/waitpid over SYS_WAITPID, and new headers
sys/wait.h, sys/param.h, utime.h, wchar.h, memory.h.

fork/exec/pipe are declared but fail with ENOSYS: binutils never
spawns, and real process plumbing is the posix_spawn milestone, which
needs kernel support (exit status reporting, fd redirection).

TCC's montauk_compat.h shims (unlink, chmod, execvp, realpath, fdopen,
strtoll, strtoull) are retired in favor of the libc versions.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-14 10:55:39 +02:00
danielandClaude Fable 5 778f897f1a feat: x86_64-montauk userspace cross toolchain
Add build-montauk-toolchain.sh: builds an OS-aware cross GCC/binutils
(same versions and prefix as the bare-metal x86_64-elf toolchain) whose
x86_64-montauk target links static ET_EXEC binaries against the Montauk
libc sysroot with no special flags: 4 KiB max page size for the kernel
ELF loader, -mno-red-zone by default, crt1/crti/crtn + -lc from the
sysroot, __montauk__ defined. Target patches are checked into
toolchain/patches/, the GCC target header into toolchain/files/.

sys/types.h now includes <stdint.h> so hosted code (libgcov and
friends) sees intptr_t via the stdio include chain.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-14 10:19:35 +02:00
danielandClaude Fable 5 182520a585 feat: vblank IRQ and double-buffered page flip for Intel GPU
Add tear-free scanout to the Intel GPU driver: a second kernel-allocated
scanout buffer, DSPASURF flips latched at vblank, and a vblank interrupt
delivered over MSI (Gen 11+ master/display/pipe IRQ chain) with a
monotonic vblank counter and WaitVblank().

Expose it as SYS_FBFLIP (150): index selects the front buffer, -1
queries support, flags bit0 waits for the flip to latch. fb_map() now
maps buffer 1 right after buffer 0 when flipping is available, and
gui::Framebuffer draws to the off-screen buffer and flips with vsync,
falling back to the direct copy when unsupported.

Scanout is restored to buffer 0 when the flip-owning process exits and
on panic, so the terminal and panic box never land on the invisible
buffer.

Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-13 21:53:06 +02:00
daniel 857122c07c cleanup: rename shared libraries to remove 'lib' prefix 2026-07-08 10:12:32 +02:00
daniel ab8c24844e fix: fix desktop app loading cap 2026-07-08 10:00:45 +02:00
daniel 70702a21b0 feat: HWP scaling, C1E, closed-loop thermal governor for Intel CPUs 2026-07-05 10:51:11 +02:00
daniel 108538f60c feat: add RTL-SDR, R820t drivers, radio APIs, and sdr demo tool 2026-06-22 11:49:16 +02:00
daniel 18eb48e5df cleanup: purge unused sysinfo icon field from DesktopState 2026-06-21 14:33:50 +02:00
daniel 2897859c61 feat: auto-generate and verify TCC C API syscall numbers 2026-06-21 12:32:22 +02:00
daniel 41502ad35f fix: fix Terminal zoom inconsistency 2026-06-17 18:18:46 +02:00
daniel 43d43ac9ea cleanup: namespace Montauk (capital M) => montauk::abi 2026-06-16 09:09:16 +02:00
daniel b6ac5ac994 feat: allow MAC spoofing in Bluetooth stack, show paired devices in Bluetooth app 2026-06-16 08:49:06 +02:00
daniel 427876afa7 feat: filesystem and Files app support for >64 file entries, 64-bit sizes, async ops, GUI toolkit improvements to devexplorer app 2026-06-07 09:33:46 +02:00
daniel f0943d675f feat: disconnect Bluetooth devices, flush disks on shutdown/reboot, display progress in login.elf window 2026-06-06 18:27:19 +02:00
daniel d00c0deaf2 feat: add build numbering 2026-05-30 10:22:40 +02:00
daniel 651c60e065 feat: add Files app selection marquee, Properties dialog for multiple files 2026-05-26 18:27:31 +02:00
daniel c86e6b0215 fix: standardize scrollbars, fix scrollbar in TextEditor 2026-05-26 07:59:40 +02:00
daniel d5212d4838 fix: process-wide spinlock in userspace heap 2026-05-25 11:42:44 +02:00
daniel 2ea81843d4 feat: respect accent colors in more places in desktop 2026-05-24 21:29:59 +02:00
daniel 159fea1667 feat: add threading to Scheduler, fix desktop background selection freeze issue 2026-05-23 16:08:25 +02:00
daniel 8b8c8cee95 feat: audio mixer, Audio app, fix Installer crash 2026-05-19 07:48:09 +02:00
daniel 72b9bd681b feat: SVG support in Image viewer app 2026-05-18 20:07:37 +02:00
daniel 7cb1866998 feat: added Files app USB medium detection 2026-05-18 20:00:42 +02:00
daniel 54c60e7a81 feat: refresh button in Files, svg.hpp arc handling 2026-05-18 19:51:23 +02:00
daniel c20579afd3 feat: support for USB mass storage devices, hotplugging 2026-05-18 17:47:12 +02:00
daniel d340e01e56 feat: improve Terminal emulator performance 2026-05-16 09:33:30 +02:00
daniel 69a16a10a0 feat: MTK scrollbar widget, Wikipedia app improvements 2026-05-14 16:10:42 +02:00
daniel 6a2ef74496 fix: fix periodic freeze in print stack 2026-05-14 11:52:28 +02:00
daniel a7d5f4bf19 fix: dialogs library fixes, fix mangled name exports, fix libc exported by dialogs library 2026-05-11 20:31:17 +02:00
daniel dcdbcac1e0 feat: screenshot app improvement, WIndow Server supports full-screen overlay, Disks app UI improvements 2026-05-10 10:45:05 +02:00
daniel 60ee905552 fix: various bug fixes in desktop components 2026-05-07 20:00:17 +02:00
daniel f9df9eba4d fix: fixes for shell/Terminal issues and CPU burn 2026-05-06 22:04:57 +02:00
daniel 77408ff432 feat: improve MTK input boxes, right-click context menus 2026-05-06 08:03:14 +02:00
daniel af48ab0e1e feat: kernel network statistics reporting, new Network configuration applet 2026-05-03 10:45:33 +02:00
daniel 017a8a28ac feat: graphing in MTK toolkit, kernel exposes CPU time, Processes app Performance tab 2026-05-02 15:26:59 +02:00
daniel 14971e6f02 feat: architectural improvements for Apps and System Configuration virtual folders in Files 2026-04-30 16:51:08 +02:00
daniel 29034b792f feat: allow applets to be shared modules 2026-04-24 14:50:08 +02:00
daniel be67fce29a feat: system settings stored as applets in virtual folder 2026-04-23 15:36:03 +02:00
daniel 8c9ba7d0be feat: add message box dialogs 2026-04-22 18:44:25 +02:00
daniel 7fa2b6c54b feat: expose drive labels to userspace, render in Files 2026-04-22 07:45:33 +02:00
daniel 38b1f8a7ef feat: further kernel power and power optimizations 2026-04-21 20:51:12 +02:00
daniel 1560e0215b refactor: add website code 2026-04-11 09:34:55 +02:00
daniel c8b7b864d7 wip: add clipboard support 2026-04-09 20:44:52 +02:00
daniel c3a5a1c739 feat: make dialogs a shared library 2026-04-08 19:37:50 +02:00
daniel d5988cc48c feat: revamp libraries to use ELF shared objects 2026-04-08 18:35:32 +02:00
daniel 9e04e51daa feat: add process crash popups 2026-04-07 20:15:56 +02:00
daniel d05318c3bb feat: add syntax highlighting to edit command 2026-04-05 22:09:39 +02:00
daniel 4666e36dba wip: extend shared library support, window demo 2026-04-05 21:38:05 +02:00
daniel f1b49b3c4e wip: shared library support 2026-04-05 15:14:07 +02:00