LINUX.ORG.RU
ФорумTalks

Читал про UEFI, много думал.

 , ,


4

3

Господа, читайте и изучайте UEFI, если всё ещё не. Это базовая база нынче!

Я когда-то писал на ассемблере в школе-универе для развлечения бут-сектора для дискет и HDD, MBR это называлось - это такой 512-байтный самый первый сектор диска, который автоматически считывался BIOS на x86 в память по фиксированному адресу и управление туда передавали. У меня был ThinkPad 755C для развлечений. Далее ты всё должен был делать сам. В 512-байтный код надо было запихнуть самодельный примитивный парсер корня FAT12/FAT32, чтобы он нашёл в корне ФС некий условный файл /kernel.bin и передал туда управление - это твой условной grub или вообще сразу же ядро самописной маленькой OS - я писал детскую OS, которая переводила cpu в protected mode и умела параллельные задачи запускать - мигание какой-то лампочкой клавиатуры и считывание каких-то байтиков с неё и какой-то крутящийся курсор. Это был мой kernel.bin бугага.

А нынче эти времена поменялись. Теперь нет никакого BIOS - точнее теперь эту сущность стали называть просто бездушно firmware и это firmware должно соответствовать спецификации UEFI. UEFI - это стандарт внешних и (где-то внутренних) признаков, которые этот BIOS должен проявлять. Раньше как было - BIOS на каждой матери был устроен как захотят, главное чтобы умел int 10h (видео), int 13h (диск), int 16h (клавиатура) и какие-то другие программные прерывания обрабатывать. Ну и ещё было выражение «зайти в BIOS» - это какая-то F1 клавиша и синий экран с менюшками и там можно было save changed and exit - но такой фигни могло и не быть и BIOS всё равно у тебя был. Внутри этих прерываний был чёрный ящик тащемта и работало оно только в 16-bit real mode. Теперь всё это выкинуто нахер. UEFI - это прям как маленькая OS, которая изначально работает в protected mode, там есть концепции драйверов, даже приложений. Есть разные фазы загрузки всего. Оно умеет парсить FAT32 и доставать оттуда загрузчики и приложения и исполнять всё это.

UEFI умеет парсить FAT32, в которой лежат файлики .efi в формате windows PE (MZ в начале файла, микрософт оставила свой след, бугага). В FAT32 есть разные папочки, в них разные .efi файлики, часть из которых имеет фиксированные имена и содержит дефолтные загрузчики и загрузчик этой вашей убунты оформлен как /boot/efi/EFI/ubuntu/grubx64.efi а сама /boot/efi есть точка монтирования vfat-раздела на диске, и этот раздел «осознаётся» UEFI firmware на старте системы.

Ещё у UEFI есть стандарт на хранение кучи key=value переменных - «efivars» которые открыты на чтение-запись, часть из которых имеет фиксированные имена и форматы, а часть пользовательские, можно даже туда телефон бабушки положить и он будет лежать во флешке на матери. Эти переменные можно в линуксах увидеть тут: ls -l /sys/firmware/efi/efivars - оно невозбранно смонтировано как type efivars. В этих переменных лежит и порядок загрузки с разных разделов и ещё всякой дофига фигни, а GUI вашего BIOS нынче просто просматривет эти переменные, а не хранит «настройки BIOS» в каком-то своём формате в чёрном ящике.

Вместо BIOS-прерываний типа int 16h теперь какая-то там системная таблица протоколов, в которой можно найти EFI_SIMPLE_TEXT_INPUT_PROTOCOL и поюзать клавиатуру.

UEFI стартует за несколько разных строго определённых «фаз», в UEFI есть свой шелл с фиксированными командами, в UEFI есть драйверы, есть приложения, есть спецификация на гуй и вообще дохрена всего, я охренел.

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



Последнее исправление: lesopilorama (всего исправлений: 4)
Ответ на: комментарий от quwy

превратились в такой переусложненный пипец, что страшно представить, каких усилий вендорам стоило их поддерживать.

Поясни этот вопросик господуля. Если там где-то BIOS был переусложнён, значит было так надо железу? Если эта сложность была нужна, она и в UEFI будет - ну всмысле если на серверной материнке надо сделать 150 каких-то инициализаций и проверок, то их и в UEFI надо будет сделать, материнка-то не стала проще.

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

