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!