Thanks to Jim Paradis, it is now possible to run Linux/x86 binaries on your Alpha box. The em86 emulator is based on the FX!32 emulator/binary translator Digital produced for Windows NT. (Unfortunately the second part is not available for Linux.)
The emulator is currently considered beta-quality, but it works very
well for applications such as Netscape or Applix. At present, a UDB
may not be fast enough for em86 (depending on your patience, of
course) but anything starting at a 300MHz 21164 should do nicely.
(If you are not satisfied with the speed, but happen to own a Digital Unix
license for your machine, you may want to take a look at the next chapter.)
A future version of em86 may include the ability to redirect
shared-library calls to the native libs, rather than load the x86 versions
which must be run through the emulator. This will not only improve the
speed, but also save you a lot of discspace.
See the em86 ftp directory for details. The README file will provide you with all the info you need to install the emulator. Note that for kernel version 2.0.30 the em86-patches are included in the alpha-patches at gatekeeper, which may save you some work.
Here is what you can do with em86..
Application Notes
EM86 has been tested on numerous test cases and small
applications (xtetris, for example). In addition, three
major packages have been verified to run to varying
degrees under EM86. Following are notes on each package.
__________________________________________________________
Application___________Notes_______________________________
Netscape Navigator Install Netscape Navigator Gold
Gold 3.01 as per the supplied installation
instructions.
_____________ WARNING_____________
DO NOT under ANY circumstances enable
Java or JavaScript until further notice.
Attempting to use these WILL crash your
browser. While this is a known problem
even under Linux/x86, none of the suggested
workarounds improved the situation. We are
currently investigating this problem.
__________________________________
If Netscape has trouble locating
Internet hosts, but you can ping
these hosts from the command line,
try installing an /etc/nsswitch.conf
file.
Adobe Acrobat Reader Use the supplied install procedure
3.0 to install Acrobat Reader. With
the em86-patch applied to your
kernel, this application should
run normally. Otherwise, you will
need to modify the script
/usr/local/Acrobat3/bin/acroread
to use EM86 to invoke the acroread
binary.
Applixware 4.2 Because Applixware uses rpm for
installation, you must override
the architecture check. (rpm does
not normally allow you to install
the binaries for one architecture
onto a machine of a different
architecture). To override, copy
the install script from the CD to
a writable location, then edit the
script to supply the "-ignorearch"
flag to rpm. Since Applixware has
binaries that invoke other binaries,
you need to apply the em86-patch
to the kernel for it to run. Since
Applixware pushes lots of data on
the stack, you also need to apply
the traparg patch to the kernel.
..and here is what you cannot..
Restrictions
The EM86 restrictions are as follows:
o EM86 emulates user-mode code only.
o EM86 cannot run programs that access virtual memory
above the address 78000000.
o EM86 does not now, nor will in the future, support the
following system calls: setup, break, ptrace, stty,
gtty, prof, acct, phys, lock, mpx, ulimit, profil,
ioperm, iopl, idle, mx86, modify-Ldt, create_module,
init_module, delete_module, get_kernel_syms, bdflush,
afs_syscall, and sysctl.
o EM86 0.9.1 does not support the following system
calls that will be supported in future releases: mount,
umount, uselib, old_readdir, sysinfo, ipc sigreturn,
clone, adjtimex, quotactl, sysfs, flock, msync, mlock,
munlock, mlockall, munlockall, sched_setparam,
sched_getparam, sched_setscheduler, sched_getscheduler,
sched_yield, sched_get_priority_max, sched_get_priority_min,
sched_rr_get_interval, nanosleep, and mremap.
And if you don't care to spend all those CPU cycles while your Alpha pretends to be an Intel CPU, then the next chapter shows you an other way to make many applications available.