On Fri, Jun 7, 2013 at 1:06 AM, Alan McKinnon <alan.mckin...@gmail.com> wrote:
>> Regarding this string "eth0":
>>
>> 1. What does this string represent?  Is it a file on a filesystem?
>> (no!)  Is it okay for me to call it an "ethernet *device*"
>
> It's just a name.

I'm interested in a bit more resolution here.  I believe we
established that the name "eth0" is given by the kernel.  Presumably
these names are made available through system calls.  What is the name
of the system call that provides these monikers?  I'm curious by what
moniker systemcalls refer to these devices.  For example, is the
systemcall that retrieves these monikers called "GetEthernetNames"?

> What you CANNOT do with udev is eg switch the names eth0 and eth1 around
> after the kernel has named them. That was tried for years, it doesn't
> work. So now udev never interferes with kernel namespace, it create it's
> own namespace

Okay.  From your description I conclude that there are two classes of
names for ethernet devices.  "Kernel ethernet names" and "udev
ethernet names".  When a userland utility (wuch as ifconfig) takes an
"ethernet device name" as input are they expecting a "kernel ethernet
name" or the "udev ethernet name"?  That question can be answered with
a simple "kernel" or "udev" but I'm interested in a little more
detail.  What do these userland utilities do with the name?  Are these
utilities calling systemcalls such as
GivePropertiesOnEthernetNameInKernelNamespace("eth0")?  Are they
establishing a connection to a udev server and querying based on udev
namespace names?

The goal of these questions is not for me to determine if udev is good
or bad, debate global warming, etc.  I just want to technically
understand these names, what their differences are, where they come
from, how they are referred in various function calls, etc.

Chris

Reply via email to