В 512-байтный код надо было запихнуть самодельный примитивный парсер корня FAT12/FAT32

На деле под код там было гораздо меньше, особенно на HDD. Но никто не запрещал из этих <512 байт считать еще хоть мегабайт с не распределенного пространства или с фиксированной выделенной области внутри своей ФС. Загрузчик WinMe, например, занимал три первых сектора.

Да и парсить корень ФС не обязательно, кстати. Тот же DOS-овый загрузчик ничего не парсил, он просто заранее знал где лежит IO.SYS (именно поэтому простое копирование системных файлов не делало дискету загрузочной, нужно было сообщить загрузчику их расположение, что и делала команда sys).

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

Не было в старых биосах efivars и прочих там подобных штукарей и оформления загрузчиков по стандарту .efi в файловой системе…

Это как-то мешало всем интерфейсам биоса быть открытыми?

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

Это как-то мешало всем интерфейсам биоса быть открытыми?

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

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

попутно выбросив на мороз несколько набивших оскомину ограничений (типа таблицы разделов HDD).

Так GPT же. Никто ничего не выбросил.

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

Если там где-то BIOS был переусложнён, значит было так надо железу? Если эта сложность была нужна, она и в UEFI будет - ну всмысле если на серверной материнке надо сделать 150 каких-то инициализаций и проверок, то их и в UEFI надо будет сделать, материнка-то не стала проще.

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

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

Ну и ещё, когда есть стандарт, типа UEFI, можно и работу чуть проще зааутсорсить и запараллелить. Ну это проще, чем объяснять как конкретно кодить под твой биос - попросить UEFI-драйвер под тебя написать.

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

Так GPT же. Никто ничего не выбросил.

Выбросили фиксированную таблицу на четыре позиции, да еще имеющую ограничения на длину адреса/размера.

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

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

Если там где-то BIOS был переусложнён, значит было так надо железу?

В третий раз для танкистов объясняю… Там биосу приходилось гонять усб драйвера в smm режиме, и поверх них эмулировать контроллер клавы и мыши (и иногда ещё и IDE), дабы предоставить загрузчикам и легаси операционкам доступ к усб-устройствам.

Впрочем, если вы не можете даже фразу про открытость АПИ биоса понять, то вряд ли стоит пытаться дальше…

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

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

Наверное ты просто не умеешь объяснять или агрессивен как-то слишком, что тебя народ не понимает. Как-то ты неправильно себя спозиционировал в социуме, если испытываешь непонимание.

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

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

Только он и в UEFI, внезапно, всё это делает. Ещё и видео сервисы различные, все простейшие видеорежимы - эмулируются.

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

Только он и в UEFI это делает, внезапно.

Делает что? Доступ к усб-клаве/мыши через эмуляцию 8042? Пруфы будут?

Ещё и видео сервисы различные, все простейшие видеорежимы - эмулируются.

Пфф, это какие же?

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

Доступ к усб-клаве/мыши через эмуляцию 8042? Пруфы будут?

Конечно.

 printf ("keyboard\n");

  while (1)
  {
  int status = inportb(0x64);

if (!(status &<>1))
{
    continue;
}


int scancode = inportb(0x60);   /* Read in the scan code from port 60 */

      printf ("%d\n", scancode);
  }

Вот этот код прекрасно работает. Запущено из-под UEFI, в 64-х битном режиме. Только что перепроверил. Хех, даже сам засомневался, ты так уверенно ерунду порешь. Тебе проект выложить?

Пфф, это какие же?

Да все вот фреймбуферы простейшие, все эти VESA режимы - это всё софтовая эмуляция, причём, ценой твоего процессора и твоей оперативы. Ты, кстати, утверждал, что их невозможно из 32-х битного кода юзать. А как, по-твоему, VESA Framefuffer в Linux работал?

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

Хех, даже сам засомневался, ты так уверенно ерунду порешь. Тебе проект выложить?

Конечно. Ведь от вас дождаться объяснений того, под каким там ntvdm вы это запускаете, или прям как UEFI-приложение - лучше уж сразу выложите, чем мозги тут канифолить.

Да все вот фреймбуферы простейшие, все эти VESA режимы

При чём тут фреймбуферы? Ничего там не эмулируется - ни текстовые режимы (кои тоже в VESA входят), ни ВГАшные режимы - ничего не эмулируется. Есть просто фреймбуфер и всё.

