
phantomuserland
http://dz.ru/solutions/phantom/images/phantom_mask_small.png' align='right'>
Welcome
This is the Phantom OS project.
Phantom is an attempt to forget about how it used to be and design operating system from scratch, building a small simple and othrogonal subset of services, which will make programmer's life really easier.
- OS shutdown is invisible to user code - just as if nothing happened at all.
- No REQUIREMENT to use files - everything is persistent, so program state is not required to be serialized anymore.
- No separate address space walls between everything, but EVERY single object is protected from other's object code.
- Very efficient and easy high-level IPC (Access anything you have a pointer to. No, you can't create a pointer yourself - just receive it from outside.)
- OS provides a lot of modern high-level services such as SOAP, XML RPC, general conversion of object tree to XML and vice versa.
- No process, just threads.
- More. See some article on Google group.
What Phantom is not
We are not one more Linux clone. We are not one more microkernel per se. We're not "look dad, I have protected mode code working". We're after a KISS-principle based ortogonally-persistent environment, which will let programmers to work effectively.
How to run current kernel
NB! Don't expect too much.
- Download runPhantom.zip and latest classes.rar & phantom.rar.
- unpack all of them
- put unrared phantom and classes files to runPhantom/tftp subdir
- run zero_ph_img.cmd and phantom.cmd then - QEMU wiil start
How to contact us
If you want to take part in Phantom OS development, please contact Dmitry Zavalishin, dz@dz.ru. Add 'phantom' word to subject line, please!
See HowToTakePart.
Project Overview and Road Map
Read http://code.google.com/p/phantomuserland/source/browse/#svn/trunk/doc'>documents.
See RoadMap.
Project Progress
Oct 2011: ARM port is more stable now, can go on with drivers.
Sem 2011: Kernel profiler, some optimizations, ACPI lib import, graphical code progress.
Aug 2011: Procfs gives out stats and threads. Most of asm code for MIPS port is written.
Jul 2011: Disk IO cache for filesystems. Snapshot via new io stack (with partitions). Posix: cd/getcwd
Jun 2011: Generalized kernel object pool. Usrland POSIX regression tests. AHCI and USB drivers started. Floppy driver, new disk IO stack refined.
May 2011: Remote object debugger.
Apr 2011: First steps of mips/amd64 ports. 64 bit cleanup. Progress on Java2Phantom - switch.
Mar 2011: Code divided in portable and machdep parts. Arm port started. SNTP.
Feb 2011: Regression tests again, refinement of Unix processes code.
Dec 2010: Some progress on Java bytecode translator, more of regression tests.
Nov 2010: TCP, tiny ftpd, some reflections support in class files.
Oct 2010: Debugging tools, kernel events statistics.
Sep 2010: External fsck. BeOS/Haiku messages/ports.
Aug 2010: Phys mem page reclaim code.
Jul 2010: SMP support is basically implemented, but needs debugging.
Jun 2010: Snapshot engine is back!
May 2010: Running on real hardware for the first time!
Apr 2010: UI events, Z Buffer.
Feb 2010: Unix emulation started, first test usermode 'unix'-like thread is running.
Jan 2010: Trap/IDT, using elf symtab in stack dump.
Dec 2009: License clean (own, in short:) multithreading/scheduling code.
Nov 2009: First ARP packet is received and processed. UDP send seems to be ok as well.
Oct 2009: We have Java bytecode (including method call) compiled to Phantom bytecode. Compiler is very far from being complete, but first steps are done.
Sep 2009: Preliminary (but stable) GC is implemented. First time app code was able to work untill killed. :)
Aug 2009: First working Phantom kernel and userland program (which is Tetris:) was demonstrated at Chaos Constructions computer festival in S. Petersbourg, Russia.