Will there be a port of WINE to OS/390 mainframe USS? LINUX runs fine under USS, so it would seem that WINE should run there as well. Has anyone done this yet?
Thanks
James Robinson
james.robinson@crowley.com
James.Robinson@crowley.com wrote:
Will there be a port of WINE to OS/390 mainframe USS? LINUX runs fine under USS, so it would seem that WINE should run there as well. Has anyone done this yet?
Linux does not run under USS. USS (Unix System Services) is an implementation of the Unix 95 (Unix 98?) API set on top of MVS (where it is known as Open Edition), OS/390, and now z/OS. USS is a prerequisite for the OS/390 Java Virtual Machine, WebSphere Application Server, and Lotus Domino among others.
In theory, USS also allows Unix applications to be easily recompiled for OS/390. The reality is that most applications of interest use non- standard APIs (be they Solaris, AIX, HP-UX, etc.); the ASCII to EBCDIC conversion also causes a lot of problems.
"Linux/390", on the other hand, is just the Linux kernel source compiled for the S/390 architecture--the same way it might be compiled for Alpha, UltraSPARC, PowerPC, MIPS, IA64, etc. (You do of course need a compiler that supports the S/390 instruction set; gcc does now.) "Linux/390" can be installed by itself on a S/390, in a LPAR, or as a VM guest. It uses the ASCII character set, although it does do ASCII to EBCDIC conversion for the hardware console.
Wine provides a PE (Portable Executable--the Windows executable format) program loader and a set of libraries that implement some of the Win32 API. This allows some Windows binaries to run unmodified on x86 *ix operating systems. (I suppose it might be theoretically possible to run an NT/Alpha executable on Linux/Alpha, but I don't know if anyone's ever tried.) Since Wine doesn't emulate the Intel processor, you can't use it to run Intel binaries on a S/390. (You might be able to use Bochs, however.)
Wine does have another personality, known as Winelib, that allows the source code for Windows applications to be recompiled as "pseudo-native" *ix applications. Instead of a Windows PE executable linked to Windows DLLs, you end up with an ELF executable linked to the Wine shared libraries. This can be used to port Windows programs to non-Intel architectures, although byte order and word size can be issues. So if you have the source code to your Windows application, you may be able to get it running on "Linux/390"--41,000 times under VM!
Will there be a port of WINE to OS/390 mainframe USS? LINUX runs fine under USS, so it would seem that WINE should run there as well. Has anyone done this yet?
Hi James,
If you are talking about WINE the Windows binary PE loader (directly supporting and loading windows .exe files) this will probably never happen, unless somebody wants to add intel emulation code into WINE. (at a significant speed penalty, of course)
If you are talking about WineLib, I believe that Ulrich made a post earlier this year mentioning getting at least a partial port of a WineLib app running on an S390. (I believe he mentioned getting Winemine to compile)
From the sounds of it there is still some work needed before WineLib will
build and run out of the box on that platform.
-James
-- James Hatheway Software Designer - Macadamian Technologies, Inc. james@macadamian.com ~ http://www.macadamian.com
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier" "One could be happy if the air were as pure as the beer"
James,
Will there be a port of WINE to OS/390 mainframe USS? LINUX runs fine under USS, so it would seem that WINE should run there as well. Has anyone done this yet?
To clear up a possible misunderstanding first: Linux for S/390 does *not* run under USS or under OS/390.
OS/390 is (one of) the standard operating system(s) used on S/390 mainframes. One component of OS/390, the Unix System Services (USS), provides an environment that allows to run certain Unix applications. However, USS is not itself an operating system, just an ABI layer on top of OS/390 (somewhat similar to the POSIX subsystem of Windows NT).
Linux for S/390, on the other hand, is a true port of the Linux operating system to the S/390 hardware. It runs directly on the S/390 platform, *instead* of OS/390 or any other mainframe operating system.
This has the effect that while USS is much more integrated into the OS/390 environment, Linux on S/390 is much more similar to 'real' Unix platforms. Porting Unix or Linux applications to USS is often non-trivial (e.g. gcc does not run on USS at all), while porting to Linux on S/390 is most of the time just a recompile.
What I want to say by that is that a port of Wine to *USS* seems rather unlikely, given the difficulties I mentioned. However, a port to *Linux* on S/390 should really be possible, and some time ago I already did a proof-of-concept implementation.
Of course, a port of Wine to any non-Intel hardware means just a port of the Wine *library* at the moment, as Wine does not contain a Intel processor emulator and cannot run Windows/Intel binaries on non-Intel hardware. James (Hatheway) has already explained this ...
Bye, Ulrich