Device Busses



An unsung hero, device busses are the way that peripherals (both external and internal) connect with a server or desktop. Linux 3.0 includes expanded support for several old bus types as well as a few new ones.



One major advancement since the launch of Linux 2.6 has been the emergence of the PCI Express Bus. PCI Express, sometimes called PCI-E, is an extension to the “Peripheral Component Interconnect” bus which has been standard on PCs and many types of servers for nearly twenty years. PCI Express, in addition to providing faster bus speed for sending data to and from devices, also supports many modern features such as hot-plugging. Support for external busses has also considerably improved since Linux 2.6. USB, the Universal Serial Bus, has become the standard bus for peripheral devices of all types. Earlier versions of Linux have included USB support, but Linux 3.0 has expanded on this by adding support for the latest USB devices (those that comply with the USB3 specification) as well as many other drivers and devices. One notable addition is the support for USB video cameras and webcams which had been lacking in prior versions of Linux. Firewire, another type of serial bus common in video processing and other environments, has also be improved in Linux 3.0 with the addition of a rewritten device stack and many new drivers and fixes.



Although we mainly think of Linux as a platform for hosts to devices, Linux has become a popular operating system for many types of embedded hardware. Now stable in Linux 3.0 is “USB On-The-Go”, the device side of the USB stack. This allows a Linux-running device to connect to and communicate with a host which speaks the USB protocol. A similar system, though not used in home computing, is the “Controller Area Network”. This system is primarily used in automotive and military computing when multiple devices want to communicate with each other without the presence of a “host” computer to orchestrate.  


And finally, the Conclusion...