Как стать автором
Обновить

Комментарии 25

Все это наводит на мысль о недостаточной модульности ядра и недостаточной поддержке модульности со стороны языка Си. Зачем удалять, если оно работает? Любой новый код по идее вообще никак не должен влиять на старый.

В связи с тем что ядро линукс по природе своей монолитно, почти всё находится в основной ветке, и это раздувает и так немалую кодовую базу. Без мейнтейнеров этого легаси ядро просто превратится в помойку.

Это не ядро монолитно, а репозиторий исходного кода довольно монолитен. Не путайте пожалуйста. Само ядро довольно модульное ровно до той степени до которой модульность не вредит стабильности и производительности.

Ага, сейчас, в сказках только. API драйверов менятся, новые алгоритмы и внутреядерные фреймворки вводятся. Новый код ещё как влият на старый, который нужно дописывать/переписывать, а тестировать не на чём и мантейнеров нет. И Си тут ни при чем.

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

Все HAL придумали, а сообщество Линукс — нет…
Не делает никто ifdef. Делают хал, который снаружи торчит интерфейсами, а внутри реализует конкретные платформозависимые вещи.
Проблемы в возможностях. Когда появляется очередная фича в процессорах — для старых надо сделать реализацию в HAL, ну или как минимум заглушку. А как это тестировать, если железа нет? И желающих этим заниматься тоже нет.

Всё верно, кроме собщества Линукс. Никто ещё не придумал такой HAL. В темах про Win не зря плач Ярославны стоит, что драйвера из семёрки в 10-ке не работают, да и процессоры старые давно дропнули.


Из банального, ты делаешь лок-фри алгоритмы, а на старых cpu нет нормальных atomic операций.

Драйверы из семерки в десятке не работают не из-за HAL, а из-за изменения API.
API и HAL вещи перпендикулярные.

ты делаешь лок-фри алгоритмы, а на старых cpu нет нормальных atomic операций.

А это то, о чем я говорил. Только такие вещи всё равно обходятся. Только делать обход для процессора, которого нет на руках — крайне сложно.
То что драйвера семерки не работают в десятке это кстати тоже проблемы модульности. Как и то что драйвера семерки или десятки не работают в линуксе.
Да, это проблемы другого уровня (отсутствие стандартизированного на уровне ISO интерфейса драйвера, отсутствие возможности автогенерации адаптера драйвера для конкретной ОС по метаинформации, хранящейся в драйвере).
Все HAL придумали, а сообщество Линукс — нет…
HAL — это абстракция, которая не Zero Cost
HAL это абстракция, стоимость которой напрямую зависит от совпадения архитектуры процессора с интерфейсом этой абстракции.
В идеальном случае HAL это просто обертка вокруг вызовов, как раз с нулевой стоимостью.
Но, т.к. процессоры имеют разную архитектуру — HAL не будет иметь нулевую стоимость на большинстве платформ, что естественно.
1. Зачем удалять, если оно работает?

Никто не знает, работает ли оно или нет. У разработчиков нет этого оборудования (его трудно найти, нового нет). Правки в код этих систем не вносили уже 5 лет. Люди, ответственные за поддержку этого кода самоустранились (потеряли интерес, сменили работу, и т.д.).

Код останется в прошлых версиях ядер и будет поддерживаться в LTS релизах.

2. Любой новый код по идее вообще никак не должен влиять на старый.

В ядре сильно влияет. Внешние интерфейсы сохраняют совместимость, внутренний API — нет.
Никто не знает, работает ли оно или нет.

Подозреваю, что этого не знают даже сами владельцы устройств. Потому что вряд ли на такое железо ставят новые ядра. Таким образом, «работает» следует понимать как «возможно работает, если производитель железки выкатит обновление, либо если вы сами сможете установить новое ядро».
80486SX/DX — ну короче линукс на принтерах уже не светит?
Разработчики Linux обсуждают отказ от поддержки некоторых старых процессоров, которые в настоящее время включены в основной состав ядра.

Т.е. просто выведут из основного состава ядра.
Далее варианты.
Если соответствующие модули/патчи не будут никем поддержаны, то останется только возможность использовать старые ядра, в которых поддержка еще была (внезапно, уже сейчас на многих вполне новых устройствах и без того используются не то что старые, а древние ядра).
Если же кто-то возьмет на себя бремя поддержки, то будут собранные "на стороне" ядра с поддержкой соответствующей архитектуры (подобно новым процессорам, код для которых еще не внесен в "основной состав ядра" или никогда не будет внесен) или можно будет собрать самому.

Ну тогда ждем принтеров с Pentium I/II. Никто же бремя поддержки не возьмет, проще на другие процы перейти, ну подумаешь на 5$ дороже выйдет.

Проще старое ядро оставить (что скорее всего и будет).

Если же кто-то возьмет на себя бремя поддержки, то

… эту архитектуру не исключат из ванильного ядра.


но вот что такой желающие найдутся — сомневаюсь. по поводу vt8500 я был «в теме», сейчас написал человеку, который начинал это дело, он ответил «видимо, пришло время». у меня тоже давно интерес пропал, практической пользы от поддержки этой платформы никакой, а без применения и just for fun тоже не особо выходит.

В принтерах давно arm.
Во-первых, если я правильно понял, конкретно последний список обсуждается еще, а не утвержден. Во-вторых, LTS пока поддержку имеет. Через 5 лет передумают, если возникнут проблемы. А не передумают — возьмётся поддерживать кто-то ещё, лишь бы было востребовано) В-третьих, кто мешает использовать «не-latest» ядро? XP вон когда поддержки лишилась, а кое-где живет по сей день. Нужно только некоторые меры предосторожности принимать.
Понятно ещё ARM, понятно ещё заказные, но 486 и IA64 зачем дропать?

Не весь IA64, а только его первое поколение, которое производилось всего год. Скорее всего, их производительности в любом случае не хватает для текущих версий ядер. Равно как и в активном использовании их нет. А костылей для работы с древними процессорами с минимальным набором инструкций требуется порядочно.

не «зачем», а «почему». выше уже ответили на этот вопрос: потому что нет желающих поддерживать.

Все верно, шагаем в ногу со временем

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости

Истории