Fun with OpenServer 6 and MergePro

(This is a guest post by Antoni Sawicki aka Tenox)

In a recent post about OpenServer and Merge I covered OpenServer 5 and Merge 5.3. Thanks to a comment from Uli I have learned about MergePro which looks like is a rebranded Win4Lin. Intrigued I wanted to try it especially that you can download it from SCO ftp server as Uli pointed.

I’m going to be using VMware Fusion on Mac, which is now free for personal use. They call it Fusion Player, however unlike Workstation and Player, it has exactly same features as non-free Fusion version. For the OS I’m going to use Xinuos OpenServer 6 Definitive, however you can easily download OpenServer 6.0.0Ni from the ftp. I also have copies in my archive.

Installation is straightforward. You can skip licensing and use evaluation license, however for convenience you can use following keys:

Xinuos OpenServer 6D2M1: SCO053269 / ejcaagmy
SCO OpenServer 6.0.0Ni: SCO398943 / ysloudwl

If you are installing 6.0.0Ni you will also need MP4 update. 6D2M1 is already patched.

To install MergePro you need to copy this package to the host os and install like so:

# pkgadd -d /tmp/MergePro-6.3.0-04f_pkgadd.stream

In the following step, mount Windows 2000 or XP SP1 or SP2 ISO and run:

# loadwinproCD

Once Windows is loaded you need to install it as a non-root user using:

$ installwinpro

After it’s installed, to run you type:

$ winpro

Unfortunately I have failed to install Windows XP with variety of errors and blue screens. Windows 2000 works fine, however it feels bit sluggish and mouse click doesn’t always register. It looks like there are some sort of Windows Guest Additions being injected in to the OS so one would expect this to work just fine.

During startup I have noticed that MergePro installs and uses KQEMU kernel module. Also this screen looks suspiciously familiar… where did I see this before?

The BIOS and VGABios look definitely stolen from Bochs. HDD controllers look like Win4Lin. I’m not going to go in to deeper analysis of what MergePro is made of at this time. Looks like a topic for another article or even better – your comments 🙂

Also if you want to license the copy of Merge use following key:

MergePro 6.3.0f: SCO138318 / bhtecusg

Finally for the lazy here is fully installed OVA, password is root/root and tenox/tenox for the regular user.

UPDATE: Thanks to reader Larbob we now know that you can install any guest OS, on MergePro not only Windows! Use installwinpro -c /dev/cdrom/cdrom1 -w winxppro to boot the cdrom without checking what OS is actually on it. Here is a screenshot of Solaris x86 being installed on MergePro on UnixWare:

So.. you could install UnixWare as a guest VM under OpenServer or vice versa??

Thank you!

