About Us | Contact Us

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