On Mon, Oct 15, 2007 at 03:04:00AM -0500, Rob Landley wrote:
just
as Ethernet and PPP interfaces really are fundamentally the same
thing.
They're the same thing?
Do you mean that on a system with both, going:
ifconfig eth1 66.92.53.140
ifconfig ppp 192.168.0.42
Would be functionally equivalent to:
ifconfig eth1 192.168.0.42
ifconfig ppp 66.92.53.140
No, of course not. But we don't have separate IP stacks for ethernet
and ppp devices. And how we connect to a host via ssh makes no
difference whether we accessed it via Ethernet or PPP. And I would
argue that how we address a filesystem should also make no difference
depending on the path to hard drive.
By the way, ethernet cards contain a unique MAC address. Hard
drives do not seem to, or if they do it's not being consistently
exposed in a way I can find.
You can pull a Model and Serial number via hdparm -i, but it's not as
easy to manipulate as a fixed-length MAC address. That's why people
tend to use filesystem UUID's.
More to the point, with SATA, hot plugging has been designed in, so
probing order is not going to be well defined,
The spec may define the capability to hotplug, but your average
laptop doesn't not offer the capability to hotplug anything into its
SATA controllers. The hard drive is screwed in (due to the
portability part of laptopness), all the controllers wired onto the
motherboard are accounted for, none are exposed externally. What
_is_ exposed externally is USB, and if you want to add an extra hard
drive you can buy a cheap USB one at Fry's.
That may be true for laptops today, but Linux doesn't run just on
servers. You can easily get home servers with hot-swap SATA bays. My
home fileserver, which is a white box I purchased on my own nickel,
NOT IBM big iron, has 3TB of raw storage for less than $10,000 a year
ago. Today, that amount of home storage with hot-swap SATA drives and
a battery-backed hardware RAID controller could probably be purchased
for about half that price.
And even for laptops, if you need the performance, you can get Cardbus
cards that will allow you to connect eSATA drives to your laptop at
Fry's.
So even if you ignore "big data center" interconnects like FC, this
problem exists even for commodity grade SATA devices.
It's necessary for IBM big iron to do this. It's generally not
necessary for laptops or embedded systems to do this if they
distinguish between _types_ of devices, which is something they
until recently did for the types of devices I was interested in, and
something they _stopped_ doing when everything got merged into the
scsi layer, and I consider this a regression.
As another example, it's easy to see a home media server running Linux
which doesn't have any expansion bays for additional hard drive --- so
the only way a user could expand their storage is by using one or more
permanently connected USB disks. So we do need to solve the general
device enumeration problem in the general case; it's not just the case
of IBM "big iron" as you seem to think.
No, distinguishing between types of devices is not a perfect
solution to device enumeration, but it was sufficient for all my use
cases for many years, and would still be if the kernel still did it,
and I'm not alone here.
News flash! The kernel wasn't built just for you, and over time, more
and more people will have multiple disk drives of the same type, so we
will need to solve the device naming problem sooner or later. Why not
solve it sooner, especially given that a number of companies (not just
IBM) are funding the organization that is paying *your* salary are
interested in solving the general case?
Furthermore, I've already pointed a number of situations where the
home user might have multiple USB devices on their system today, and
that is probably going to go up over time, not down. Have you seen
how cheap 500GB USB disks are at Costco? And for a typical
unsophisticated user, plugging in another 500G USB disk when they need
more storage is a lot easier than cracking open the computer case and
futzing with screws and disk cables and power connectors.