The device node name? From the rules in /etc/udev/rules.d/*. Udev isOhh, I see what you are saying now. Yes, it is up to udev to create the device nodes, and the kernel does not know or care about the nodes. If an application wants to find existing nodes it can open it needs to query udev or hal. If it wants to find out what devices the kernel exports, it can look in /sys and make its own devnode to access them.
the one which creates it in the first place, deriving it in a
user-defined way from the sysfs information. It does _not_ give back
that information to the kernel. Maybe it should.
The kernel does not provide a cd burning service, only a scsi packetWhat part of the user/kernel separation don't you understand? udev is user mode code which interfaces with the kernel via sysfs. Other user mode code is free to do that as well, or just use udev. Either way, the only kernel interface involved is sysfs. The kernel does not know or care about udev or what it does, only sysfs. The kernel provides enumeration through sysfs, and that is all.
transport service called SG_IO.
The kernel *does* provide a device enumeration service, only it does
it at this point through udev for reasons that are 50% technical and
50% political. If you want to be able to use a 2.6 kernel with
hotplug devices udev[1] is mandatory. As such, from an engineering
point of view, udev is part of the kernel even if it isn't in the
source tarball on kernel.org. And for now it is the lowest level
interface to device enumeration.