Ты, кстати, утверждал, что их невозможно из 32-х битного кода юзать.

Что??? Кого? Я утверждал?

Заканчивайте с алкоголизмом. Если не выложите пруфы - дальнейший диалог бесполезен.

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

Вот этот код прекрасно работает. Запущено из-под UEFI, в 64-х битном режиме.

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

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

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

Вот тебе bootx64.efi - загрузчик, kernel.bin - программа, kernel64.tar.bz2 - проэкт. Расположение файлов :

/EFI/boot/bootx64.efi 
kernel.bin

Ничего там не эмулируется - ни текстовые режимы (кои тоже в VESA входят), ни ВГАшные режимы - ничего не эмулируется

Эмулируются, товарищ. Есть материнки, в которых имеется возможность отключить SMM. Редкие, промышленные. Так вот, при отключении SMM, пропадает видео. Это первое. Второе, посмотри lspci -v. Где там области памяти, замапленные в 640k? Нету их. А как тогда видеокарта эти данные, из областей памяти, фигурируемых в этих VGA и VESA областях, вообще достаёт, если эмуляции нет? И третье, я профилировал программу, пишущую в текстовый фреймбуфер. При записи в видеопамять, абсолютно неадекватные задержки. До 800 мкс на железе из 20-х годов. Ничем, кроме эмуляции видеокартинки, эти тормоза не объяснить.

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

И да, я напомню, что, если вы включили легаси-эмуляцию в биосе

Конечно, включил. А если её не включать, оно и без UEFI работать не будет.

В общем, если вы откопали биос переходной эпохи, где легаси включается даже в уефай режиме -

Это просто товарищ никак не связанные вещи. Она если включена, то работает везде. А если выключена - нигде не работает.

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

Конечно, включил. А если её не включать, оно и без UEFI работать не будет.

Так в большинстве биосов, она доступна только в режиме совместимости, где CSM эмулирует легаси-загрузку. Для чего, в редких случаях, эту опцию делали доступной и для режима uefi-загрузки - мне не ведомо. Включать её там - смысла нет, да и 2го такого биоса у вас уже не будет. Радуйтесь, что где-то откопали такой экземпляр. :)

Это просто товарищ никак не связанные вещи. Она если включена, то работает везде.

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

Эмулируются, товарищ. Есть материнки, в которых имеется возможность отключить SMM. Редкие, промышленные. Так вот, при отключении SMM, пропадает видео.

Вы бредите. SMM-эмуляция нужна только для легаси-загрузки, а не для уефай-режима. Кроме того, ВГА через СММ практически никто никогда не эмулировал (ходили слухи о каких-то интеловых интегряхах с такой функцией, но найти такие вряд ли удастся).

Где там области памяти, замапленные в 640k?

Для уефай-загрузки они и не нужны.

Ещё раз: я никогда и ни где не говорил, что современные биосы вообще ничего не эмулируют. Они всё эмулируют, но сделано там это в отдельном CSM модуле, который не включён по умолчанию, и постепенно искореняется.

Кейс, когда эмуляция легаси доступна даже для уефай-режима - редкий и не нужный, и, насколько я знаю, уже исчез с рынка.

На деле, вполне очевидно, что, если вы поддерживаете легаси бут, то уефай вам, и правда, нафиг не сдался, и ничего не упрощает, а только усложняет. Если вы это и пытались донести - ну отлично, донесли. А я, надеюсь, донёс, что дни CSM - сочтены.

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

Так в большинстве биосов, она доступна только в режиме совместимости, где CSM эмулирует легаси-загрузку.

Да вот нет, она доступна всегда, и никаким образом с CSM не связана. Ну, давайте, сейчас ещё один такой «редкий» экземпляр найду. Легко, прям рядом стоящий компьютер поведёт себя также, уверен. Мне даже монитор прям лень переключать.

Они всё эмулируют, но сделано там это в отдельном CSM модуле, который не включён по умолчанию, и постепенно искореняется.

Нет, товарищ. CSM модуль эмулирует только прерывания BIOS. А эмуляция портов ввода вывода, областей памяти, никак с CSM не связана. Это SMM эмуляция. И её - никто не искореняет. Наоборот, всё больше на неё вешают.

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

