Является ли монолитная природа Linux (часть) проблемой с драйверами ARM?

Мои знания о ядре довольно ограничены, поэтому, пожалуйста, извините, если этот вопрос не подходит для начала.

На компьютере под управлением x86, таком как мой ноутбук, я могу установить каждый дистрибутив Linux, который я хочу. Могут возникнуть небольшие проблемы с картами WLAN или графическими картами, но в целом я могу установить каждую версию ядра Linux.

Системы, такие как Android-телефоны и Raspberry Pi с процессорами ARM, на самом деле не могут этого сделать, нужно получить специальное ядро. И производители чипов, похоже, передают только скомпилированную версию своих драйверов с одной конкретной версией ядра Linux. Телефоны Android редко получают обновления, и программное обеспечение похоже на аппаратное обеспечение, такое как развлекательная система в автомобиле.

Производители утверждают, что поддерживать свой драйвер для разных версий ядра было бы слишком много, чтобы переносить его на новые версии было бы слишком сложно. Но почему они должны так тесно связывать его с конкретной версией, что пользователи Android не могут разумно получить обновление с разумными усилиями? Он работает на x86, не так ли?

Я задавался вопросом, были ли драйверы встроены в ядро ​​слишком жестко, и, возможно, это поможет некоторая разбивка на независимые модули. Тогда производители устройств все еще могут скомпилировать свой код (такой, что конкуренция не может вывести дизайн своих устройств), но он работает с разными версиями Linux. Поскольку дистрибутивы Android и Desktop Linux используют более новые ядра для более новых версий, не имея этих драйверов для этой версии ядра, вы не сможете обновить всю систему.

Где основная причина для устройств Android, которые все еще застревают в древних версиях?

One Solution collect form web for “Является ли монолитная природа Linux (часть) проблемой с драйверами ARM?”

Авторские права, патенты и другие вопросы интеллектуальной собственности действительно являются основной причиной. Производители аппаратного обеспечения не будут предоставлять полную информацию, но они предоставят двоичный блок. К сожалению, внутренняя работа ядра не совсем стабильна, поэтому для каждой версии необходимо обновить двоичный код. Предоставление обновлений не дает дополнительного дохода для производителя, поэтому зачем платить разработчику программного обеспечения за все изменения? Такая же проблема связана с старыми модулями ядра VMWare (по крайней мере, они были открыты и могут быть исправлены) и драйверами NVidia для своих видеокарт.

Линус сказал, что он не заботится о стабильном внутреннем интерфейсе. Если производители оборудования хотят, чтобы их вещи всегда работали, они должны были открыть свой код и интегрировать его в основное дерево ядра … вот хороший (старый) пост на нем Грег Кроа-Хартман kroah.com/log/linux /stable_api_nonsense.html

  • CentOS - действует ненормально каждую неделю и приводит к отключению всей моей настройки, как я могу откат / восстановление до одной недели?
  • Конфигурация XFRM_SUB_POLICY в kerne
  • Как я могу получить файл RHEL 7.0 vmlinux?
  • Скомпилируйте и установите чистое ядро ​​на Debian
  • Как я могу безопасно удалить старую версию ядра из раздела / boot моей системы Ubuntu?
  • Kernel Panic на 3.14.0-gentoo на трассе IBM 9228LGA / SMP
  • Может ли 32-разрядные приложения на 64-битном ядре использовать всю память?
  • Как выполнить парсинг аргументов в C?
  • Как получить linux-gate.dso в новой Linux-системе?
  • Я хочу участвовать в разработке ядра Linux, где я могу найти то, что нужно сделать?
  • Я не могу настроить беспроводную точку доступа (AP)
  • Interesting Posts

    Найти все файлы с Python Shebang

    Установка Kali 2.0 на виртуальной коробке

    Btrfs распределяет файлы поровну на нескольких устройствах

    Разрешить использование виртуального терминала только для root

    Port Mirroring с использованием iptables – копирование всего трафика между nginx на: 80 и Apache по: 8080

    Очень слабое беспроводное соединение при установке образа Live Debian

    Сортировка чисел и соответствующих единиц в столбцах

    Копировать файл при замене текста в нем

    Перенос сервера CentOS

    Невозможно выполнить компиляцию модуля ядра: нет правила для создания целевого дроида / sunxi-livesuite-master / awusb ''

    Как сделать загрузочный USB-диск UEFI из загрузочного BIOS iso

    Условия, отправленные через ssh, выполняются локально, а не удаленно

    не может создать символическую ссылку на CentOS 5.6 – Ошибка файла

    Конфигурация Vim для определенных типов файлов

    Как я могу узнать о потребляемой мощности моего настольного компьютера?

    Linux и Unix - лучшая ОС в мире.