phantomuserland


Phantom OS

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.

Project Information

Labels:
os phantom