5.3 KiB
5.3 KiB
T10: POSIX Task Management
Track: T10
Status: IN PROGRESS
Date: 2026-07-12
Source: UniversalisOS 12-Month Roadmap, Month 10
Overview
T10 focuses on providing robust POSIX-like process semantics for UniversalisOS. This includes implementing task_fork, task_waitpid, halt partition logic, and proper POSIX subsystem initialization.
Objectives
- Implement task_fork — Create child tasks with proper memory isolation
- Implement task_waitpid — Wait for child task completion
- Implement halt partition logic — Graceful partition shutdown
- Initialize POSIX subsystems — Proper posix_config.c initialization
- Address POSIX ABI memory management — Complete mm.h declarations
Tasks
T10-1: task_fork Implementation
Status: PENDING
Implement POSIX fork() semantics for UniversalisOS tasks:
/* Fork a new task */
pid_t task_fork(void);
/* Child task gets copy of parent's address space */
/* Parent task continues execution */
/* Both tasks return from fork() with different values */
Key Features:
- Copy-on-write (COW) memory semantics
- Independent address spaces
- Shared file descriptors
- Signal handling inheritance
TODO:
- Implement COW page tables
- Implement task state copying
- Implement return value handling
- Add fork() to POSIX ABI
T10-2: task_waitpid Implementation
Status: PENDING
Implement POSIX waitpid() semantics:
/* Wait for child task to change state */
pid_t task_waitpid(pid_t pid, int* status, int options);
/* Options: WNOHANG, WUNTRACED, WCONTINUED */
/* Status: exit code, signal, stop/continue */
Key Features:
- Wait for specific child or any child
- Non-blocking option (WNOHANG)
- Status reporting (exit, signal, stop)
- Zombie task cleanup
TODO:
- Implement task state tracking
- Implement wait queue
- Implement status reporting
- Add waitpid() to POSIX ABI
T10-3: Halt Partition Logic
Status: PENDING
Implement graceful partition shutdown:
/* Halt a partition */
int partition_halt(uint32_t partition_id);
/* Steps: */
/* 1. Stop all tasks in partition */
/* 2. Free all resources */
/* 3. Clean up memory */
/* 4. Notify hypervisor */
Key Features:
- Graceful task termination
- Resource cleanup
- Memory deallocation
- Hypervisor notification
TODO:
- Implement task termination
- Implement resource cleanup
- Implement memory deallocation
- Add halt to partition API
T10-4: POSIX Subsystem Initialization
Status: PENDING
Initialize POSIX subsystems properly:
/* Initialize POSIX subsystems */
int posix_subsystem_init(void);
/* Subsystems: */
/* - File descriptors */
/* - Signals */
/* - Timers */
/* - Message queues */
/* - Shared memory */
Key Features:
- File descriptor table
- Signal handlers
- Timer management
- IPC initialization
TODO:
- Implement fd table initialization
- Implement signal handler setup
- Implement timer initialization
- Implement IPC initialization
T10-5: POSIX ABI Memory Management
Status: PENDING
Complete POSIX ABI memory management declarations:
/* Already declared in mm.h (T8-2.1): */
/* - mm_mmap_guard */
/* - mm_mmap_aligned */
/* - mm_mremap_ex */
/* - mm_quarantine */
/* - mm_set_map_count */
/* - mm_set_accountable_limit */
/* Additional declarations needed: */
/* - mm_brk */
/* - mm_sbrk */
/* - mm_mlock */
/* - mm_munlock */
/* - mm_mlockall */
/* - mm_munlockall */
TODO:
- Add mm_brk declaration
- Add mm_sbrk declaration
- Add mm_mlock declarations
- Implement memory locking
Implementation Files
| File | Purpose |
|---|---|
kernel/src/core/abi/uos_posix_abi.cpp |
POSIX ABI implementation |
kernel/src/core/abi/uos_posix_abi.h |
POSIX ABI header |
kernel/src/core/task.h |
Task management |
kernel/src/core/task.cpp |
Task implementation |
kernel/src/core/mm.h |
Memory management |
kernel/src/core/mm.cpp |
Memory implementation |
Verification
- task_fork works correctly
- task_waitpid works correctly
- Halt partition works correctly
- POSIX subsystems initialize correctly
- Memory management declarations complete
TODO Summary
T10-1: task_fork
- Implement COW page tables
- Implement task state copying
- Implement return value handling
- Add fork() to POSIX ABI
T10-2: task_waitpid
- Implement task state tracking
- Implement wait queue
- Implement status reporting
- Add waitpid() to POSIX ABI
T10-3: Halt Partition
- Implement task termination
- Implement resource cleanup
- Implement memory deallocation
- Add halt to partition API
T10-4: POSIX Subsystem Init
- Implement fd table initialization
- Implement signal handler setup
- Implement timer initialization
- Implement IPC initialization
T10-5: POSIX ABI MM
- Add mm_brk declaration
- Add mm_sbrk declaration
- Add mm_mlock declarations
- Implement memory locking
References
universalisos/docs/UniversalisOS_Stubs_Resolution_Roadmap_12Months.md— 12-month roadmapuniversalisos/kernel/src/core/abi/uos_posix_abi.cpp— POSIX ABI implementationuniversalisos/kernel/src/core/mm.h— Memory management declarations