Taos supports arbitrarily long path names, although it still limits each
component of a path name (as defined by the nonterminal <pname> in the
syntax defined in Section 2.6, page ) to 255
characters, as does Ultrix.
Taos supports access to remote files via kernel calls just as through the
OS interface. The kernel interprets path names starting with # as remote.
To access a file #foo in the current directory, use ./#foo instead. For
more information on remote path names see Section 2.6, page
. Any operation on a remote file may return EIO, signifying
that a remote file server call failed (see OS.RemoteFileEC). This may
cause programs that don't check error returns carefully to fail in strange
ways. Note that a remote file operation is not interruptable by an
asynchronous signal, so for example a Control-C may take a long time to
respond.
Taos allows an unlimited number of descriptors. However, the select kernel call limits its mask parameters to 32 bits, and the dup kernel call only duplicates descriptors less than 64.
Taos does not serialize the write kernel call with respect to reads and other writes of the same bytes of the same file.
Taos doesn't allow the root directory of the file system to be changed; the chroot kernel call returns EPERM unless called with a path name of / (and an effective user name of root).
Taos makes up the device numbers for file systems on the fly as file systems are accessed. These device numbers may be different on each boot of the system, although they will be unique and invariant during one run.
Taos maintains the atime, ctime, and mtime files attributes to the nearest microsecond. The times returned by the stat and fstat kernel calls include the microsecond information in the `spare' field following each time field. The atime field for a device file is not kept up to date. (This is for efficiency.)
Ultrix supports `holes' in files by not allocating disk storage for large unwritten regions, but Taos allocates and zeroes such regions.
Taos may allow more levels of symbolic links than Ultrix before returning the ELOOP error on a a path name lookup, especially when multiple machines are spanned. The length of the value of a symbolic link is unlimited.
Pipes on Taos support non-blocking I/O. A program can (but typically will not) be given a pipe with an internal buffer size different than 4096; a pipe created by the pipe kernel call always has a 4096-byte buffer.
Appendix D.10, page , lists the devices
supported by Taos.