.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()... Also included is ixtrace, a utility which lets you scan every call made through the library base when you install one of the *.trace versions of the library. .version 43.0 .author Markus M. Wild .distribution GNU Public License .source Includes source. .docs docs/README docs/README2 .described-by Fred Fish (fnf@amigalib.com) .submittal Submitted electronically by Hans Verkuil, the current ixemul maintainer.