17 thoughts on “Fun with OpenServer 6 and MergePro

  1. Win4Lin/Merge 5.x was an interesting product, the last remains of technology developed by Locus Computing in collaboration with MS (seems like they had a shared source agreement for Chicago sources with them). But Win4LinPro/MergePro, is just a rebranded QEMU with licensing restrictions (not sure if QEMU terms back them allowed double licensing, but the rumors said that they couldn’t keep distributing Win4LinPro after some time, so it only got a few small updates and finally dissapeared in the sand of time) and bad performance.

    I can’t prevent to feel this like WSL vs WSL2 dilemma; WSL is an interesting technology, but WSL2 is just a boring, fancy HyperV VM.

    • I specifically like WSL because it’s GNU without Linux, as in you can run GNU/Linux ABI binaries without the kernel. I fully agree that WSL2 is just totally boring crap.

      I guess I need to dig in to MergePro to see if it really is QEMU based. MergePro uses KQEMU kernel mode accelerator but that doesn’t mean it’s repackaged or rebranded QEMU.

  2. I haven’t used Win4LinPro/MergePro, but share the skepticism of others.

    What made Merge/Win4Lin interesting is that we didn’t have hardware virtualization back then so keeping good performance was hard. The approach taken of replacing the DOS layer and having a shim driver for TCP/IP, video, mouse etc meant that the system didn’t really need virtualization in the classic sense – it can just run the code, full speed, and translate syscalls. As Windows “grew up”, this became harder to achieve and more invasive – it was clearly an approach designed for Windows 3.x that had been pushed into 9x by sheer force of will.

    With MergePro/Win4LinPro, trying to support NT, doing this just gets so much harder. It would require things like a file system driver, and a new boot loader (because the inbox one needs to read files to boot), and do this while retaining compatibility with Windows software. That gets harder as the system moves to NTFS and starts exposing far more capabilities to software than Win9x needed to consider, and where the underlying capabilities are not necessarily provided by the host.

    So – and having not used it I have no basis for this – I’m assuming MergePro has a hard disk image (correct?) If so, it has to emulate hardware devices to Windows, emulate ring 0/ring 3 semantics, which in turn requires examining the code, which qemu is doing by dynamic recompilation? Whether the code is derived from qemu or not, wouldn’t this require basically the same approach? The other option, which Win4Lin was doing, is static patching – but that doesn’t really work when service packs and updates become widespread. Although static vs. dynamic is separate from how devices are interacted with, it seems like another force that became present at around the same time.

    • Oh absolutely MergePro is a full system emulator unlike the previous versions. There is no doubt about that. I’m just unsure if it’s based on QEMU. It may very well be, but I have not dug deep enough to conclude that.

  3. MergePro / Win4Lin had some adventages compared to plain qemu.
    The Windows installation is nearly automated and you can access the windows file system from Unix since MergePro uses a plain directory instead of a binary hard disk image file as a file storage.
    Also there are some performance improvements compared to the free qemu.

    There was also Win4BSD and Win4Solaris which were the same product but for other Operating Systems.

  4. ” MergePro uses a plain directory instead of a binary hard disk image file as a file storage.”
    I don’t remember it doing that. In fact, it had a winhdd.pro to store install, and it had to use a dirty hack for text setup mode part of install so built-in IDE drivers wouldn’t corrupt the HDD image (” -win2k-hack”, very well know by qemu users)(is interesting all qemu derivatives had this hack, while VPC, VMware, PCEm and Boch’s don’t need it at all).

    • Just install the MergePro in OpenServer 6 and after the installation of Windows take a look into the “winpro” folder.
      There is no disk image like with other virtual machines, but for example a “Documents and Users” folder.

      • ftp://ftp.sco.com/pub/openserver6/600/other/mergepro.6.0f/Users-Guide.html

        “integrated: this mode makes the Administrator/Owner user account on Windows live as a “roaming profile”, so that user settings (as well as documents) are stored on the UNIX filesystem instead of inside the GUEST.IMG image file. This is the default mode for new Windows 2000 installations.
        NOTE: To ensure the best possible user experience, do not select integrated mode for Windows XP.”

        This explains the profile folder outside the guest image. But the rest of the system still resides in the winhdd.pro, as expected.

        “To install a guest session, login as a non-root user and use the following command:

        installwinpro [-d ] [-w ] [-g ] [-m ]

        guest-image-size defaults to “2038M”, or just under 2 gigabytes. You may specify a size up to 64 gigabytes, which will be used to hold the Windows session’s system and program files (C: drive). User Documents and Settings are stored directly on the UNIX filesystem and the storage size is limited only by the available disk space in your user home directory. ”

        NT can’t really be “merged” with Unix FS as happens with Win9x. The way NT access it is just too different how Win9X does. Fortunately it doesn’t require an extra partition as Netware for OS/2 does.

  5. If instead of calling `loadwinproCD` you do something like `installwinpro -c /dev/cdrom/cdrom1 -w winxppro` it won’t check what’s on the media and will instead just boot off of the media. Through this, I successfully installed Windows XP SP3 and it worked fine. I’ve also tried the latest NetBSD and OpenBSD, but both had issues (they’d install, but didn’t really work properly afterwards). For fun, I’m trying Solaris 10 now.

Leave a Reply