На Хабре недавно публиковалось две статьи о новом ядре Linux. В одной из них говорилось о том, что драйвер AMD Radeon составляет 10,5% ядра Linux 5.9, в другом перечислялись новые возможности и функции. На днях появилась еще и информация о том, что это ядро поддерживает 99% популярного PCI-оборудования на рынке.
Конечно, «популярное» вовсе не означает «поддерживает вообще все, что есть», так что общая цифра может быть гораздо ниже 99%, учитывая разнообразие устройств. Но все равно, ситуация с поддержкой Linux «железа» становится лучше год от года. Как проводилось изучение поддержки PCI-устройств?
Если бы целью проекта было изучение общего объема «железа», поддерживаемого ядром, то можно было бы просто взять соотношение — «поддерживаемые устройства/общее количество устройств». Но здесь две сложности:
- Обе цифры получить практически невозможно, а если и можно, то исследование такого масштаба потребует огромного количества ресурсов.
- Далеко не все устройства одинаково популярны.
Со вторым пунктом все просто: есть распространенные устройства, поддержка которых необходима, поскольку ими пользуется большое количество людей. А есть редкие системы, которые нужны считанным единицам пользователей. Конечно, пренебрегать их потребностями тоже нельзя, но этот мир несправедлив — разработчики обычно решают сначала первоочередные вопросы, а потом уже переходят к вторичным.
Авторы проекта по изучению поддержки PCI-оборудования ядром Linux 5.9 пошли более простым путем. Они просуммировали все экземпляры поддерживаемых устройств, разделив на общее количество поддерживаемых и неподдерживаемых.
Для расчета использовалась такая формула:
Где Sn — статус поддержки устройства (1 — поддерживается, 0 — не поддерживается), а Tn — общее количество устройств.
Для того чтобы выяснить, какие девайсы распространены, была разработана система учета популяции PCI-устройств.
Ознакомиться с информацией о популяции можно в специальном репозитории DevicePopulation. Статус поддержки в новом ядре Linux можно получить при помощи проекта LKDDb.
Если есть желание оказать информационную поддержку проекта, отправить данные о своих устройствах можно при помощи инструмента hw-probe.
sudo -E hw-probe -all -upload
Вот результаты:
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% |
В среднем получается 99.27%.
А вы согласны с методикой подсчета и результатами? Поделитесь своим мнением в комментариях.