Ixemul.library
Encyclopedia
The ixemul.library is a software source-code compatibility library for Amiga
Amiga
The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...

. It allows software for Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 platforms to be easily compiled on Amiga systems with minimal source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 modification.

Description

The ixemul.library is a BSD
Berkeley Software Distribution
Berkeley Software Distribution is a Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995...

 4.3 Unix kernel running under the Amiga OS where the system API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 calls are then internally converted to native Amiga kernel calls. The API is specifically modeled against NetBSD
NetBSD
NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

, providing a similar system for process control, multitasking, file operations, signals, pipes and other messaging methods. The library provides this with low overhead, requiring roughly 200KB of memory.

Because the library resembles BSD Unix very closely most Unix-like programs can be compiled without modification (see limitations below). Programs that require BSD Sockets
Berkeley sockets
The Berkeley sockets application programming interface comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly for communications across a computer network....

 networking can use the related ixnet.library. Programs that include X Window
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...

 client support can use the Amiga port of X.

There is no general restriction against using both ixemul and Amiga native API calls simultaneously. However, using ixemul calls simultaneously with Amiga native API calls can cause problems.

History

The library was originally developed around 1991-92 by Markus Wild as an aid in porting the GNU Compiler Collection
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

 and PDKsh. Several incomplete source snapshots were made available online while he continued to release new binaries. When Markus shifted his attention to NetBSD development full time, development of the library stalled.

Around 1994, Rafael W. Luebbert produced a fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...

 of the project, gluing together different working parts of the public source code. This version soon became the de facto standard within the Amiga community.

A second fork of the project was later started by Leonard Norrgard. Due to overlapping version numbers, this resulted in some ambiguity between projects. The projects were later merged under a single maintainer, which is its current state.

MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

 has adopted ixemul.library as part of its system libraries.

Limitations

The library does not emulate the BSD system API in its entirety. Some of the signals, such as SIGSTOP
SIGSTOP
On POSIX-compliant platforms, SIGSTOP is the signal sent to a process to stop it for later resumption. The symbolic constant for SIGSTOP is defined in the header file signal.h. Symbolic signal names are used because signal numbers can vary across platforms....

, are missing. The use of some process control functions, such as fork
Fork (operating system)
In computing, when a process forks, it creates a copy of itself. More generally, a fork in a multithreading environment means that a thread of execution is duplicated, creating a child thread from the parent thread....

, cannot be fully implemented due to the Amiga's lightweight, non-virtual memory system; instead, more lightweight versions, such as vfork, are utilized.

The library does not claim POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...

 compliance.

The library does not act as emulator for BSD system calls when using pre-compiled binaries from other operating systems. Binaries from NetBSD/m68k and SunOS
SunOS
SunOS is a version of the Unix operating system developed by Sun Microsystems for their workstation and server computer systems. The SunOS name is usually only used to refer to versions 1.0 to 4.1.4 of SunOS...

/m68k remain incompatible.

See also

  • Cygwin
    Cygwin
    Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment...

  • Microsoft POSIX subsystem
    Microsoft POSIX subsystem
    Microsoft POSIX subsystem is one of 3 subsystems of several operating systems from the Windows NT family ....

  • Microsoft Windows Services for UNIX
    Microsoft Windows Services for UNIX
    Windows Services for UNIX or Subsystem for UNIX-based Applications is a software package produced by Microsoft which provides a Unix subsystem and other parts of a full Unix environment on Windows NT and some of its immediate successor operating-systems...

  • MorphOS
    MorphOS
    MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

  • UWIN
    UWIN
    UWIN is a computer software package created by David Korn which allows programs written for the operating system Unix be built and run on Microsoft Windows with few, if any, changes...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK