Add contextswitcher.pas: naked IRQ0 ISR that saves full register context
(PUSHAD + segment regs), calls scheduler, switches ESP, IRETD into next process
Per-process 8KB kernel stacks with fake interrupt frame for first context switch
Process self-management: proc_yield, proc_sleep_ms, proc_await, proc_suspend,
proc_exit
Resource binding system with automatic cleanup on process death
Idle process (PID 0) as scheduler fallback
PS, KILL, TERMINATE terminal commands
Reaper for finished processes
TCP (RFC 793) - Started Implementation (merged in from feature/tcp):
Full TCP implementation (1881 lines): connect/listen/accept/send/close/abort
Multi-instance: each terminal is a heap-allocated TVTermState process with
it's own LVGL widgets, scrollback buffer (4KB), input line (1KB) &
command history (10 entries)
Commands execute as preemptive processes via processmanager.runCommand
Per-instance LVGL drain timer polls foreground process stdout/stderr
Background job support: launch with &, JOBS command, auto-reap on completion
Ctrl+C support: LV_KEY_CTRLC injected from LVGL keyboard handler, terminates
foreground process
Per-terminal working directory with filesystem builtins: CD, LS, PUSHD, POPD
Directory commands moved from global VFS registration to per-terminal builtins
Supporting Changes:
vfs.pas: add makeAbsolutePathFrom, resolvePathFrom, GetDirectoryListingFrom,
changeDirectoryFrom for per-terminal CWD support; remove global LS/CD commands
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Process Management:
APIs, round-robin scheduler with priority-based quantum (priority * 8 ticks)
Suspended/Awaiting/Finished), TProcessSysMsg, TResourceBinding for per-process
resource cleanup
(PUSHAD + segment regs), calls scheduler, switches ESP, IRETD into next process
proc_exit
TCP (RFC 793) - Started Implementation (merged in from feature/tcp):
VTerminal Rewrite:
it's own LVGL widgets, scrollback buffer (4KB), input line (1KB) &
command history (10 entries)
foreground process
Supporting Changes:
changeDirectoryFrom for per-terminal CWD support; remove global LS/CD commands
for TCP integration, storagemanagement/drivermanagement/cpu minor updates