On Tue, 2004-07-06 at 18:38 -0400, Jeremy Katz wrote:
On Tue, 2004-07-06 at 18:17 +0200, Owen Taylor wrote:
> On Tue, 2004-07-06 at 22:28, Jeremy Katz wrote:
> The value of it on the case of the writable root filesystem is that
> you only have one path for how the system works, not two. Changes
> to device naming only have to be put into one place. Eventually we
> can simple drop the dev package and it's 18,000 files.
But exactly what does the 18k files cost it? Similarly, we could drop
ldconfig runs in %post and just have all of the symlinks created on each
boot, but that doesn't strike me as a good idea either. It's a useful
optimization to have them laid down by the install because then you
never have to create new device nodes. Which can be a lot of device
nodes per device. Changes to device naming is simple -- just make what
gets used for the creation the same as what gets used in the dev
package's spec file. Nice and simple to do with current infrastructure.
One very useful feature that is not readily available in current
infrastructure is that udev maintains a database. This allows reverse
lookup into sysfs, e.g. given device node /dev/sda you can very easily
determine what physical device this device node corresponds to. And you
can also go the other way [1].
With the infrastructure available today (e.g. static dev), you'd have to
search either for the right major:minor in /dev or find the right 'dev'
file in sysfs which would be insanely expensive.
> > My bigger concern is that udev has _zero_ policy. It
basically is a
> > "well, we want to let people do what they want" system. Which is no
> > better than doing nothing at all.
Which may actually be good in a way as it discourages developers to
assume that e.g. /dev/cdrom is the (default) optical drive, /dev/dsp is
the (default) audio device etc. Heh, so to fully test it we'd just
select a new naming scheme on every reboot :-)
But, yeah, you're right, there's so many legacy applications out there
that relies on device node naming policies, and I do understand that
this is not necessarily bad. Though it would be nice they did the right
thing, at least for desktop applications.
Cheers,
David
[1] :
[david@ixus david]$ udevinfo -q path -n /dev/sda
/block/sda
[david@ixus david]$ ls -l /sys/block/sda/device
lrwxrwxrwx 1 root root 0 Jul 6 19:17 /sys/block/sda/device -> ../../
devices/pci0000:00/0000:00:10.0/0000:02:07.2/usb1/1-1/1-1.2/1-1.2:1.0/
host9/9:0:0:0
[david@ixus david]$ udevinfo -r -q name -p /sys/block/sda
/dev/sda