Является ли монолитная природа 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

  • Может ли дистрибутив Linux быть закрытым источником?
  • sigaction (7): семантика члена si_code siginfo_t
  • Почему загрузка с SD-карты с моим пользовательским ядром приводит к «VFS: не удается открыть корневое устройство»?
  • Определите, поддерживает ли встроенный драйвер ядра устройство
  • Ядро 4.10 / 4.12 с AMDGPU-PRO?
  • Сохраняет ли ключ ядра keych на диске?
  • Система не может выделить память, даже если память доступна
  • Создавать несколько грязных потоков flusher страниц на устройство
  • Является ли / dev / nvram опасным для записи?
  • Предотвратить добавление знака плюс к сборке Linux
  • Виртуальные последовательные порты / dev / pts
  • Interesting Posts

    Создайте точку доступа для «моста» между двумя беспроводными соединениями. Как должен выглядеть / etc / network / interfaces?

    Программно изменить атрибуты значков рабочего стола

    Невозможно конкатенировать пути к файлам, разрешено отклонение

    Скопируйте последнее сообщение Emacs в текущий буфер

    Создание аудио CD без оптического привода?

    Наследует ли процесс как логические, так и физические рабочие каталоги?

    Как установить DivFix ++ в Scientific-linux 6.1?

    Как убедиться, что loopfile установлен только один раз?

    Установка Linux Mint на Windows-Ubuntu с двойной загрузкой

    Пожалуйста, помогите мне разобраться в этих адресах tun0

    Как изменить строку, в которой находится строка, с выходом другой программы, которой вы передаете эту строку в качестве аргумента?

    Как начать первую команду из списка, напечатанного командой 'history | grep что-то '

    Что именно делает logrotate для файлов журнала Apache? (apache 2.4 – ubuntu 14.04)

    Регулярное изменение / оператор (foo | bar) в GNU или BSD Sed

    сравнение 2 списков с дополнительными данными для печати

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