Нет, товарищ. CSM модуль эмулирует только прерывания BIOS. А эмуляция портов ввода вывода, областей памяти, никак с CSM не связана. Это SMM эмуляция.

Да это понятно. Вопрос в том, что она нужна только для CSM. По тому, что для уефай-загрузчиков этот функционал доступен и так: https://uefi.org/specs/UEFI/2.10/10_Protocols_Device_Path_Protocol.html

Keyboard: ACPI Device Path: _HID PNP0301, _UID 0

Соответственно, легаси эмуляция им по-просту не нужна. Вот её, как правило, и нет в этом режиме. Может, добавили для того, чтобы какой-то загрузчик было бы проще спортировать…

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

Ага, так и есть. Рядом стоящий компьютер оказался таким же «редким». Вот тебе фоточка

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

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

Соответственно, легаси эмуляция им по-просту не нужна.

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

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

А она нужна, и она есть.

У вас (пока) есть, у меня (уже) нет.

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

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

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

На некоторых ноутах этой эмуляции может не быть в принципе.

Мы говорили о том, что уефай избавляет биос от легаси. И по тому, нужен. Вы меня «поправили», заявив, что не избавляет, если легаси включить. Ну я это и так подразумевал, хотя поправка принимается. :) Поддержка легаси будет устранена полностью - её и сейчас уже много где нет, вот, например, в ноутах.

Но будет эмуляция многого другого. Я не встречал x86 без SMM.

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

anonmyous ★★
()

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

еще лет 20 назад можно было без загрузки ОС посерфить в интернете, полистать пдфки и поиграть в простые игры. Почему только сегодня поднялся вопрос возможностей UEFI?

помница асус обещал запуск современных игр без старта ОС. Но дальше обещаний дело не пошло.

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

Мы говорили о том, что уефай избавляет биос от легаси.

Нет, это не мы говорили об этом, а ты пытаешься это доказать. Я же тебе говорю, и показываю, что ни от чего он, на деле, не избавляет, и делает ровно тоже самое. Кроме эмуляции прерываний BIOS, может быть. Экономия пары килобайт оперативы, ОК. Её так не хватает. В областях, где давно никто не работает. Ради этого, надо было весь огород городить, конечно.

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

Ещё раз говорю тебе, что. Ты просто в это верить отказывается. Все простейшие фрейм буферы - софтверно эмулируемые. Ты когда-нибудь сравнивал скорость отрисовки буковок в Линукс консоли и Иксах? Сравни, разница громадна. Современные видеокарты просто тупо не умеют в 2d. Прикинь, я сам в шоке был, когда узнал это. Какие тебе пруфы, ты ничему не веришь, кроме своего предствления о прекрасном.

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

Ясно, что ядро UEFI-компатибле firmware может быть закрытым на конкретной материнке

Сама реализация UEFI открыта под свободной лицензией: https://github.com/tianocore/edk2. Закрыты конкретные драйверы вендора.

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

Я же тебе говорю, и показываю, что ни от чего он, на деле, не избавляет, и делает ровно тоже самое.

Ну так а там, где нет эмуляции легаси? Я-то про это говорил, а не про те случаи, где всё пока на месте.

Все простейшие фрейм буферы - софтверно эмулируемые.

В смысле, софтверно эмулируемые? Как конкретно? Ну допустим есть у вас СММ обработчик. И что он должен делать с фреймбуфером? Скопировать его в другой фреймбуфер?

Фреймбуфер - это минимальная абстракция, которую не надо эмулировать. Её понимает любая видюха, и это видно даже из lspci -v.

Ты когда-нибудь сравнивал скорость отрисовки буковок в Линукс консоли и Иксах? Сравни, разница громадна.

Как я это должен сравнить? На глаз разницы не вижу. Да и кроме того, эмуляцию fb поверх kms никто не использует. Так что как заставить линукс именно через фреймбуфер буковки выводить, я понятия не имею. Сравнивать надо с каким-то загрузчиком, который пользуется фреймбуфером от бутсервиса.

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

И что он должен делать с фреймбуфером? Скопировать его в другой фреймбуфер?

Это как минимум. Что, между прочим, трудозатратно, понимаешь, наверное. ~800 мкс я насчитал украденного у меня времени при записи в видеопамять. ~2400 команд процессора, пропуск 8 байтов по RS.

