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)
Ответ на: комментарий от 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)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.