Development
(Last updated: 2009-10-01)
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 h/w 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 applications
- Improve OS security
3) Version 1.1 - 2.0
Focus: Network Connectivity
- Develop networking server (net)
- Port various protocol stacks
- Support more h/w platforms
Current Ports
Prex currently supports the following platforms.
Table 1. Support Platforms
Name |
Arch |
Platform |
Emulator |
Toolchain |
x86-pc |
IA32 |
PC |
Bochs, QEMU, VMware, Virtual PC |
GCC, PCC, SunCC |
x86-pc |
IA32 |
PC (MMU-less) |
Bochs, QEMU, VMware, Virtual PC |
GCC, PCC, SunCC |
arm-gba |
ARM7TDMI |
Game Boy Advance |
VisualBoyAdvance |
GCC, DevKitAdvance |
arm-integrator |
ARM9 |
Integrator/CP |
QEMU |
GCC, YAGARTO |
ppc-prep |
PowerPC |
PReP (MMU-less) |
QEMU |
GCC |
Project 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
- Alarm timer
- Sleep timer
- Periodic timer
- Device I/O interface
- Event logging interface
- Fault trapping
- System call library
- Dynamic voltage scaling
- CPU voltage monitor
- Power policy
- System suspend timer
- LCD off timer
- ELF relocation by task loader
|
- Recursive mutex locking
- Getting system information
- Kernel monitoring utility
- DPC (Deferred Procedure Call)
- dmesg - diagnostic message
- 'configure' script for build
- File system server
- Embedded VFS
- devfs - device file system
- ramfs - RAM file system
- arfs - archive file system
- fatfs - FAT file system
- fifofs - FIFO file system
- UNIX pipe
- Boot server
- Process server
- Exec server
- Init process
- Power server
- multi-threaded file system
- Signal emulation
- POSIX system call emulation
- CmdBox - embedded UNIX utils
- TTY
- libc embedded
- ANSI-C comliant source code
- Capability based security
- Resource limit
- Tiny shell
- Pathname-based access control
- fstab - file system table
- Shell script loader
|
Work In Progress
- Kernel debugger
- System call trace
- Disk management utility
- New driver framework
|
|
Plan for the Future
- Shared interrupt
- Execution in ROM (XIP)
- Tick-less kernel
- High resolution timer
- Device object filtering
- FPU support
- pthread library (subset)
- Directory name cache in fs
- OS image de-compression by boot loader
|
- Raw I/O permission in user space
- romfs - ROM file system
- isofs - CD file system
- ffs - flash file system
- Embedded TCP/IP
- Network server
- USB support
|
|