kernel code test: handle netlink event in user space

In linux, uevent is sent to the user space via the netlink.

This example shows an example to capture the uevent in user space. One way to
see the output is:

/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0
kernel code reading: the real uevent -- netlink

uevent in kernel is implemented by netlink.

This event could be listened in user space by NETLINK socket.
kernel code reading: driver_core directory for the generic driver layer
kernel code reading: bus_register

When register a bus type, it will create sysfs directories under /sys/bus.
1. devices, to represents the devices for this bus type.
2. drivers, to represents the drivers for this bus type.
kernel code reading: driver_regitster()

Go through what happens when driver_register() is called.

Usually, the drv->probe function is called in this process.
kernel code reading: pcie port bus

In order to support pcie port, kernel introduce another kind of driver to
handle this.

For more detail, please look at Documentation/PCI/PCIEBUS-HOWTO.txt.
qemu code reading: savevm