Infrastructure to control which drivers can call which kernel calls, and register which which IRQ's and access which I/O ports. Full support from the PCI server to automate this to a large extent. Special cases and other configuration in /etc/drivers.conf.
Introduced 'safecopies', a restricted form of the MINIX copying functions that requires explicit permission from the target before copying happens. Normal device drivers now don't need physcopies/vircopies any more, so they can be denied these calls. Also, change fs/driver interface and inet/driver interfaces to use safecopies.
PM as been made non-blocking, doing asynchronous requests to FS (now VFS) when it has to be updated on something. This is mainly significant for device driver recovery.
Architecture dependent- and independent split in kernel source tree, (accomodating currently-defunct PPC port by Ingmar Alting). Architecture-independent code is in /usr/src/kernel/*.[ch], architecture-dependent code is in /usr/src/kernel/ARCH/.
Interface with RS is based on labels, instead of pids.
New boot procedure. First-stage booting now happens from a ramdisk image that is compiled into the memory driver. Drivers for the root device are started and the actual root device is mounted from there. This makes the system need less boot-specific code in e.g. FS, needing no drivers compiled into the image, and makes it more generic.
Allow more than 32 fd's per process (OPEN_MAX).
All 3rd-party ack libraries go into /usr/local/lib/ack, and 3rd-party gcc libraries go into /usr/local/lib/gcc.
new CMOS driver that runs once on boot, instead of remaining active; also can be invoked again afterwards to update the CMOS clock.
off_t is signed now.
Introduced RTS_SET/RTS_UNSET macros, making kernel code simpler, and reducing code (logic) duplication.