SunOS and Solaris Emulation on UltraLinux

Pieter Krul, pkrul@auxio.org

v0.1, 25 Januari 2001

Table of contents

1. Legal stuff
2. Introduction
3. Kernel Configuration
3.1 Configuring Linux for SunOS
3.2 Configuring Linux on sparc for Solaris
3.3 Configuring Linux on sparc64 for Solaris
4. System Setup
5. Running Applications
6. Appendix
6.1 FAQs
6.2 Application List
6.3 Links
6.4 Credits
6.5 Glossary

1. Legal Stuff

The entire contents of this document are copyright 2000-2001 by Pieter Krul, all rights reserved.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license can be found at http://www.gnu.org/copyleft/fdl.txt.

2. Introduction

Allthough much native Linux software exists today, it may be wishful to run certain applications on your Linux machine that are only available for SunOS and/or Solaris.

This document provides information on how to set up an UltraLinux system in order to be able to run SunOS and/or Solaris binaries on Linux.

3. Kernel Configuration

There is a major difference between the binary formats used in SunOS and Solaris programs. SunOS uses the a.out (Assembler Output) binary format, which is the original executable format for UNIX, while Solaris and Linux use the ELF (Executable and Linking Format) binary format. The Linux kernel can 'understand' both formats, kernel support for a.out format is only needed when you need to run SunOS binaries.

The options that should be enabled while configuring the kernel are CONFIG_BINFMT_AOUT32 and CONFIG_SUNOS_EMUL for SunOS, and CONFIG_SOLARIS_EMUL for Solaris binary emulation.

3.1 Configuring Linux for SunOS

Kernel support for 32-bit (ie. SunOS) a.out binaries
CONFIG_BINFMT_AOUT32
  This allows you to run 32-bit a.out format binaries on your Ultra.
  If you want to run SunOS binaries (see SunOS binary emulation below)
  or other a.out binaries, say Y. If unsure, say N
SunOS binary emulation (CONFIG_SUNOS_EMUL) [N/y/?] ?

CONFIG_SUNOS_EMUL:

  This allows you to run most SunOS binaries. If you want to do this,
  say Y here and place appropriate files in /usr/gnemul/sunos. See
  http://www.ultralinux.org/faq.html for more information. If you want
  to run SunOS binaries on an Ultra you must also say Y to "Kernel
  support for 32-bit a.out binaries" above.
SunOS binary emulation (CONFIG_SUNOS_EMUL) [N/y/?] y

3.2 Configuring Linux on sparc for Solaris

3.3 Configuring Linux on sparc64 for Solaris Solaris emulation on Linux can be achieved by loading a kernel module called solaris.o, which is only available on sparc64.

Solaris binary emulation (EXPERIMENTAL) (CONFIG_SOLARIS_EMUL) [M/n/y/?] ?

CONFIG_SOLARIS_EMUL:

  This is experimental code which will enable you to run (many)
  Solaris binaries on your SPARC Linux machine.

  This code is also available as a module ( = code which can be
  inserted in and removed from the running kernel whenever you want).
  The module will be called solaris.o. If you want to compile it as a
  module, say M here and read Documentation/modules.txt.
Solaris binary emulation (EXPERIMENTAL) (CONFIG_SOLARIS_EMUL) [M/n/y/?] y

4. System Setup

All SunOS and Solaris binaries, libraries and devicefiles are by default expected to exist in respectively /usr/gnemul/sunos and /usr/gnemul/solaris.

5. Running Applications

6. Appendix

6.1 FAQs

6.2 Application List The next table shows programs that have been tried:
NameVersion StatusOS/Version HomepageComments
AcroRead-NOSolaris 2.6 www.adobe.com_sys_thread_create() failed, errno = 89
ArcInfo8OKSolaris 2.6 www.esri.com-
GNU GCC2.95.2OKSolaris 2.6 www.gnu.org-
Matlab-NOSolaris 2.6 www.mathworks.comStart script only supports lnx86
McAfee Antivirus-OKSolaris 2.6 www.mcafee.com-
Nedit5.xOKSolaris 2.6 www.nedit.org-
Sophos Antivirus-OKSolaris 2.6 www.sophos.com-
StarOffice-NOSolaris 2.6 www.sun.com_sys_thread_create() failed, errno = 89
A number of logfiles can be found here. Notes can be found here.

6.3 Links

6.4 Credits

6.5 Glossary