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