LINUX.ORG.RU
Форум — Talks  

Были ли попытки создать форк ядра со стабильным API?

 ,


0

1

Сейчас есть официальные версии Longterm, но они поддерживаются только на уровне багфиксов. Новые фичи не бэкпортируются, если я правильно понял.

Так вот не было ли попыток в рамках независимоно проекта выпускать ядра Linux со стабильным API? Например, берём ядро 4.14, фиксируем его API и бэкпортируем в него все улучшения из новых ядер при условии, что они не ломают совместимость.

И ещё вопрос на эту тему. Можете показать мне (в виде фрагмента кода) ситуацию, когда API на уровне исходников не ломается, а ABI ломается?

или подумай как следует, или таблетки прими

zgen ★★★★★
()

Были ли попытки создать форк ядра со стабильным API?

Да. Android.

бэкпортируем в него все улучшения из новых ядер при условии, что они не ломают совместимость.

Нет. Тебе нужно, ты и бекпортируй, а «мы» поддерживаем только свой форк.

Можете показать мне (в виде фрагмента кода) ситуацию, когда API на уровне исходников не ломается, а ABI ломается?

Нет, не можем. И даже пытаться разбираться не хотим. Тебе нужно, ты и делай.

i-rinat ★★★★★
()

Какое API ты имеешь ввиду? POSIX вполне себе стабильный, сисколлы тоже вроде не трогали. Внутри ядра часто много чего меняется (crypto api в 3.x и 4.x, например), но простых юзеров это не должно волновать.

Meyer ★★★★★
()
Ответ на: комментарий от i-rinat

Да. Android.

У android есть способ распространения модулей ядра? Где можно скачать какой-нибудь модуль, который я смогу установить на свой телефон?

te111011010 ★
() автор топика
Ответ на: комментарий от Meyer

Внутри ядра часто много чего меняется (crypto api в 3.x и 4.x, например), но простых юзеров это не должно волновать.

До тех пор, пока не потребуется поставить на новое ядро какой-нибудь древний проприетарный драйвер от древней железки. Ну или свободный, но не вошедший в ядро. Например, zfs.

te111011010 ★
() автор топика
Ответ на: комментарий от te111011010

У android есть способ распространения модулей ядра?

Да, многие телефоны поддерживают over-the-air обновления. С ними ты получаешь и новое ядро, и модули к нему.

Где можно скачать какой-нибудь модуль, который я смогу установить на свой телефон?

Ты хочешь отдельно? Попробуй обратиться к производителю своего телефона. Возможно, они смогут тебе выслать модуль и инструкцию по установке.

i-rinat ★★★★★
()
Ответ на: комментарий от te111011010

До тех пор, пока не потребуется поставить на новое ядро какой-нибудь древний проприетарный драйвер от древней железки

поприетарщина через обертку работает. подправят кодец обертки и драйвер заработает.

невидия так делает, например.

т.е. какаянибудь хламина типа невидия гефорц мх440 из начала нулевых годов будет работать и сейчас (может даже и работает, если обертку поправили под новый API линукса).

n_play ☆
()
Ответ на: комментарий от te111011010

До тех пор, пока не потребуется поставить на новое ядро какой-нибудь древний проприетарный драйвер от древней железки

Что твоей, поросшей мхом, железяке нужно от нового ядра? Какое с железкой пришло, такое и используё.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от n_play

Ты путаешь API и ABI. Да, dkms соберёт для тебя нвидиевскую прослойку под новое ядро. Но только если не поменялось ядерное API. А оно меняется, и блоб для MX440 для современного ядра уже не вкорячиш.

gremlin_the_red ★★★★★
()

Ядро в RHEL (и CentOS) не меняет версию все 10 лет поддержки. Ты это ищешь?

Vsevolod-linuxoid ★★★★★
()

Конторы типа КрасноШапки этим и занимаются. Правда из-за бекпортирования штуки типа VMWare при сборке модулей очень печалятся иногда.

sanwashere ★★
()
Последнее исправление: sanwashere (всего исправлений: 1)
Ответ на: комментарий от i-rinat

и модули к нему

Которые собрал сам производитель нофелета под конкретную версию ядра.

