Two articles about the new Linux kernel were recently published on Habré. One of them said that the AMD Radeon driver makes up 10.5% of the Linux 5.9 kernel, the other listed new features and functions. Recently there was also information that this core supports 99% of the popular PCI hardware on the market.
Of course, “popular” does not mean “supports everything at all”, so the overall figure could be well below 99% given the variety of devices. have you studied PCI support?
If the goal of the project were to study the total amount of "hardware" supported by the kernel, then one could simply take the ratio - "supported devices / total number of devices". But there are two complications here:
- It is almost impossible to obtain both figures, and if it is possible, then research of this magnitude will require a huge amount of resources.
- Not all devices are equally popular.
With the second point, everything is simple: there are common devices that need support because they are used by a large number of people. And there are rare systems that only a few users need. Of course, you can't neglect their needs either, but this world is unfair - developers usually decide first priority issues, and then move on to secondary ones.
The authors of the project to study support for PCI hardware in the Linux 5.9 kernel took an easier path. They summarized all instances of supported devices, dividing by the total number of supported and unsupported devices.
The following formula was used for the calculation:
Where Sn is the device support status ( 1 - supported, 0 - not supported) and Tn is the total number of devices.
In order to find out what devices are common, a system for recording the population of PCI devices was developed.
You can view information about the population in the special repository DevicePopulation . Support status for the new Linux kernel can be obtained from the LKDDb project .
If you want to provide information support to the project, you can send data about your devices using the hw-probe tool .
sudo -E hw-probe -all -upload
Here are the results:
PCI Class | Devices | Support |
---|---|---|
Card reader | 9433 | 100% |
Communication controller | 39144 | 98.23% |
Dma controller | 115 | 99.13% |
Dvb card | 85 | 100% |
Encryption controller | 8169 | 88.64% |
Firewire controller | 7978 | 99.97% |
Flash memory | 469 | 37.95% |
Graphics card | 89190 | 98.06% |
Input device controller | 262 | 100% |
Ipmi smic interface | 155 | 100% |
Modem | 307 | 89.58% |
Multimedia controller | 2194 | 88.56% |
Net / ethernet | 55774 | 99.92% |
Net / other | 10929 | 99.82% |
Net / wireless | 43499 | 99.80% |
Non-essential instrumenta ... | 5103 | 99.98% |
Sd host controller | 10370 | 100% |
Serial bus controller | 12251 | 99.80% |
Serial controller | 4901 | 99.84% |
Signal processing controller | 37989 | 97.22% |
Smbus | 62763 | 99.92% |
Sound | 103406 | 99.95% |
Tv card | 902 | 100% |
Usb controller | 215098 | 100% |
Do you agree with the calculation methodology and results? Share your opinion in the comments.