LINUX.ORG.RU

Новые поколения процессоров ядро линукса

 , ,


0

1

Приветствую!

Заинтересовался вопросом. По опыту знаю и часто встречаю на форумах, что когда выходит новое оборудование (будем говорить, к примеру, о ноутбуках, x86_64) должно пройти какое-то время (возможно даже короткое), чтобы ядро линукса «подхватило» новую железку.

Не будем касаться всей, условно, периферии (аудио, сеть и т.п.).

Вопрос в следующем: насколько новое поколение процессоров способно поломать на данный момент существующую в ядре поддержку процессоров предыдущего поколения? Может ли новый ноутбук не стартовать только из-за нового процессора?

Я себе представляю это так, что существуют какие-то базовые инструкции в процессоре, которые позволяют просто загрузку и работу, а новые инструкции - это просто плюшки (скорость, ACPI,..), которые подъедут с новым ядром со временем.

Ну и, как бонус, было бы неплохо узнать, как обстоит дело в этом плане с чипсетом.

П.С. Я понимаю, что картинки может не быть из-за неподдерживаемого на данный момент видеоядра процессора.

Может ли новый ноутбук не стартовать только из-за нового процессора?

за ноутбук, который не стартует, никто денешек не заплатит, а значит и никто делать не будет. значит все новые ноутбуки будут стартовать.

логично?

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)

Новые поколения процессоров ядро линукса

Нет, они не ядро линукса. Они всё ещё процессоры.

Да и ядра линукса в них нет, есть обычные или графические.


Ладно, теперь по теме:

По опыту знаю и часто встречаю на форумах, что когда выходит новое оборудование (будем говорить, к примеру, о ноутбуках, x86_64) должно пройти какое-то время (возможно даже короткое), чтобы ядро линукса «подхватило» новую железку.

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

Может ли новый ноутбук не стартовать только из-за нового процессора?

Может. Теоретически. На практике такого обычно не случаются.

Я себе представляю это так, что существуют какие-то базовые инструкции в процессоре, которые позволяют просто загрузку и работу, а новые инструкции - это просто плюшки (скорость, ACPI,..), которые подъедут с новым ядром со временем.

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

Новые процессоры по набору инструкций совместимы со старыми, но могут включать новые. Старые наборы инструкций никто не удаляет. Так что даже если у тебя всё собрано не под generic, а под проц предпоследнего поколения, то на проце последнего всё заработает. Вот в обратную сторону — уже не обязательно.

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

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

На x86-64-v2 перешли вроде только RHEL9 и OpenSUSE Tumbleweed, про x86-64-v3 я даже не слышал, а x86-64-v4 еще долго не услышим. Так что новых команд в программах можно не ждать.

Старые наборы инструкций никто не удаляет.

Только недавно Intel удалил SGX, но обычно они не используются. AVX512 из современных поколений вырезали, но в Xeon их получить можно.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)

Ты 100-й вантузятник или иногда пробуешь запускать линукс? Тебе надо особым образом объяснить что ядро собирается обычно в самом совместимом виде и работает начиная с пентиум 4? То есть никому даром ненужно навязывать массам только самые новые инструкции процессора. Это на винде одни дебилы сидят и считают что чего-то да понимают, а на линуксе все прямо и понятно.

anonymous
()

Я себе представляю это так, что существуют какие-то базовые инструкции в процессоре, которые позволяют просто загрузку и работу, а новые инструкции - это просто плюшки (скорость, ACPI,..), которые подъедут с новым ядром со временем.

Скорее нет, чем да.

Не будем касаться всей, условно, периферии (аудио, сеть и т.п.).

Вся периферия сейчас в процессоре, вот в чем дело, понимаете.

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

Ну некоторые пересобирают особо критичный по производительности софт тупо под себя. А некоторые вообще на Gentoo сидят. Так что для кого-то это актуально.

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

4.2 Через cpuid детектируется набор поддерживаемых процессором инструкций и соответствующие ветки кода выбираются во время исполнения.

anonymous
()
Ответ на: комментарий от CrX

Старые наборы инструкций никто не удаляет

4.2 Амд выкинули fma4, xop, 3dnow. Интел урезает скорость работы старых инструкций вроде mmx.

anonymous
()
Ответ на: комментарий от dataman

