.name
ixemul
.fullname
Unix Emulation Library
.type
Library
.short
Shared lib providing UNIX like environ.
.description
(by Markus Wild)

I always wanted a library, that would emulate as much as possible of a
**IX/BSD environment on the Amiga, so that programs (usually programming
tools) written for **IX/BSD could be ported in a quick and straight forward
way to the Amiga.  I guess the library accomplishes this goal fairly well.

What it is and what it isn't
============================

The design of the library was therefore guided towards **IX/BSD
compatibility, and *not* :
 o to be too conservative with resources 
 o to be particularly conformant to Amiga habits. Thus if I had to decide
   whether I should make a function act more like an Amiga function or
   more like a **IX/BSD one, I decided for the latter. As an example:
   _cli_parse() does wildcard expansion, and tries to apply more or less
   **IX/BSD shell semantics to an argument line, it doesn't call
   ReadArgs().
   The types used in my own source code are all from sys/types.h (except
   BPTR). I don't think capitalized identifiers should be used for typedef'd
   types. According to C-conventions, anything written in captials should
   be `#undef'inable, which typedefs aren't. Thus if you write contributions
   to be included into the official distribution of this library, code
   according to this. Use `u_char' and not UBYTE, etc. I don't care that
   this is against the Commodore coding standard, this is my code, and
   I decide what I like and what not.
 o to be particularly suited for inclusion into a shared library, although
   most things *are* shared now. What I'd really want for the Amiga is 
   the concept of a dynamic linker.

On the other hand, it should be:
 o expandable. As an example, a file descriptor already can refer to `real'
   files, directories, memory buffers treated as files. I plan to add 
   sockets in some next release (Commodore: please get out some examples 
   on how to use SANA-II stuff, so my sockets can be compatible!)
 o patchable. If you want some function to behave differently, you can
   SetFunction() it, and the rest of the library should use your new entry.
   NOTE: I used this only for major functions, that may reasonably change. 
	 I didn't call functions like strcmp(), strlen(), bcopy() that way for
         efficiency reasons (and my lazyness to change the whole string/
         and other libraries;-)))
   This version doesn't particularly follow this goal very well, mostly
   stdio is still the original BSD code, and doesn't use syscall()...
.version
41.1
.author
Markus M. Wild
.distribution
GNU Public License
.source
Includes source.
.docs
docs/README
docs/README2
.described-by
Fred Fish (fnf@fishpond.cygnus.com)
.submittal
Downloaded via ftp from wuarchive.wustl.edu.
