/dev
Katalogen /dev
De flesta Linux-användare förstår att /dev/sda1 bara är ett snabbt sätt att hänvisa till den första partitionen på den första hårddisk som kärnan hittade. Enkelt nog, eller?
Men överväg hot-pluggbara enheter som USB, IEEE 1394, hot-swapbar PCI osv. Vilken av dessa är den första enheten? Och under hur lång tid? Vilka namn får de övriga enheter efter att den första upptäcks? Hur kommer det att påverka pågående transaktioner? Vore det inte skojigt om ett utskriftsjobb helt plötsligt flyttades från en high-end laserskrivare till en nästan-död matrisskrivare bara för att någon bestämde sig för att dra ur kontakten på laserskrivaren (som bara råkade vara den första upptäckta printern)?
Enter the device manager. A modern device manager must:
- Run in userspace.
- Dynamically create and remove device files.
- Provide consistent device naming.
- Provide a userspace application program interface (API).
Every time a change happens within the device structure, the kernel emits a uevent which gets picked up by the device manager. The device manager then follows the rules declared in the /etc/udev/rules.d, /run/udev/rules.d and /lib/udev/rules.d directories. Based on the information contained within the uevent, it finds the rule or rules it needs to trigger and performs the required actions. These actions may involve the creation or deletion of device files, and may also trigger the loading of particular firmware files into kernel memory.