Фреймбуфер - это минимальная абстракция, которую не надо эмулировать. Её понимает любая видюха

Есть сомнения в том, что она его понимает достаточно нейтивно. Драйверы типа glamor появились не зря. Видеокарты вообще в 2d сами не могут.

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

Это как минимум.

Зачем??? Чем 1 хуже другого?

Есть сомнения в том, что она его понимает достаточно нейтивно.

Таких сомнений нет, если она может отображать свою память в ММИО-регион (а это видно даже из lspci).

Драйверы типа modesetting появились не зря.

Конечно не зря: надо задать режим, едид у монитора попросить, и всё такое прочее. И обеспечить работу DRI драйвера.

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

Не modesetting, а glamor, я ошибся. В lspci видно только то, что замаплен какой-то регион. С чего ты взял, что это - фреймбуфер? Это может чтобы шейдеры и текстуры быстрее влетали.

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

Не modesetting, а glamor, я ошибся.

Так это 2д-акселерация, а не вообще 2д, типа фреймбуфера. К фреймбуферу гламур отношения не имеет. Блиты, ротейты, скейлинг - вот что в 2д надо ускорять.

С чего ты взял, что это - фреймбуфер? Это может чтобы шейдеры и текстуры влетали.

Да хотя бы с того, что для текстур используется DMA, то есть ММИО-маппинг там как раз и не нужен. Вычтите из всей видео памяти тот кусок, что виден в lspci, и всё станет понятно.

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

В lspci виден либо 256к регион, либо супердохрена (resizeable bar) Ни то, ни другое не говорит ни о чем физическом. Это просто стандартные регионы, выделенные для видеокарт, эти размеры не говорят ни о чем вообще. Хоть вычитай, хоть умножай, всё равно получишь ха́й.

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

В lspci виден либо 256к регион, либо супердохрена

03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezann
e [Radeon Vega Series / Radeon Vega Mobile Series] (rev c2) (prog-if 00 [VGA con
troller])
        Subsystem: Hewlett-Packard Company Device 8919
        Flags: bus master, fast devsel, latency 0, IRQ 48, IOMMU group 5
Memory at d0000000 (64-bit, prefetchable) [size=256M]
anonmyous ★★
()
Ответ на: комментарий от lenin386

Ну так это ровно для 8К-фреймбуфера хватит. А всё, что выше - через DMA, туда уже текстурки можно кидать.

anonmyous ★★
()

В 512-байтный код надо было запихнуть самодельный примитивный парсер корня FAT12/FAT32, чтобы он нашёл в корне ФС некий условный файл /kernel.bin

Этих 512 (строго говоря, 446) байт недостаточно, чтобы разместить там даже примитивный драйвер файловой системы. Там вся логика – считать N байт по указанному адресу с устройства 0x80 в заданный регион оперативной памяти и сделать jmp в начало этого региона.

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

Зачем???

Это очень хороший и интересный вопрос. Дело в том, софверно 1) всегда дешевле 2) проще исправить ошибку прошивочкой. Делают железку максимально дубовую и универсальную, ньюансы добивают софтом - таков сейчас подход в моде. Чтобы факапов не было.

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

Дело в том, софверно 1) всегда дешевле 2) проще исправить ошибку прошивочкой.

Да не будет ошибки в реализации фреймбуфера, что за больные фантазии. Через СММ были попытки (неудачные в основном) легаси ВГА эмулировать. Может быть, 1 из таких материнок вам и попалась.

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

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

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

только почему-то факапов меньше не становится. и даже наоборот.

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

и как это помогает, если на «свободном UEFI» запускается чёрти что с блобами и занимается непонятно чем. ты его не можешь контролировать на своём компе, а вот оно тебя - запросто. по сути, это почти руткит от какого-то дяди.

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

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

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

ну, биос хотя бы был очень мелким, тупым (сначала вообще был просто EEPROM) и ничего особо опасного делать не мог. а вот UEFI может и само делать много чего и туда может насесть всякая малварь, до кучи.

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

ну, биос хотя бы был очень мелким, тупым

Тут дело в прогрессе и снижении стоимости объёма ROM, а не в BIOS как таковом. Полагаю в поздние BIOS тоже было много чего понапихано. При желании и secure boot для BIOS можно придумать.

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

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

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

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