“I can crack this! Or rather, fix it!”

More on V2_OS. [1] I wrote to them yesturday telling them the problems I encountered. I got the following reply:

V2_OS currently assumes a hard disk eventhough it doesn't do anything with it (it only looks at it to find partitions). This is a thing that should be removed…
It is completely harmless to run it on any PC, ant [sic] won't touch your HD's. The only commands you should not use is format and syscopy.

Even the Linux bootloader doesn't check for the existance of a harddrive!

I noticed they had a newer version of the disk image, so I downloaded that and tried it. Same result [2] as two days ago. So I figure, “Hey! I know assembly. This is written in Assemly. I can takle this. I can crack this! Or rather, fix this!”

I can say, yes, it's written in Assembly. Not very good Assembly. Or rather, it looks like it was written by someone under the mistaken notion that the 80x86 line is RISC-like in nature. There are many sequences like:

	Jcc	somewhere
	NOP
	NOP

On several RISC CPUs (like the MIPS) the instruction following a jump of control is executed; it's called the branch delay slot. The author here (and I'm not quite finished with the bootsector!) seems to think the 80x86 has a branch delay slot. Then there is:

	MOV	AL,[var]
	INC	AL
	MOV	[var],AL
	CMP	AL,somevalue

Grating. Come on … it should be:

	INC	byte ptr [var]
	CMP	byte ptr [var],somevalue

But there are a lot of sequences where data is loaded into a register, manipulated (simply) and stored back out to memory. Again, this is something common on RISC like CPUs, but the 80x86 line can manipulate memory directly, without having to load into registers.

Now, this thing claims to be the fastest OS for the 80386 and higher. I'd like to see it go against something like QNX. [3]

[1] http://www.v2.nl/v2_os/

[2] /boston/1999/12/08.1

[3] http://www.qnx.com/iat/index.html

Gemini Mention this post

Contact the author