Skip to content

feat: add btop system monitor tab (F3) to kernel terminal manager#211

Merged
ryanbreen merged 1 commit intomainfrom
feat/btop
Feb 13, 2026
Merged

feat: add btop system monitor tab (F3) to kernel terminal manager#211
ryanbreen merged 1 commit intomainfrom
feat/btop

Conversation

@ryanbreen
Copy link
Owner

Add a third tab to the kernel terminal manager that displays live system monitoring data: process list, memory usage, uptime, and tracing counters. The monitor auto-refreshes every ~1 second using a tick-based check in the render thread.

Key changes:

  • Terminal manager extended from 2 tabs to 3 (Shell/Logs/Monitor)
  • F3 key and mouse click support for Monitor tab switching
  • render_btop_view() collects process data under try_lock, releases before formatting to avoid single-CPU ARM64 deadlocks
  • Render thread checks get_ticks() directly for refresh timing, avoiding feature-flag dependencies on timer ISR
  • Fix fork state transition: both ARM64 and x86_64 fork paths now call set_main_thread() to properly transition Creating → Ready
  • Revert init.rs to spawn bsh directly (not bwm)
  • Revert sys_fbmmap to always use left-pane-only mapping
  • Add lowercase a-z and symbol support to bitmap font
  • Add kernel log ring buffer, procfs additions, cpu_ticks field
  • Add standalone userspace btop.rs and bwm.rs programs
  • Add PTY infrastructure and libbreenix graphics wrappers

Add a third tab to the kernel terminal manager that displays live system
monitoring data: process list, memory usage, uptime, and tracing counters.
The monitor auto-refreshes every ~1 second using a tick-based check in
the render thread.

Key changes:
- Terminal manager extended from 2 tabs to 3 (Shell/Logs/Monitor)
- F3 key and mouse click support for Monitor tab switching
- render_btop_view() collects process data under try_lock, releases
  before formatting to avoid single-CPU ARM64 deadlocks
- Render thread checks get_ticks() directly for refresh timing,
  avoiding feature-flag dependencies on timer ISR
- Fix fork state transition: both ARM64 and x86_64 fork paths now
  call set_main_thread() to properly transition Creating → Ready
- Revert init.rs to spawn bsh directly (not bwm)
- Revert sys_fbmmap to always use left-pane-only mapping
- Add lowercase a-z and symbol support to bitmap font
- Add kernel log ring buffer, procfs additions, cpu_ticks field
- Add standalone userspace btop.rs and bwm.rs programs
- Add PTY infrastructure and libbreenix graphics wrappers

Co-Authored-By: Ryan Breen <ryan@ryanbreen.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ryanbreen ryanbreen merged commit ad97d2e into main Feb 13, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant