Introduction to PCI buses and interfaces
Peripheral Component Interconnect (PCI) is a local bus standard used to attach peripheral hardware devices to the computer system. As a bus standard, it defines how different peripherals of a computer should interact. However, over the years, the PCI standard has evolved either in terms of features or in terms of speed. As of its creation until now, we have had several bus families implementing the PCI standard, such as PCI (yes, the bus with the same name as the standard), and PCI Extended (PCI-X), PCI Express (PCIe or PCI-E), which is the current generation of PCI. A bus that follows PCI standards is known as a PCI bus.
From a software point of view, all these technologies are compatible and can be handled by the same kernel drivers. This means the kernel doesn't need to know which exact bus variant is used. PCIe greatly extends PCI with a lot of similarities from a software point of view (especially Read/Write I/O or Memory transactions...