[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: devfs vs. udev



On Mon, Nov 22, 2004 at 02:50:44PM -0500, Christian Convey wrote:

> Can anyone help clarify the relationship between any of the following 
> things that may or may not be on my computer?

> hotplug

When an event happens on any of the various buses (pci, usb, firewire,
etc.) such as device connection, removal, etc., the kernel that supports
hotplug will call /sbin/hotplug, which is a user-space program that will
do something based on the events. The standard hotplug program that most
people use is at linux-hotplug.sourceforge.net, but you could always
write your own.

> udev

Udev plugs in to the standard hotplug program and responds to hotplug
events by creating or destroying device nodes in /dev, based on policies
that you define.

> devfs

Devfs is a kernel module that implements a filesystem. Modules register
with devfs to tell it what devices nodes they need, and devfs creates
and destroys the device nodes as the modules are loaded/unloaded. Devfsd
adds extra policy information, such as device permissions and adding
symlinks to devices.

> automount
> autofs

Automounters watch for access to a directory, and automatically mount a
filesystem on that directory when a process tries to access it. They are
used mostly for automatically mounting NFS filesystems, but can be used
to mount anything. 

I'm not sure what automount program you are referring to, but
historically, automount (and amd) were user-level automounters, while
autofs is a kernel-level automounter. user-level automounters manage a
special hidden directory of mountpoints and create symlinks into that
directory when a mount happens. Autofs can mount things in-place without
the need for symlinks, which is generally better.

> HAL

Hardware abstraction layer. Would need more context as to whose HAL
you're talking about.

> sysfs
> procfs

Both of these are methods for kernel subsystems to export information to
userspace, and for userspace to change operation of the kernel
subsystems. Procfs has been around for quite a while, and I believe it
was originally used just to export information about processes. Other
modules started adding their own files into /proc, and the format of
these items was all very ad hoc. Sysfs is an attempt to formalize this
into a consistent hierarchy, and to separate process information from
device information into two different filesystems. Note that udev needs
sysfs in order to work properly.

> - Does hotplug inform udev when a new device connects to the computer?

Yes, assuming that you're using the Debian hotplug package.

> - Does udev make use of devfs?

No, udev is designed as a replacement for devfs that doesn't have any
kernel-level coupling.

-- 
Dave Carrigan
Seattle, WA, USA
dave@rudedog.org | http://www.rudedog.org/ | ICQ:161669680
UNIX-Apache-Perl-Linux-Firewalls-LDAP-C-C++-DNS-PalmOS-PostgreSQL-MySQL

Dave is currently listening to The Replacements - Takin' A Ride (Live, 1982-10-01)

Attachment: signature.asc
Description: Digital signature


Reply to: