System information

BSD
This section describes changes and enhancements the BSD APIs provided in Mac OS X.
The performance and stability of the tcpdump program has been improved to reduce the likelihood of crashing
while monitoring network traffic. (r. 2936063).
The ulimit routine for controlling process limits is now supported. (r. 2933221).
The BSD lockf() routine has been added. (r. 2926584).
Flat File host searches now read all the way through /etc/hosts. Now, if a host has multiple addresses (say, an
IPv4 and IPv6 address or it has multiple interfaces), there will be multiple lines in the file for that host, and the
search won't stop at the first hit. (r. 2922759).
A problem where shmat would fail with a permission denied error when it was attempted by root has been
corrected. (r. 2910913).
The bzip2 command has been added to the BSD user commands. This tool handles .bz2 compression files. (r.
2903204).
fs_usage was updated to allow reporting of physical disk I/O. There are 3 main categories of disk I/O that can be
reported using fs_usage: Data, MetaData and Paging operations each of which is either synchronous (implied) or
asynchronous (called out). These physical operations will not show up when tracing a single process (since they
can't be attributed to any particular process). Using the -e option works around this. (r. 2891010).
Fixed a bug that could cause getpwuid to return the wrong user when a NetInfo user and a local user had the same
UID. This correction only applies to cases where the user logged in with the "short" login name (r. 2890314).
Added the APIs getgrnam_r(), getgrgid_r(), getpwnam_r(), and getpwuid_r(). (r. 2885989).
A declaration for the type 'struct timespec' has been added to the header file /usr/include/time.h. (r. 2883165).
declarations and implementation has been provided for the Libc time functions timelocal, asctime, difftime,
localtime, strftime, and strptime. (r. 2882786).
the ld tool has been updated to produce an error message when an attempt to produce an object file with more than
255 sections is made. There is a limit of 255 sections in an object file. However, ld(1) can create object files with
more than 255 sections, which creates unusable object files. We now generate an error message indicating "too
many sections used, maximum is 255". (r. 2882553).
fs_usage has been updated to report the following calls: mkfifo, chhdir, fchdir, utimes, futimes, chroot, undelete,
delete, revoke, fsctl, load_shared_file, and copyfile (NOTE: Several of these commands do not have man pages at
this time (r. 3035842)). (r. 2881912).
The routines pread(), pwrite(), getsid(), and getpgid() are now exported from Libc. (r. 2880097).
the BSD call new_system_shared_regions() is now exported from Libc. (r. 2870742).
The routine posix_madvise() is now exported from Libc. (r. 2869420).
Added support for the BSD calls: sigrelse() and sighold(). (r. 2867958).
Updated printf so that it now supports C99 printf format modifiers. (r. 2867110).
The a64l() routine is now exported from Libc. (r. 2866840).
The thread safe implementation of strtok(), strtok_r(), is now exported from Libc. (r. 2866805).
The thread safe implementation of rand(), rand _r(), is now exported from Libc. (r. 2866795).
MAXLOGNAM is now set to MAXNAMLEN instead of the number 12. This change increases the maximum user name
length. (r. 2863236).
The routines strtoll() and strtoull() are now exported from Libc. (r. 2859956).
The BSD 4.0 routine fflagstostr() is now exported from Libc. (r. 2857680).
The BSD routines strlcat() and strlcpy() are now exported from Libc. (r. 2847856).
The routine mkdtemp() is now exported from Libc. (r. 2846729).
The routines basname() and dirname() are now exported from Libc. (r. 2843401).
Cron jobs now use the new BSD program "periodic" for scheduling. (r. 2842289).
Python 2.1.1 is now installed with Mac OS X. (r. 2839813).
inetd is being replaced with xinetd. xinetd offers a much easier way of adding, deleting or modifying entries in the
inetd daemon list. Rather than editing a single file, /etc/inetd.conf, a directory can have xinetd 'modules' dropped
into it or removed in order to change the configuration, making it much easier to modify system behavior. In Mac
OS X 10.2, inetd is still running for compatibility reasons (r. 2961142) with xinetd alongside it. This is a