Похоже, что вы ищете uevent
псевдофайл -в файловой системе /sys
sysfs.
Записывая команды в этот файл (, например "remove"
), ядро будет пересылать их обработчику событий устройства в пользовательском пространстве, которым является udevd.
Таким образом, выполнение эквивалента следующего фрагмента (с использованием оболочки для примера )должно сделать то, что вы хотите, запросив удаление udev устройства /dev/sda1
:
# echo -n "remove" >/sys/class/block/sda1/uevent
Вы можете использовать API-интерфейсы libudev (, например, udev _устройство _get _syspath (3 ), чтобы помочь вам найти правильный путь sysfs для данного устройства..
Вы можете найти некоторую документацию со стороны ядра в разделе kobject .
Вы также найдете некоторые упоминания о "uevents" в документации udev, например, "systemd -udevd прослушивает uevents ядра" из справочной страницы udevd .
Но похоже, нигде нет много документации по uevent
псевдо-файлу sysfs...
Из-за отсутствия ответов я публикую здесь свои собственные выводы, какими бы ограниченными они ни были.
Согласно вики QEMU ,пользовательские сети имеют следующие ограничения:
ping
от гостя)И QEMU, и VirtualBox имеют сетевые реализации пользовательского пространства, основанные на SLiRP , поэтому их ограничения должны быть сопоставимы (, хотя VirtualBox, по-видимому, также имеет lwIP ).