rabbit
  • ufm

Вопрос

Дим, вопрос к тебе, как к идеологу. Скажи, а в Фантоме предусмотрено понятие "транзакция"? Грубый пример что я имею в виду:

A = 5;
B = 6;
C = 0;
D = 7;
try {
A = 10;
B = 12;
D = B / C;
} catch {
// Вот в этой точке хотелось бы иметь возможность откатить всё, что мы понаделали в try{}.
}

Понятно что мы живём в однонаправленном мире, но ты же всё равно как-то с этим бороться собираешься.
  • dz

(no subject)

Kernel stats, some 10 min uptime.

Statistics     		per sec	     total	total/sec
Interrupts          	    111	    140930	       229
Pageins             	      1	      5240	         8
Pageouts            	      0	      4687	         7
Snapshots           	      0	         2	         0
SoftIRQ             	     67	     51143	        83
TCP recv            	      0	         0	         0
TCP send            	      0	         0	         0
UDP recv            	      0	         1	         0
UDP send            	      0	         2	         0
PhysMem Alloc Pages 	      1	      2778	         4
PhysMem Free Pages  	      0	       597	         0
VirtAddr Alloc Pages	      0	      3242	         5
VirtAddr Free Pages 	      0	       316	         0
LoMem Alloc Pages   	      0	        48	         0
LoMem Free Pages    	      0	         0	         0
DNS requests        	      0	         1	         0
DNS answers         	      0	         1	         0


Address space :    64 Mb,    51 Mb free,    12 Mb used
Hi mem        :    48 Mb,    37 Mb free,    10 Mb used
Low mem       :   624 Kb,   432 Kb free,   192 Kb used
  • dz

Project news

I'd like to thank new Phantom team members and tell a little about our progress.

- We're back to java to phantom tranlator: Irek Akhtyamov committed new builds which are more or less cover integer math, some string ops and some of the flow control. Far from finish, but quite far from start as well. :)

- Max Filippov fixed snapshot code and persistence is back and working better than ever - at least, faster. Still, a lot of work there.

- Seva Gluschenko and me working on kernel regression tests. Most of QUEMU-based test environment is ready, and we have some tests for quite low level kernel primitives and services. Still, TONNS of uncovered code.

- OS is tested on real hardware. Successfully. Still, need some test farm and test suite for running tests on real PCs.

- It is possible now to build and run kernel with Linux - and, potentially - anu Unix with i586 GCC and QEMU.

In more general words - kernel is close to be complete. Not finished - there's still huge amount of wiork needed - but complete in terms of basic features. We're looking forward to continue work on userland and programming environments(s).
  • dz

Call for contributors

Last progress - we're back to working snapshots and restarts.

Still, a lot of kernel code is to be written and even more to debug, but it is possible to move further now.
So if you want to take part - please do.

OS sources are available at google code.

A. We need comipiler guru.

Things to cover:

1. Java 2 Phantom bytecode translator. We have skeleton of that, and need it to be full-functional - for example, to be able to successfully translate TreeMap class.

2. Phantom language compiler. It is incomplete and code is old and junky.

3. Later we'll have to think about direct Javascript compiler and JIT.

B. Drivers man.

We need to port in and/or finish/debug USB, virtio and, finally, some video drivers.



C. We need regression tests.

We have test suitre and some tests are written. Need more!



  • dz

First binary published

Well. Phantom kernel binary is made public.

NB! This is NOT EVEN ALPHA.

Generally I recommend to ignore it. Really. I insist. :) It is VERY preliminary and is not good for any practical purpose. Functionally this release is nearly just the same as was shown Sep 2009 at HiLoad. (Well, it has more functions inside, but you can't see 'em:)

This release just marks the moment when Phantom became clean of imported code with incompatible licenses. Current code is either mine (some 90%), or taken from source which permits code use for any purpose. It is mostly NewOS code (networking) and Mach code (386 related things).

Release per se is running in QEMU under Windows and contains kernel and one test app (Tetris-like demo).

NO SNAPSHOTS / PERSISTENCE in this release. (It is there, in fact, but is turned off on app level - I didn't check it for a few months.)

Userland code can be replaced (see tftp/classes bundle) to run your userland code.

Phantom binary can be downloaded here

Once again - I REALLY do not recommend to download it.