Check out the new USENIX Web site. Next Previous Contents

Linux Emulation for SCO

Ronald Joe Record (rr@sco.com), SCO
Michael Hopkirk (hops@sco.com), SCO
Steve Ginzburg (steven@ugcs.caltech.edu), California Institute of Technology

May 8, 1998


This paper describes some of the rationale and implementation decisions for lxrun, an Intel Linux emulator, plus how to get, build, configure and run it; what some of the current and future development issues and enhancements are and the current status of the project. There is not much difference between the execution environment required by Linux binaries and binaries for other Intel UNIX platforms, the main one being the way in which system calls are handled. For example, in Linux an "int $0x80" instruction is used, which jumps to the system-call-handling portion of the Linux kernel. On SCO systems, "int $0x80" is an unused vector and therefore causes a general protection trap resulting in a SIGSEGV signal. Lxrun intercepts these signals and calls the SCO equivalent of the system call that the Linux program attempted. It also remaps some ioctls, flags, return values and error codes. Using lxrun, a Linux binary can be run on a non-Linux platform with little performance penalty. Lxrun can also take advantage of the lower overhead in some Linux libraries, occasionally resulting in improved performance over native binaries. No kernel modifications are necessary.

1. Introduction

2. Implementation

3. Development Issues

4. System Call Mapping

5. Getting started

6. Web Presence

7. Authors and Contributors

8. About This Document


Next Previous Contents