Bochs 1.4 is the latest release of Bochs, the popular x86 emulator. This version delivers features such as booting from a CDROM, VESA BIOS Extensions, improved networking, keyboard mapping for non-US keyboards, and a working serial port. You’ll notice several new buttons on the GUI, copy, paste, and snapshot, which let you copy text between the system clipboard and the Bochs screen. There is also a new cross-platform interface using the SDL library. In related news, VMWare has just released a beta of its upcoming VMWare 3.1 x86 runtime (VMWare is not an emulator like Bochs and VPC are, this is why it can’t be ported to any other architecture than x86 – however, by being a runtime, it is speedier than the emulators), while Connectix released its x86 emulator, Virtual PC 4.3, just 15 days ago.
I found VPC to be pull-your-hair-out slow. On a celeron 766 with 512MB it was still too slow. I can’t imagine an emulator even being that slow. But, don’t take my word for it, they have a free demo.
I’ve got an Athlon 1.2ghz running Win2k and Virutal PC works fine when Windows is the guest OS, but I have hell trying to run Linux as a guest OS. It works, but it’s slow and trying to get X to work seems damn near impossible.
Anyone who has tried running Virtual PC & VMWare in Windows, how do they compare ?
VMWare is very good for testing bootloaders
>Anyone who has tried running Virtual PC & VMWare in Windows, how do they compare ?
VMWare is way faster compared to both VPC and Bochs. I got all of them installed here.
The reason for VMWare’s speed is simply because it is a runtime, and not an emulator as Bochs and VPC are. By being a runtime, when a x86 instruction is requested by the guest OS, VMWare asks your x86 CPU to run it, so the overhead is only about 15-20% (which is the time VMWare passes the instruction to the CPU). VMWare emulates only some I/O functions, the rest are running “natively”.
With VPC and Bochs, they just emulate ALL x86s instructions that the guest OS asks for. This results them to be 70-80% slower than the real thing on the same hardware.
However, each product has its good and bad points. VMWare _can not_ be ported to any other architecture than x86, because it needs the x86 CPU to do the execution. While Bochs and VPC, being real emulators, have already being ported to other architectures, like the Macintosh. For VMWare to run on Mac for example, it will need a software/hardware solution, like a PCI card that has a full x86 CPU on it…
>PCI card that has a full x86 CPU
I think Sun sells those in order to run solaris and winnt on their wokstations
VMWare _can not_ be ported to any other architecture than x86.
——————
I’d hardly call that a bad point. If there is ever a VMware for, say PPC, it will only run PPC native guest Operating Systems.
While I haven’t tested it, Connectix claims that the performance hit is only 10-20% and that in their tests it performs comparably to VMWare. From what I’d thought I’d read, VPC x86 does <em>not</em> emulate the CPU, but rather only emulates all the hardware the CPU talks to–it’s somewhat closer in spirit to VMWare or SheepShaver than it is to Bochs, even though it has a higher abstraction level than VMWare does. VPC x86 is definitely <em>not</em> a port of VPC for Mac; it shares the name only because the effect is the same for the end user.
“With VPC and Bochs, they just emulate ALL x86s instructions that the guest OS asks for. This results them to be 70-80% slower than the real thing on the same hardware.”
I would say that 70-80% is a very ambitous statement – I’d say more 30-40% (on my box anyway).
Each time I apply a theme (say Mosfpet’s Liquid) to kde running inside vmware, the xserver stops working. Anybody know how to fix this?
… that Bochs have, is its debugger. AFAIK both VMWare and VPC do not have anything like that. The debugger basically allows you to trace, single step, place breakpoints, watch memory locations while the operating system runs.
If you are a kernel hacker of some kind, such ability to trace your code is awesome.
Other than Bochs, I know only of SimNow! and Simics offering debuggers.
btw, anybody know the status of Plex86?
>btw, anybody know the status of Plex86?
The project is dead. Mandrake has laid off Kevin some months ago, and he stopped working on it, AFAIK.
IIRC, the main reason why VMware has better performance than VPC-Win is that VMware emulates each device in its own thread (VPC is single threated). This helps alot on multiprocessor systems. (As already been said: VPC-Win does not emulate the CPU.)
The pros/cons I know about them are:
1. VPC
PRO: VPC emulates an S3 graphics card.
PRO: VPC has pretty cool Drag’n’Drop support for sharing files between Guest and Host.
PRO: Easy to use.
CON: VPC 4.2 (officially WinXP compatible) did not install on my WinXP system (don’t know if VPC 4.3 works).
CON: Bad performance on multiprocessor systems.
CON: Emulated HDDs have ALWAYS dynamic size – makes it impossible to install AtheOS (maybe also other OS’ that require you to partition the HDD)
??? (can be as well Pro and Con): No BIOS setup. –> No additional configuration possible, but the OS loads directly.
2. VMware:
PRO: Far better performance on multiprocessor systems.
PRO: Size of the emulated HDDs is static at runtime, but can changed at will when the emulated system doesn’t run.
PRO: Installs on my WinXP system.
CON: No real graphic card is emulated – just VESA.
??? (can be as well Pro and Con): BIOS setup. –> Additional configuration possible, but the OS doesn’t load directly.
Conclusion:
While VPC is more symathic to me (no exact reason for this), VMware seems to work better. But remember: VPC 4 is the first version for Windows – It will surely become better in the future (maybe 4.1/4.2/4.3 already solved most of the issues – I don’t know).
Can anybody compare VPC 5 (Mac) and VPC 4 (Win)? I’d like to know the differences (except CPU emulation).
BTW: I havn’t used VMware very much, while I used VPC during the testing period of the betas. I also used VPC 4.0 final a while under Win2k.
Under DOS (VPC) wipEout and Duke Nukem 3D run with full speed on a Duron 700. VPC had problems if a DOS application used cwsdpmi.exe (it was very slow).
Ideally if a native emulator were to work well, you would want the host OS to be able to execute as many instructions at native speed without rearrangement or copying, and trap everything that couldn’t be natively executed. It might be possible to design an OS environment that greatly facilitates this process, and I have given this idea some serious thought. I guess the best way to do it would be to be ultra restrictive on the client process, much more than you would for a typical VM in an OS. You would want to trap *all* non-user accesses, even calls to the OS and stuff. The memory map would need to be made extremely restrictive, with no gaps or overlaps with shared memory at all (event NT doesn’t do this) and absolutely all priveleged instructions trapped to an emulator perhaps running in another process.
This is something I’ve seriously thought of adding to PetrOS that would make it almost like a chameleon. I believe it’s been done in our OSes before… expecially some of the big mainframes out there.
P
Looks like plex86 hasn’t completely rolled over yet. It’s listed at Savannah GNU with new developers. For some reason
osnews dosen’t want me to use HTML, but read the msg at
http://savannah.gnu.org/forum/forum.php?forum_id=287
To run the code at full speed means that you arent emulating it, which may/may not be a problem. Like Dave mentionned, for some the point of the emulator is debugging. But yes, if you want to run another OS inside an existing one it could be as simple as restricting the thread to almost nothing, trapping the calls for things it requires and providing it. Dave did this with linux for Uuu. The biggest problem with this, for me, is that you can only run an OS which is made for the same processor/instructionset as what the native OS is running.
> CON: VPC 4.2 (officially WinXP compatible) did not
> install on my WinXP system (don’t know if VPC 4.3 works).
I think I had it working on XP.
> CON: Emulated HDDs have ALWAYS dynamic size – makes it
> impossible to install AtheOS (maybe also other OS’ that
> require you to partition the HDD)
Errrr… No they don’t I think just the defualt drive the VPC makes when you make a virtual machine are dynamic sizing if you go into the harddrive wizard you can make several types of partion including static sized HDD’s.
> But yes, if you want to run another OS inside an existing
> one it could be as simple as restricting the thread to
> almost nothing, trapping the calls for things it requires
> and providing it
The problem is x86 processors don’t do this very well there’s about 15 important instructions (can’t remember the exact number) that can be executed while not in kernel mode which means that you have to check every instruction to make sure it isn’t one that you don’t want executed. Then you can run it if it’s okay or run some code that masks the fact that the OS is running on a virtual machine. VPC and VMware both do this and it slow things down quite a bit.
I’ve always wonder if it would be posible to write an OS that mearly existed to run a program like VMware or VPC a bit like a real VMOS (such as OS/370) but still using the VMware method to run other OSes.
At least on my machine (Asus A7V133, AMD Duron 850, 256MB RAM, 7200RPM Disk)
I know it doesn’t sound logical, but there is a very visible difference between the two. My experience shows that VPC wins hands down.
I’ll make a few benchmarks and publish them here later on.
Prog.
Slightly off topic, Any one run Basilisk2?
I have been running MacOS8.5/Basilisk2 on W2K/Athlon800Mhz, it feels about 10x faster than PPC6100 @80MHz, & it boots in 5s instead of 90s. I have been away from Mac too long to know what Macs can do with PC HW, so I am feeding it .sit files through a Fat volume for now.
Any suggestions for MacOS, Basilisk, W2K add ons that can help MacOS mount Fat32, NTFS, or just see long names on Fat or even Win mount HFS volumes?
Here are some numbers about VPC (OS/2 version) performance. Tests was made with Win2K SP2 on VPC 4.0 (running on OS/2 v4.52) and Win98PL running native. Hardware was AbitKG7, TB [email protected], 256MB DDR.
Software was SiSoft Sandra Std Edition v2001.5.8.11
CPU:
Win2K VPC/2: Int=3799, Float=1856
Win98 native: Int=4300 Float=2101
Mem:
Win2K VPC/2: Int=540MB/s, Float=628MB/s
Win98 native: Int=665MB/s, Float=764MB/s
HDD:
Win2K VPC/2: drive index=10504 (buf.rd=74, seq.rd=15, rnd.rd=5, buf.wr=5, seq.wr=7, rnd.wr=7, acc=7ms)
Win98 native : drive index=12950 (buf.rd=46, seq.rd=21, rnd.rd=5, buf.wr=3.6, seq.wr=5, rnd.wr=5, acc=9ms)
So assumming Win2K is little slower than Win98 (due internal architecture) – You can see only modest impact on performance – for CPU is only 15% !!!
>I have been running MacOS8.5/Basilisk2
I don’t think you have. BasiliskII only runs MacOS up to MacOS 8.1, as this was the last 68k version of MacOS.
>Any suggestions for MacOS, Basilisk, W2K add ons that can help MacOS mount Fat32, NTFS
BasiliskII automatically mounts on the macos desktop the boot partition of the host operating system.
jj—You might want to check out the
Macintosh Emulation Forum over at Delphi,
its full of a great bunch of guys who’ve
been doing this stuff for a looong time,
(since 1999!!) and can probably answer all
your questions.
click this link:
http://forums.delphiforums.com/MacEmulation/start