Можно еще использовать контейнеры из Clear Linux, но я говорю что софт в репозиториях собирается под x86-64-v1.

MOPKOBKA ★★★★
()

Я почему то уверен, что пока делают новый процессор, патчи его поддержки распихивают всюду куда только можно, чтобы на момент старта продаж всё было где надо

Кроме того, всегда есть некий уровень совместимости, который не подлежит сомнению, и любая самая супер пупер видеокарта заведется как VESA/VGA базовое

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Кроме того, всегда есть некий уровень совместимости, который не подлежит сомнению, и любая самая супер пупер видеокарта заведется как VESA/VGA базовое

Это справедливо и для встроенного видео?

forest22
() автор топика

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

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

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

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

для наглядности посмотри историю портирования ядра линукса на макинотошовские ARM-ноутбуки

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

Старые наборы инструкций никто не удаляет

Удаляют)

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

Можно вручную интринсиков/ассемблера напихать, не собирая под больше чем -v1.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Я почему то уверен что заведется точно в базовом VESA режиме

Было бы неплохо. Забыл про эту опцию, когда столкнулся.

forest22
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Сейчас uefi gop вместо этого.

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

https://www.phoronix.com/news/Glibc-2.33-Coming-HWCAPS

Система поиска библиотек практически не используется

https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/configure#l108

В некоторых проектах есть определение процессора, как и в glibc, но это единичные приложения, просто от нового компилятора это не появляется

Требуется поддержка ядра, программ, а если просто что то собирать новым компилятором, или если Canonical соберет, то просто так новых команд не появится. Поясняю, потому что комментарий CrX можно не так понять.

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

Для функций самой libc зато диспатчинг используется: https://sourceware.org/git/?p=glibc.git;a=blob;f=configure;h=1df2f2e6d12e59e534af085bf1f4bd3e470533eb;hb=HEAD#l1468

но это единичные приложения

Большинство критических по производительности библиотек.

просто от нового компилятора это не появляется

Ясен хрен, руками пишут код. И нового компилятора и ассемблера даже не нужно, могут новые инструкции вообще тупо хекс байтами вставлять.

anonymous
()

Касательно инструкций процессора – это наверно больше вопрос к компилятору GCC, когда он сможет их поддержать. Ядро же им компилируется.

А так да, если регистры стандартны, то ничего менять не надо. Смещения в памяти стандартны – все заработает как есть.

Таблицы аспи – это наверно больше к биосу вопрос. К производителям железа. Если аспи правильно настраивает оборудование – все будет хорошо.

В моей практике, отличались Интел Атом х86, и Вортекс DX3, который тоже х86. У них были разные смещения в памяти, отвечавшие за одно и то же. Тут конечно ядро и драйверы должны иметь это ввиду.

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

про x86-64-v3 я даже не слышал

gentoo

anonymous
()
Ответ на: комментарий от forest22

Да, если не грузить фирмварь, потому как нет гарантии что когда фирмварь загрузится комп будет продолжать работать. Таким образом intel hda может не дружить с интеловской встройкой UHD770 после загрузка ca0132 для Creative AE-7 и вся система встает колом как правило.

anonymous
()

Схемы энергосбережения, планировщик по мелким и крупным ядрам - самое простое где нужно обновление. Не знаю как Интел, но у амд годами это исправляется

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

за ноутбук, который не стартует, никто денешек не заплатит, а значит и никто делать не будет. значит все новые ноутбуки будут стартовать.

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

По опыту до «не будет стартовать» в X86 семействе точно не будет. Максимум зловредности с которой встречался - стартует но абослюно неюзабельно ибо клавиатура не работает - это freeBSD на райзенах 6000 и новее. Уже два года, вышел мажораный релиз 14.0, минорный 14.1 - но как не работало так и не работает. Линукс обычно чинят быстрее и фичу с клавиатурным прерыванием райзенов на линуксе починили очень быстро.

С чем будут проблемы -так это suspend, hibernate, и звук.Но это связяно не столько с процессором сколько с ноутбучной платформой в целом.

Qui-Gon ★★★★★
()

ну к примеру, в планшете на baytrail у меня часы шли с произвольной скоростью - линукс думал, что частота процессора менялась, когда она оставалась постоянной. Думаю, оборудование в такой ситуации может повести себя как угодно

mittorn ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.