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..
..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.