home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixlib36d / readme36c < prev    next >
Text File  |  1993-02-24  |  17KB  |  362 lines

  1.  
  2.                  W A R N I N G
  3.  
  4. The release of this document establishes public prior use of the name
  5. "ARMix" as referred to in this document. This document in it's entirety
  6. is (c) Copyright 1993 H.Rogers, all rights reserved. UNIX is a registered
  7. trademark of AT&T Corporation, Unix Systems Laboratories.
  8.  
  9.  
  10.                   N O T I C E
  11.  
  12. UnixLib v3.6c will be the _last_ release of UnixLib. UnixLib functionality
  13. will shortly be replaced by ARMix - a POSIX kernel extension to RiscOS
  14. with associated libraries. ARMix will provide virtual memory, preemptive
  15. scheduling, windowed terminals, full POSIX process and file management,
  16. BSD network library support, and support for an eventual port of the BSD
  17. filesystem. ARMix is scheduled for Alpha release in May 1993. Please
  18. contact the address at the end of this document for more information.
  19.  
  20. This version is being released as a stop gap measure to provide UnixLib
  21. users with some bugfixes. Do not base long term development on UnixLib
  22. any longer - it will shortly be obsolete and is no longer actively supported
  23. by the author. In particular code written for ARMix already providing
  24. superior functionality to UnixLib includes an interrupt driven POSIX compliant
  25. terminal driver with dynamically loadable hardware support modules, POSIX
  26. compliant RiscOS 3.10 filesystem interface, POSIX/BSD process management
  27. and signals, and a virtual memory system. The design of ARMix is completed -
  28. the work remaining is comparatively routine coding. UnixLib is very non
  29. compliant with POSIX - ARMix is written from scratch to be 100% POSIX
  30. compliant.
  31.  
  32.             H.Rogers    14/2/1993
  33.  
  34.  
  35.  
  36.             UnixLib v3.6c (29/8/1992)
  37.  
  38. This is a complete replacement ANSI compliant C library for use
  39. with Acorn RiscOS ANSI C Release 3.0/3.1A/3.1B/4.0. It incorporates a
  40. subset of the UNIX system call interface and some common System V and
  41. 4.3 BSD C libraries. There is *no* Acorn software in this library - take
  42. note Acorn! ;-)
  43.  
  44. Recent changes to UnixLib are documented towards the end of this file.
  45.  
  46. Directories marked '#' below contain proprietary source code. Source code
  47. in these directories is Copyright 1990/1991/1992 H.Rogers and XFM Software,
  48. and may only be distributed or modified in connection with UnixLib
  49. development. All other use or distribution is strictly prohibited.
  50. This entire paragraph and the list of directories below must be present
  51. in a file called "ReadMe" in a prominent place on all media used to
  52. distribute the aforementioned source code or derivations thereof. Failure
  53. to comply with the above requirements is breach of copyright and other
  54. international laws.
  55.  
  56.  
  57.     !Alias              * Alias file (see "ReadMe")
  58.     !Boot            !Boot for UnixLib maintenance
  59.     clib              * Library directory
  60.     clib.h              * UnixLib ANSI header files
  61.     clib.o              * UnixLib directory
  62.     clib.o.unixlib          * UnixLib itself
  63.     clib.sys.h          * UnixLib specific header files
  64.     etc              * UnixLib version of /etc
  65.     ReadMe              * Documentation for UnixLib - this file
  66.     src            Source code
  67.     src.ReadMe        Documentation for source code
  68.     src.o            UnixLib portable object code
  69.     src.c              # UnixLib portable source code
  70.     src.stdio.o        UnixLib stdio object code
  71.     src.stdio.c          # UnixLib stdio source code
  72.     src.unix.c        UnixLib UNIX emulation source code
  73.     src.unix.o        UnixLib UNIX emulation object code
  74.     src.sys.c        UnixLib RiscOS related source code
  75.     src.sys.s        UnixLib RiscOS related source code (ARM code)
  76.     src.sys.o        UnixLib RiscOS related object code
  77.     test            UnixLib test programs
  78.     test.ReadMe        Documentation for test programs
  79.  
  80.  
  81. Asterisked files/directories are those that are necessary to compile
  82. programs with UnixLib. If you are installing UnixLib onto a hard disk you
  83. are advised not to change the organization of the directory tree other than
  84. to move etc into the root directory, since updates will be issued with
  85. this structure.
  86.  
  87. !Alias *must* be executed before using this library. It contains necessary
  88. command line aliases that need to be set for the C compiler to work correctly
  89. with UnixLib. Comments in the file explain it. RTFM to see what the command
  90. line arg.s do. !Alias can of course be inserted into any other command file.
  91.  
  92. !Boot contains !Alias, and also sets up other aliases to facilitate
  93. maintenance of UnixLib. These are documented within the !Boot file.
  94.  
  95. All the header files, etc. are completely different from the Acorn
  96. equivalents. You *must* have the entire clib directory completely separate
  97. from any Acorn code or header files. If you do not have it called 'clib' in
  98. the root directory you may need to modify !Alias.
  99.  
  100. Csh style command line redirection is now inbuilt to UnixLib. UnixLib programs
  101. that are invoked direct from OS_CLI scan the command line for redirections at
  102. the same time as performing argument processing. UnixLib programs invoked as
  103. children of other UnixLib programs inherit the parent's file descriptor set
  104. (as in UNIX), and therefore do not perform this scanning. Redirection
  105. directives that are supported are: ">", ">>", ">&", ">>&", "<".
  106.  
  107. There are environment variables specific to UnixLib programs; some are new to
  108. v3.6c and others have had their names changed:
  109.  
  110.     Unix$uid: If set, then it's value is used to set the UNIX uid.
  111.  
  112.     Unix$tty: controls which terminal file programs use - if unset or set
  113. to "/dev/console" or "/dev/tty" then the console (Archimedes keyboard/screen)
  114. is assumed; if set to "/dev/rs423" then the RS423 port is used. Other names
  115. may be allocated in future for multiple serial I/O ports, Econet, etc. Note
  116. that these names may be used by UnixLib programs to open the corresponding
  117. devices.
  118.  
  119. All user settable environment variables particular to UnixLib are prefixed
  120. with Unix$ or UnixFS$. However certain state information internal to UnixLib
  121. is stored in variables prefixed with UnixLib$ - such variables should be
  122. ignored and not altered or deleted. UnixLib$dir (set by the !Alias command
  123. file in this distribution) is only used when compiling with UnixLib, and does
  124. not need to be set for UnixLib compiled programs to run.
  125.  
  126. The standard UNIX environment variables which control the behaviour of some
  127. of the C libraries are as normal - SHELL, TERM, TERMCAP, etc. Note that
  128. system() ignores the requirement for a shell if SHELL is unset, but calls
  129. SHELL with the '-c' option (as per UNIX) is it is set. I.e. if you have GNU
  130. bash in adfs::4.$.library you should set SHELL to "adfs::4.$.library.bash".
  131.  
  132.  
  133.     Filename conversion:
  134.  
  135. Programs compiled using UnixLib now intelligently scan pathnames (complex
  136. filenames consisting of components delimited by '/') and work out for
  137. themselves whether a RiscOS or UNIX initial component is being used. With
  138. very few exceptions existing RiscOS and UNIX applications will work
  139. without alteration.
  140.  
  141. Filename suffix translation can now be customised. The variable UnixFS$sfix
  142. can be set to a colon separated value list of filename suffixes that are to
  143. be aliased to RiscOS subdirectories. If it is unset the default list is
  144. "a:c:f:h:i:l:o:p:s:y". I.e. "hero.c" gets translated to "c.hero".
  145.  
  146. UNIX style pathnames can now contain RiscOS style components:
  147.  
  148.     /adfs::4/etc/passwd
  149.     adfs::4/etc/passwd
  150.     /adfs::4.etc.passwd
  151.     adfs::4.etc/passwd    all translate to:    adfs::4.$.etc.passwd
  152.  
  153.     <UnixLib$Dir>/clib/o
  154.     <UnixLib$Dir>.clib/o    all translate to:    <UnixLib$Dir>.clib.o
  155.  
  156.     <UnixLib$Dir>/clib.o    translates to:        <UnixLib$Dir>.o.clib
  157.  
  158.     /<UnixLib$Dir>/clib.o    translates to:        $.<UnixLib$Dir>.o.clib
  159.  
  160.     /SCSIFS::$/tmp/<Temp>    translates to:        SCSIFS::$.tmp.<Temp>
  161.  
  162.     $/clib
  163.     $.clib
  164.     /$.clib
  165.     /clib            all translate to:    $.clib
  166.  
  167.     @/clib
  168.     @.clib            both translate to:    @.clib
  169.  
  170.     clib            translates to:        clib
  171.  
  172.     ThisIsVeryLong##    translates to:        ThsIsVryLn
  173.  
  174.  
  175.     If there exists a directory called $.src.ulib.src.unix then:
  176.  
  177.     /src.ulib/src.unix/uname.c
  178.  
  179.     will translate to:
  180.  
  181.     $.src.ulib.src.unix.c.uname
  182.  
  183.     otherwise it will translate to:
  184.  
  185.     $.src/ulib.src/unix.c.uname
  186.  
  187.  
  188. Pathnames referring to UNIX devices (of the form "/dev/xxx") are treated
  189. specially and refer to appropriate devices. Unrecognised devices are
  190. translated to "xxx:". Current recognised devices are "/dev/tty",
  191. "/dev/console", "/dev/rs423" and "/dev/null".
  192.  
  193. Variables of the form UnixFS$/xxx are used to alias UNIX pathnames commencing
  194. "/xxx", "/usr/xxx" or "/