te111011010 ★
() автор топика
Последнее исправление: te111011010 (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

Какое с железкой пришло, такое и используё.

А если с железкой пришёл только драйвер для windows XP и Vista? Речь не только и не столько о железяках с предустановленным linux. А, например, о старых usb- или pci-устройствах.

te111011010 ★
() автор топика
Ответ на: комментарий от sanwashere

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

te111011010 ★
() автор топика
Ответ на: комментарий от te111011010

А если с железкой пришёл только драйвер для windows XP и Vista?

Тогда у тебя нет проблем с проприетарным драйвером под линукс ввиду его отсутствия.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от te111011010

Но это работа в рамках одного дистрибутива.

А кто не даёт взять шапочное ядро и поставить себе?

imul ★★★★★
()
Ответ на: комментарий от gremlin_the_red

я не поня или ты

Ты путаешь API и ABI. Да, dkms соберёт для тебя нвидиевскую прослойку под новое ядро. Но только если не поменялось ядерное API.

довелось глядеть в кодец этой невидивской прослойки. в былые времена там было куча дефайнов вида иф кернел версион >= или == или << то разные интерфейсы функций там применяются и прочее.

но конечно, если там нету нужных измерений под новое поменявшее ядро - то ничего не поделаешь. (как правило изменения там не кардинальные)

так что ничего не путаю.

n_play ☆
()

Так там и ABI ломается, причём намного чаще.

K50
()
Ответ на: комментарий от sanwashere

Ну не всегда по кайфу адаптировать станции зарядок для электрокаров под совместимость с дизельным запорожцем

sparks ★★★★
()
Ответ на: комментарий от te111011010

Кто «все»? Полтора вендоинвалида? Нонсенс, он потому и нонсенс, что по другому никак.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

А ничего, что он мог быть не на диске? А в интернетах.

te111011010 ★
() автор топика

Я могу сделать полностью стабильное ядро со стабильным API. И для этого мне даже абсолютно не нужны навыки программирования.

gtk3 ★★★★
()
Ответ на: комментарий от gtk3

Открыть секрет?

  • заходим на гитхаб или гитлаб (неважно)
  • переходим сюда https://github.com/torvalds/linux
  • нажимаем кнопку Fork
  • Больше ничего не делаем. Ядро будет со стабильным API хоть через 1000 лет.
gtk3 ★★★★
()
Последнее исправление: gtk3 (всего исправлений: 2)
Ответ на: комментарий от te111011010

Которые собрал сам производитель нофелета

Конечно. А ты что-ли сам умеешь модули делать? Максимум же make запускаешь. А то и готовые скрипты хочешь, чтобы само пересобиралось при обновлениях.

под конкретную версию ядра.

Под стабильную, как ты и хотел.

i-rinat ★★★★★
()

Можете показать мне (в виде фрагмента кода) ситуацию, когда API на уровне исходников не ломается, а ABI ломается?

-struct foo { int a; int b; };
+struct foo { int b; int a; };
-void foo(int a);
+void foo(int a, int b=0);
slovazap ★★★★★
()
Ответ на: комментарий от te111011010

Ну возьми и поставь себе их ядро, в самом деле. Исходники качаешь на сайте CentOS.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Meyer

но простых юзеров это не должно волновать.

За исключением такой маааленькой проблемы, что внезапно перестают работать драйвера, не входящие в основной код ядра

cvs-255 ★★★★★
()
Ответ на: комментарий от Meyer

А если в новое ядро завезли поддержку другого компонента? Ну например, какого-нибудь usb-устройства: модуля wi-fi, тв-тюнера и т.д. и т.п. Или PCI. Да, представь, ещё есть компьютеры с корпусом ATX, куда можно вовнутрь втыкать свои железки. Или даже встроенного, если оно изначально не работало (например, сканера отпечатков пальцев в ноутбуке). Про принтеры и сканеры не говорю, так как, если я не ошибаюсь, для них драйверы в юзерспейсе.

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

te111011010 ★
() автор топика
Последнее исправление: te111011010 (всего исправлений: 1)
Ответ на: комментарий от te111011010

А если в новое ядро завезли поддержку другого компонента?

Почти все (за всю жизнь я не встречал распространения в виде готового *.ko) проприентарные модули представляют собой блоб и компилируемую открытую обертку, которую можно подправить под новое ядро.

Meyer ★★★★★
()
Ответ на: комментарий от Meyer

которую можно подправить под новое ядро.

А ничего, что для этого надо быть kernel-девелопером? Далеко не все пользователи linux (даже, если они it-шники) — кернел-девелоперы и знают язык C. Даже если производитель железки сам правит, то ему легче было бы не править, если бы драйвер хотя бы лет 5 работал на актуальной версии ядра. Да, обойти и смириться можно. Но мы же говорим об удобстве пользователя и разработчика.

te111011010 ★
() автор топика
Ответ на: комментарий от Meyer

Ну например наличие каких-либо новых технологий в ядре, которые могут никак не быть связаны с драйверами вообще

Вам вот не кажется, что требование переделывать драйвера под новое апи просто потому, что хочешь новый планирощик, например, это странно?

Это примерно как требование переклеить обои в квартире при замене входной двери.

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от te111011010

А ничего, что для этого надо быть kernel-девелопером?

Чтобы нагуглить ошибку при компиляции (ЕМНИП, был какой-то сайт для удобного поиска изменений в различных версиях ядра) и поправить обертку? Это не так тяжело, как кажется. Ещё можно на форумах помощи спросить.

Meyer ★★★★★
()
Последнее исправление: Meyer (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Вам вот не кажется, что требование переделывать драйвера под новое апи просто потому, что хочешь новый планирощик, например, это странно?

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

Meyer ★★★★★
()
Ответ на: комментарий от te111011010

мы же говорим об удобстве пользователя и разработчика

Какой объём регулярного финансирования ты в состоянии привлечь? Этого хватит, чтобы трудоустроить достаточное количество разработчиков ядра?

i-rinat ★★★★★
()
Ответ на: комментарий от te111011010

Но вы же ноете, что linux только у одного процента.

Лично мне наплевать. Да и вряд ли Valve и Feral (точнее, разработчики портированные ими игр) стали бы тратить деньги на 1% фриков.

Meyer ★★★★★
()
Последнее исправление: Meyer (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Это примерно как требование переклеить обои в квартире при замене входной двери.

Тебе бесплатно предоставляют жильё. Есть выбор, но планировки квартир и внутренняя отделка определяются тем, кто создаёт это жильё. Новое жильё постоянно строится, но у каждой новой модели что-то меняется. В какой-то момент вместо белых обоев стали клеить кислотно-зелёные. Затем в какой-то момент решили ставить не голые металлические входные двери, а двери с дубовой отделкой.

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

Разве это странно?

i-rinat ★★★★★
()
Ответ на: комментарий от te111011010

Valve уже давно не тратит.

А их игры под линукс собираются святым духом? И баги в них тоже он правит?

Meyer ★★★★★
()
Ответ на: комментарий от te111011010

Новые игры от valve уже давно винда-онли.

Только HL: Alyx и пара VR демок, но вроде обещали портировать. Даже провальный Artifact доспупен под линукс.

Meyer ★★★★★
()
Последнее исправление: Meyer (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.