Development
(Last updated: 2007-12-24)
Table of Contents
Roadmap
The prex development phase is divided into the following 3 stages:
1) Version 0.1 - 0.4
Focus: Kernel Quality
- Port kernel to some different platforms
- Freeze primal kernel API
- Increase kernel stability
- Build driver framework
2) Version 0.5 - 1.0
Focus: Application Availability
- Develop standard system servers (boot, proc, fs, and exec)
- Build POSIX application framework
- Port shell or some valuable UNIX application
3) Version 1.1 - 2.0
Focus: Network Connectivity
- Develop networking server (net)
- Port various protocol stack
Current Ports
Prex currently supports the following platforms.
- i386-pc
- i386-nommu
- arm-gba (ARM7TDMI)
Current Status
Work Completed
- Task/thread control
- Round Robin & FIFO scheduler
- Kernel thread
- Idle thread
- Physical page allocator
- Kernel memory allocator
- Virtual memory allocator
- Memory protection (MMU)
- Shared memory
- MMU-less system support
- Object name space
- IPC messaging mechanism
- Nested interrupt service routine
- Prioritized interrupt service thread
- Dedicated interrupt stack
- Mutex with priority inheritance
- Deadlock detection for mutex
- Condition variables
- Counting semaphores
- Runtime quantum adjustment
- Alarm timer
- Sleep timer
- Periodic timer
- Device I/O interface
- Driver event broadcasting
- Kernel function trace
- Kernel dump function
- Event logging
- GDB remote stub
|
- Fault trapping
- Dynamic voltage scaling
- CPU voltage monitor
- Power policy
- System suspend timer
- System call library
- ELF task relocation by loader
- Recursive mutex locking
- Getting system information
- Kernel monitoring utility
- DPC (Deferred Procedure Call)
- dmesg - diagnostic message
- Timer hook service for driver
- 'configure' script for build
- File system server
- Embedded VFS
- devfs - device file system
- ramfs - RAM file system
- arfs - archive file system
- Boot server
- Process server
- Exec server
- Init process
- multi-threaded file system
- Signal emulation
- POSIX system call emulation
- cmdbox - embedded UNIX utils
- TTY
- libc embedded
|
Work In Progress
- fatfs - FAT file system
- Tiny shell
- ANSI-C comliant source code
- Capability based security
|
|
Plan for the Future
- Shared interrupt
- Execution in ROM (XIP)
- UNIX pipe
- Tick-less kernel
- High resolution timer
- Resource reservation
- Device object filtering
- Driver dependency support
- FPU support
- pthread library (subset)
- Directory name cache in fs
- OS image de-compression by boot loader
- Controlling resource limit
|
- Raw I/O permission in user space
- romfs - ROM file system
- isofs - CD file system
- ffs - flash file system
- procfs - process file system
- Remote driver update
- Core dump
- System call trace
- Realtime event analyzer
- Embedded TCP/IP
- Network server
- USB server
- Object proxy server
|
|