I'm primarily a hardware guy who writes software. I think of hotplug as the mechanical constraints that connect first the grounds, then the hot line and finally the signal lines so that when you insert the plug, the board comes up in a good state and begins running. The software components are based on an interrupt that fires some period of time after the initial contact of the hot line. The interrupt that occurs is generally refered to as powerup or init, or sometimes just pwron. And that activates the master interrupt for any processors (NMI is what it is sometimes called, for Non Maskable Interrupt). From there the software takes over and establishes the initial conditions of the hardware bit. A handshake has to occur with the motherboard, via the port connection, and that is the software event that lets the driver and OS do their things. Your diagram is pretty good, I think, but I was unaware that there was a software piece called hotplug.Les wrote: > Hi, Joe, since hotplugging is a hardware function you might consider > moving that module down into the hardware section. It would probably > simplify some of the arrows as well. I am assuming that by Hotplug, you > mean the act of removing and replacing or adding hardware without > turning the system off. I'm no expert at all--I made the slides for a talk that I gave primarily to teach myself(!), and I still don't understand a lot of what goes on. Someone please correct me if I have this mixed up. My understanding is that, although the initial event is detected by the kernel, practically the first thing the kernel does is fire off a _shell script_ and the rest of the response is handled from user space. It's a bit counter-intuitive that a hardware event should be handled by a user-space mechanism, but it's a good design, and that's what the diagram tries to show. Fortunately, there are smarter people than me who make this stuff mostly "just work" and I haven't had to look at it in a long time. I see now that you brought it up, that at least that part has changed. There is no "/sbin/hotplug" anymore. I'll have to grub around again and see what the current mechanism is. I think the relationships between the basic pieces of the diagram are still correct, but it obviously needs to be updated. I should take it down or add a disclaimer ;-) Thanks for the feedback! <Joe
Regards,
Les H