Task list

4 views
Skip to first unread message

Jon Taylor

unread,
Jul 15, 2011, 6:27:12 PM7/15/11
to perlos
Hi, here is my initial list of design and coding tasks to be
performed. This is my initial attempt to codify and specify the
specific sections of code and design necessary to implement the
general ideas laid out in the initial design document. I think I have
most if not all of the overall picture laid out here....

======================

PerlOS design notes

Subsections:

* Exception support
** Native trampoline
** Acessor functions
** Wrapper class support

* Virtual memory support
** Page table mapper
*** Native page allocator
** Heap linkage
** Native exception trampoline
** VM exception event generation

* Fast interlock support
** Monitor class integration
** Native trampoline

* Native object callout system
** Linker bridge
** Libelf wrapper classes
** Wrapper classes
** Native object related event generation

* Thread scheduler
** Threading classes (CPAN or mod?)
** Threading backend for monitor integration
*** Scheduling type support
**** Generic round-robin
**** [... other hard and soft scheduling types ...]
** Thread basic event generation

* Monitor support
** Monitor class
*** Monitor section classes
**** Schedulable primitive management
**** Scheduling policy type selector
*** Monitor/critical section integration
**** Primitive critical section filer (bottom end)
**** Critical section switch stack management
** Monitor condition event generation

* Interrupt handler
** Native top-half executor
** Perl-side top-half executor
** Bottom-half schedulable section
** Completion event generation

* DMA Handler
** DMA FIFO schedulable
** DMA completion events
** VM subsystem integration

* Critical sections
** Native critical section support
** Perl critical section primitives
*** Critical section execution event generation

* Timer support
** Minimum scheduling bound delivery
** Monotonic tick delivery
** Time-of-day support
** Timer event generation

* Event system
** Event management primitives
** Event management classes (CPAN?)
** Event polling and generation schedulable section
** Event callback classes

* JIT compiler subsystem
** JITter classes
*** JIT pluggable backend
** Native JIT class support
*** [... Native JIT types ...]
** JIT event type generation

* General PerlIO device driver backend
** PCI bus mapper
*** PCI allocator
*** AGP heap manager
** Device driver generic
*** Device classes
**** Video driver class
***** Textmode generic
***** Unaccelerated framebuffer generic
****** VESA generic
****** VGA generic
******* SVGA generic
******** [... Graphics hardware family specific ...]
********* [... Graphics hardware model specific ...]
***** DAC/video mode generic
***** Monitor/physical mode generic
***** Accelerator/command pipe generic
** ATA/IDE/SATA storage
** USB driver
*** USB host driver
*** USB HID driver
**** USB keyboard class driver
**** USB mouse class driver
** [... other physical IO layers ...]

* Filesystem support
** VFS generic
** FS Specific
*** Ext2 generic
**** Ext3 extended
**** Ext4 extended
** [... other FS types ...]

* Network support
** TCP stack basic
*** TCP extensions
** [... other protocols ...]

* Boot sequence
** Native boot
*** Native CPU init
*** Native device init
*** Native perl executor core load, uncompress and init
** Perl boot
*** Perl kernel load, uncompress and init
*** Boot initrd or device-mapped volume with uncompress
*** Execute initial process or section based on command line

Reply all
Reply to author
Forward
0 new messages