System information
binary. Arbitrary levels of aliasing through codeless kexts are supported. (NOTE: This only works for run-time
kext loading. The boot-time loader does not yet support this feature.) (r. 2894843). (r. 2894843).
If kextd or kextload is launched in safe boot mode (shift key down), it will not use the info dictionary cache and will
instead re-scan the kexts themselves. (r. 2887998).
dyld now correctly handles unknown load commands with the LC_REQ_DYLD bit set. (r. 2882932).
A problem where the routine thread_sleep_mutex() was returning an invalid value has been corrected. (r.
2863728).
The criteria for kernel preemption has been expanded to tasks running in the application band, and those member
threads with +importance that are not timeshared. (r. 2862611).
A race condition inside of the routine wait_queue_remove() that could cause unpredictable behavior for threads in
an un-interruptible wait state has been corrected. (r. 2857550).
The kextload command now allows more than one kext argument to be specified. (WARNING: Utilizing this feature
may make error diagnostics difficult as any returned error exit status is ambiguous for multiple kexts.) (r.
2854652).
The maximum limit for malloc was too small. This has been increased to a limit of 2.5 GB for the text, data, and
heap and the default stack can be up to 509 MB (r. 2848946). (r. 2848945).
In order to reduce application launch times, the kernel now maintains information about the working set of an
application between launches (in "/var/vm/app_profile"). Pre-heat files are meant to be transparent to the user;
however, developers who are constantly re-working their applications may find that their pre-heat files are
getting large. The files may become clogged with out-of-date profiles on applications who's versions have changed.
As a result, developers may find that it is good to clear out the old pre-heat files on test machines once in a while.
To do this, become super-user and do a rm -r /private/var/vm/app_profile and then reboot. app_profile is the
directory which contains the profile files. The directory is automatically re-created on reboot. (r. 2847332).
As xnu no longer builds with PBWO and the presence of the PB.project file was confusing people into thinking that
it was, we've removed this file. (r. 2841647).
A problem where terminating a mach thread from another mach thread could leave a thread running but marked as
ABORTED with thread-self ports disabled has been corrected. This problem could only occur on MP machines. (r.
2840580).
A problem in the processor_set_threads() routine that could cause can cause thread reference underflows or
kernel data corruption and/or panics has been corrected. (r. 2838105).
The version number of com.apple.kernel, com.apple.kernel.bsd, com.apple.kernel.iokit, com.apple.kernel.libkern,
and com.apple.kernel.mach has been incremented to 6.0. (r. 2796646).
The routine KUNCUserNotificationDisplayFromBundle call now uses a "%@" character sequence to separate out
words to add to the dialog it presents. (r. 2795373).
Fixed a long-standing problem where a dependency version incompatibility would report the requested version of
the dependency instead of its actual version. (r. 2789001).
All non-Objective-C mach headers have been modified to use #include instead of #import for better compatibility
with C programs. (r. 2778821).
A problem where the Velocity Engine and floating point contexts could be lost when a machine was put to sleep has
been corrected. (r. 2777855).
The processor load averages reported by systctl() (and, therefore, by "w", "uptime" and friends) have been
corrected so they have meaning similar to the values reported on other Unix systems. (r. 2752471).
kernel malloc has been updated to return a pointer to a zero length block of memory when called with a zero
argument. Prior to this change kernel malloc would return NULL if asked to create a zero length block. (r.
2713055).
The kextload command now correctly returns a nonzero result for some error conditions that used to return zero,
such as if the binary to load was absent. (r. 2712179). (r. 2712179).
The kextload command now does more extensive error checking when parsing kext plists. (r. 2679397).
System V Semaphores for xnu are installed with Mac OS X 10.2. (r. 2676742).
It is now possible to enable hardware floating point exceptions. (r. 2656343).
Panic dumps to the screen are now a boot-time option. To turn off the dialog and get the old textual presentation of
info on the screen, set boot-args to debug=0x100. (r. 2653104).
The panic dump no longer includes dependency info for in-kernel kernel modules such as com.apple.kernel.iokit.
This information added no real benefit and simply made panic dumps longer. (r. 2641919).
Previously, the CFBundleIdentifier property was required in all IOKitPersonalities. In most cases that property
would simply refer to the KEXTs own bundle. Now, a personality without a CFBundleIdentifier property is assumed
to be referring to its own bundle. (r. 2604841).