Subject: Re: virtualization and a SCO openserver on NetBSD? vmware3?
To: None <netbsd-users@NetBSD.org>
From: Carl Brewer <carl@bl.echidna.id.au>
List: netbsd-users
Date: 10/12/2007 23:26:54
Brian A. Seklecki wrote:
> On Thu, 4 Oct 2007, Carl Brewer wrote:
> 
>> Brian A. Seklecki wrote:
>>> On Thu, 2007-10-04 at 10:53 +1000, Carl Brewer wrote:
>>>> Hello,
>>>> I've got a client with an old SCO Openserver5 box running a 
>>>> mission-critical app (it's an airport and it runs their operations, 
>>>> scary ... anyway ...)
>>>
>>> Don't we have the ability to emulate SCO/OpenServer binaries?:
>>>
>>>         compat_ibcs2(8) - setup procedure for running binaries that
>>>         conform to the Intel Binary Compatibility Standard 2, e.g. SCO
>>>         Unix and others derived from AT&T SVR3.
>>
>> I could give it a try, it's an old Progress (4GL) database, but I'd 
>> rather
> 
> As long as it doesn't require any special kernel hardware interfaces, 
> and just regular old POSIX I/O, you may have luck.  I've never used it 
> before.

I gave up (for the moment) trying to get this damn thing to work in a 
VM, so I'm going to try the NetBSD emulation.
After a bit of a read through compat_ibcs2 and setting up a tarball of 
the SCO box and untar'ing it accordingly.

I'm seeing this when I look at the binaries :

file _mprosrv
_mprosrv: Microsoft a.out separate pure segmented word-swapped 
not-stripped V2.3 V3.0 386 small model executable not stripped


And, maybe not that suprisingly, when I try and run that binary :

ylil-host: {52} ./proserve -d dmy -l 2048 -L 2048 /u/aam.y2k/aam
13:21:19 Server: SYSTEM ERROR: Memory violation. (49)


proserve is this :

more ./proserve
DLC=${DLC-/usr/dlc};export DLC
trap "" 1
exec $DLC/_mprosrv "$@"


So it's basically a wrapper around this binary.

Is ktrace likely to help much with trying to work out what's going on?
I've unpacked a tarball of the SCO box into /emul/ibcs2/
My kernel is GENERIC, which includes the IBCS2 emulation and a.out 
emulation.

How much is the system chroot'ed?  Is it smart enough to know that 
something run in /emul/ibcs2 (even a script) needs to look in that 
directory first,and prepend /emul/ibcs2 to environment variables etc?