One of the biggest changes in Linux 2.4 is devfs, the new dynamic /dev filesystem. Devfs makes /dev act a lot more like /proc, dynamically adding /dev entries upon detection of new hardware and additon of kernel modules. With devfs, you don't have to worry about making device files with mknod, or any major or minor device numbers. It completely modernizes /dev, allowing for more devices, easy maintenance, less clutter, and speeds up the kernel's device lookup.

I recently compiled devfs into my kernel without problems. Nothing I couldn't fix easily. There's also devfsd, which symlinks stuff from the old naming convention.

Handy way to detect devfs through user-space code:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int is_devfs() {
	struct stat s;
	return (stat("/dev/.devfsd", &s) != -1);