Ostridge


Ostridge is an x86 emulator for linux. It is different from other emulators in that it uses the existing linux rather than running a second copy of linux inside the emulator. This should supposedly make it faster. Also, it uses a significantly simplified x86 emulation which includes only user-mode instructions and not stuff like segments which are not useful under linux.

News

A Fresh Start

Sorry that the project has not had any updates for a while, but I have been busy with other things, and it seems to have hit a dead end anyway. Now it is time to give up on the old way of doing things and write a proper modern JIT compiler. This approach will make the emulator nice and fast, and this is possible because most linux programs are compiled from c and thus nicely structured and easy to JIT-compile. Also, this code will be possible to optimize to take advantage of the fact that most cpu architectures have more registers and so on. There will be some documentation of my ideas for the JIT compiler's workings put up here once I have the time for this.
2003-07-30
The non-JIT version of ostridge is now officially abandoned. Work on the JIT version is going to start Real Soon Now.
2003-04-06

CVS

I have finally seen the light and decided to set up a cvs repository for storing the project files in so that everyone can access the very latest developments as soon as I think of them. You may access this repository on cvs.sf.net:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ostridge login
 
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ostridge co ostridge
2003-04-01
Ostridge 0.0.3 released today. It includes features such as a much improved instruction set and portability to non-powerpc. Coming soon are features like
2003-03-25
So, after a long and difficult battle with the complexity of the x86 instruction set, I've decided to go for expediency instead of correctness. With this minor architectural adjustment, I'll be able to do things much faster and easier. Specifically, in the emulator flags are only explicitly calculated after the cmp instruction and they are flags like "above" and "below" and "greater" and "less" and "sign" and "equal", which map more directly to the jump instructions and are way easier for me to think about. Furthermore, there will be a feature such that if a jmp is not preceded by a compare, it will be able to backtrack somehow, and recalculate the flags. Or just die horribly instead of giving weird unpredictable errors.

And a mandatory word from our sponsors:
SourceForge.net Logo
but hey, they're nice people for letting me use their resources and stuff and giving my project a wider audience.
Copyright © 2003 Arcady Goldmints-Orlov