AISuite — очень сомнительной полезности набор, если честно. Если можно избежать его установки — лучше так и сделать.
Вообще, софт от производителей железа бывает двух видов: отличные сторонние программы, которые были куплены и ребрендированны (так RivaTuner стал MSI Afterburner'ом, WinUSB Maker — Zotac WinUSB Maker'ом, CPU-Z и GPU-Z сменили шкурки для ASUS и Gigabyte, а у EVGA вообще весь софт такой, и это правильно) и написанные в недрах этих самых производителей поделки на .NET, крайне кривые и глючные, устанавливающие в систему кучу ненужных драйверов и служб, конфликтующие с нормальными программами мониторинга и управления или портящие BIOS при попытке поменять в нем картинку при загрузке.
Лучший способ избежать подобных глюков — чистая установка системы сразу после покупки ПК и вдумчивое добавление программ, а не отчаянное их удаление в попытке выяснить, какая именно из тех ненужных 20 утилит мешает системе работать нормально.
НДМГ — такая жуткая дрянь, что пусть хоть на керосине летают, и черт с ним, с удельным импульсом.
Я понимаю, когда ракеты вроде «Синевы» летают на НДМГ+АТ, но у них и задачи другие совсем.
Правильно. Загрузчик нужен все равно, но его теперь гораздо проще написать, т.к. сервисы вроде доступа к файловой системе подключенных дисков, сети (браузер пока не встречал, но TCP и UDP уже имеются), видеокарте, USB-устройствам и т.п. предоставляет UEFI.
Microsoft — одни из самых ранних и активных членов UEFI Forum, и они повлияли на его разработку очень сильно. Половина форматов файлов, используемых в UEFI мало чем отличается от разработанных MS для Windows: DXE-драйверы и UEFI-приложения хранятся в исполняемых файлах PE32+ (с неизменной еще с DOS сигнатурой MZ в начале файла), сертификаты хранятся в структурах WIN_CERTIFICATE, да и INTN EFIAPI EfiMain подозрительно напоминает WinMain.
SecureBoot же MS продавливает очень сильно, и Windows 8.1 даже пишет в правом нижнем углу рабочего стола «SecureBoot отключен», чтобы пользователь видел, что системе это не нравится. Вся возня с SecureBoot сделана ради одной единственной цели — усложнить конечному пользователю модификацию БИОСа или загрузчика ОС, независимо от цели модификации. Если у них все получится, как они хотят, то придется делать «Jailbreak» своему ноутбуку. К счастью для нас, пока все их усилия не привели ни к чему, кроме небольшой потери времени на поиск недокументированных ключей или сборку программатора SPI-flash из спичек и желудей, но эта ситуация может измениться к худшему с выходом каждой следующей линейки процессоров и чипсетов Intel. На данный момент — все фарс и тлен, специалисты по безопасности хмыкают и крутят пальцем у виска, а паранойики уже давно на ARM, еще с момента переезда Management Engine в чипсет.
Пока никто Compatibility Support Module выбросить не додумался, это да, но это не совсем «опция по выключению». Весь стек UEFI (кроме драйверов на то оборудование, для которого есть старые Option ROM) продолжает работать, а Legacy BIOS запускается в режиме эмуляции. Возможно, на серверах это не так, не знаю. Олдскульные загрузчики с х86 не выкинут еще лет 10, наверное, слишком ценна обратная совместимость.
Не знаком с рынком серверов, кроме мелочи на базе плат SuperMicro, но на десктопах, ноутбуках и этих мелких серверах уже с 2011 года нет никакого выбора, UEFI или не UEFI — Intel сделала его за всех нас. Ни одни десктопный вендор более плат без UEFI не делает. За все ноутбуки не скажу, но тоже давно БИОСов не видел. Хороший, плохой, в общем — пушка все равно у Intel.
Можно попробовать снять дамп БИОСа с любого достаточно современного сервера и посмотреть, что там. Практически уверен, что там UEFI.
SecureBoot со своими ключами решает эту проблему, по идее.
Но по факту, на десктопах сейчас безопасность UEFI — никакая. Я могу за вечер написать вирус, аналогичный «чернобылю», который будет использовать только стандартный и подписанный сертификатами AMI Flash Utility, и при этом невосстановимо (без программатора) портить BIOS с потерей всего, что в нем было (серийных номеров, ключей для DTS UltraPC, Virtu, SLI и Windows 8). Спасает только одно — портить компьютеры нынешним злоумышленникам не выгодно.
Вся левая ерунда нужна маркетологам, чтобы было чем выделить свою плату среди сотни других таких же. «У нас звук при загрузке!», «Зато мы умеем с флешки БИОС восстанавливать после сбоя!», «А у нас управление настройками БИОСа возможно прямо из ОС», «А на нашу плату можно Mac OS X поставить без бубна» и так далее. Ясно, что нам, как потребителям, эта возня мышинная только вредит — слишком много времени тратится на вытребеньки, а не на отладку действительно важного кода.
Про ключи — это отдельная тема. Ребята решили устроить Chain of trust, которая начиналась бы поближе к аппаратуре (спят и видят ключи прямо в процессоре, я уверен), а заканчивалась поближе к кошельку пользователя.
Идея подписывания содержимого микросхемы SPI и выполняемого при загрузке кода — она не настолько плохая, как может показаться, с учетом того, что теперь obscurity нет вообще, и любая программа может делать с содержимым микросхемы SPI все, что угодно.
Никто, черт побери, не мешал решить эту проблему обыкновенным джампером или тумблером на задней панели и не городить огород. SecureBoot в его нынешнем виде продавлен Майкрософтом и сочувствующими, т.к. MS потеряла немало прибыли на пользователях, добавлявших себе в БИОС таблицу SLIC и активировавших свою систему как OEM'ную, и теперь им любые модификации БИОСа — как соль на рану.
Плюс UEFI в том, что некоторые глюки, которые меня бесят, я могу взять и отладить самостоятельно, пользуясь привычными и доступными средствами, дизассемблерами, эмуляторами и отладчиками, не разгребая при этом BLOB на 4 мегабайта.
Понятно, что сделано не очень, и линуксоиды справились бы лучше, скорее всего. Но вариантов нет, изучаем то, что есть.
Пользуйся UEFI или иди на ARM — тут позиция Intel и производителей десктопных плат вполне однозначная.
Сложность, по сравнению с BIOS'ами последних лет, только понизилась.
Я говорю как о сложности программирования и отладки, так и о сложности процесса загрузки.
Основная задача UEFI — загрузить и выполнить все доступные прошивки для всех подлюченных к системе устройств, и выполняет он эту задачу на «твердую четверку». Я бы тоже предпочел CoreBoot, если бы у меня был выбор, но между BIOS и UEFI я выбираю UEFI, несмотря на все его недостатки.
Опыт показывает, что идея таких загрузчиков, которые «немного проинициализировали и отдали управление ОС» хорошая, но слишком трудно реализуемая. Со стороны ОС приходится делать слишком много действий, отчего появляются устройства, которые не работают нигде, кроме конкретной ОС (не будем показывать на нее пальцем). Поэтому с течением времени в BIOS начали переносить все больше и больше вещей, которыми «должна заниматься ОС», тот же ACPI можно сразу вспомнить (которым до сих пор никто, кроме Apple, толком и не научился пользоваться). Современным ОС для правильной и быстрой загрузки понадобился некий уровень абстракции от оборудования, который решал бы задачи начальной инициализации и отдавал ОС уже подготовленные к дальнейшей работе устройства (которым не нужно дополнительно загружать прошивку, к примеру), для чего и был создан UEFI.
Я согласен с тем, что это далеко не идеальное решение, где-то слишком перегруженное, где-то довольно плохо продуманное и тот же CoreBoot в деле загрузки Linux'а даст прикурить любому UEFI, но сравнивать возможности и скорости UEFI с возможностями и скоростью BIOS нельзя уже сейчас — слишком большой разрыв. Когда отладят кодовую базу и перестанут устраивать в коде революции каждые полгода — будет совсем хорошо.
Не понял про несовместимость.
От всего UEFI после фазы BDS и передачи управления ОС остается совсем малая часть: Runtime-сервисы и SMM-драйверы (через которые после внедрения SecureBoot реализуется запись в NVRAM и микросхему SPI). Если несовместимость и будет, то это будет желанием производителя платформы, а не разработчиков UEFI. Да и BIOS ничего не мешает сделать несовместимым ни с чем, при желании.
Дело в том, что вводная на уже написана.
Если у вас есть, что добавить к той моей статье — отлично, я с удовольствием почитаю, но рассказывать второй раз про одно и то же (и используя в качестве источника ту же самую документацию по UEFI PI) было бы странно, на мой взгляд.
Я вас поддерживаю в любом случае, и напоминаю НЛО об остуствии хаба UEFI, в который как нельзя лучше попали бы эта и похожие статьи. Уважаемая хабракоманда, сделайте с этим что-нибудь, пожалуйста. А уж за наполнением дело не станет.
Я могу привести несколько преимуществ UEFI перед традиционным BIOS, ради которых я бы согласился на переход немедленно:
0. Переход с 16-битного реального режима в 64-битный защищенный и плоскую модель памяти.
1. Использование С вместо ассемблера для более 95% кода.
2. Модульность и возможность неразрушающего редактирования как отдельных модулей, так и всего образа БИОСа.
3. Наличие открытого исходного кода большей части модулей (проект TianoCore) и открытой документации (uefi.org).
4. Поддержка передачи отладочных сообщений по шине USB (на coreboot.org уже собрали устройство для их получения, копеечное).
5. Возможность написания собственных программ, исполняемых в среде UEFI: как PEI и DXE-драйверов, так и обычных приложений.
6. Кроссплатформенность части модулей благодаря интерпретатору байткода (EBC).
Можно найти еще плюсов, тут и UEFI GOP, или замена Option ROM на EFI-драйверы, т.д и т.п. Да и SecureBoot при правильном его применении — это скорее хорошо, чем плохо.
Мне кажется, это уже было в Симпсонах. :)
Напишите про другие интересные вещи, пожалуйста.
Про EBC, про недавний вынос всего, чего можно, в SMM, про защиты от прошивки модифицированного БИОСа и методы их обхода, про CryptoPkg и сетевой стек UEFI — да про что угодно, там тема необъятная.
Вообще, софт от производителей железа бывает двух видов: отличные сторонние программы, которые были куплены и ребрендированны (так RivaTuner стал MSI Afterburner'ом, WinUSB Maker — Zotac WinUSB Maker'ом, CPU-Z и GPU-Z сменили шкурки для ASUS и Gigabyte, а у EVGA вообще весь софт такой, и это правильно) и написанные в недрах этих самых производителей поделки на .NET, крайне кривые и глючные, устанавливающие в систему кучу ненужных драйверов и служб, конфликтующие с нормальными программами мониторинга и управления или портящие BIOS при попытке поменять в нем картинку при загрузке.
Лучший способ избежать подобных глюков — чистая установка системы сразу после покупки ПК и вдумчивое добавление программ, а не отчаянное их удаление в попытке выяснить, какая именно из тех ненужных 20 утилит мешает системе работать нормально.
Я понимаю, когда ракеты вроде «Синевы» летают на НДМГ+АТ, но у них и задачи другие совсем.
SecureBoot же MS продавливает очень сильно, и Windows 8.1 даже пишет в правом нижнем углу рабочего стола «SecureBoot отключен», чтобы пользователь видел, что системе это не нравится. Вся возня с SecureBoot сделана ради одной единственной цели — усложнить конечному пользователю модификацию БИОСа или загрузчика ОС, независимо от цели модификации. Если у них все получится, как они хотят, то придется делать «Jailbreak» своему ноутбуку. К счастью для нас, пока все их усилия не привели ни к чему, кроме небольшой потери времени на поиск недокументированных ключей или сборку программатора SPI-flash из спичек и желудей, но эта ситуация может измениться к худшему с выходом каждой следующей линейки процессоров и чипсетов Intel. На данный момент — все фарс и тлен, специалисты по безопасности хмыкают и крутят пальцем у виска, а паранойики уже давно на ARM, еще с момента переезда Management Engine в чипсет.
Можно попробовать снять дамп БИОСа с любого достаточно современного сервера и посмотреть, что там. Практически уверен, что там UEFI.
Но по факту, на десктопах сейчас безопасность UEFI — никакая. Я могу за вечер написать вирус, аналогичный «чернобылю», который будет использовать только стандартный и подписанный сертификатами AMI Flash Utility, и при этом невосстановимо (без программатора) портить BIOS с потерей всего, что в нем было (серийных номеров, ключей для DTS UltraPC, Virtu, SLI и Windows 8). Спасает только одно — портить компьютеры нынешним злоумышленникам не выгодно.
Они написаны не переводчиком документации, и не диванным аналитиком, и уже этим они очень ценны.
Искреннее большое спасибо.
Про ключи — это отдельная тема. Ребята решили устроить Chain of trust, которая начиналась бы поближе к аппаратуре (спят и видят ключи прямо в процессоре, я уверен), а заканчивалась поближе к кошельку пользователя.
Идея подписывания содержимого микросхемы SPI и выполняемого при загрузке кода — она не настолько плохая, как может показаться, с учетом того, что теперь obscurity нет вообще, и любая программа может делать с содержимым микросхемы SPI все, что угодно.
Никто, черт побери, не мешал решить эту проблему обыкновенным джампером или тумблером на задней панели и не городить огород. SecureBoot в его нынешнем виде продавлен Майкрософтом и сочувствующими, т.к. MS потеряла немало прибыли на пользователях, добавлявших себе в БИОС таблицу SLIC и активировавших свою систему как OEM'ную, и теперь им любые модификации БИОСа — как соль на рану.
Плюс UEFI в том, что некоторые глюки, которые меня бесят, я могу взять и отладить самостоятельно, пользуясь привычными и доступными средствами, дизассемблерами, эмуляторами и отладчиками, не разгребая при этом BLOB на 4 мегабайта.
Понятно, что сделано не очень, и линуксоиды справились бы лучше, скорее всего. Но вариантов нет, изучаем то, что есть.
Пользуйся UEFI или иди на ARM — тут позиция Intel и производителей десктопных плат вполне однозначная.
Я говорю как о сложности программирования и отладки, так и о сложности процесса загрузки.
Основная задача UEFI — загрузить и выполнить все доступные прошивки для всех подлюченных к системе устройств, и выполняет он эту задачу на «твердую четверку». Я бы тоже предпочел CoreBoot, если бы у меня был выбор, но между BIOS и UEFI я выбираю UEFI, несмотря на все его недостатки.
Я согласен с тем, что это далеко не идеальное решение, где-то слишком перегруженное, где-то довольно плохо продуманное и тот же CoreBoot в деле загрузки Linux'а даст прикурить любому UEFI, но сравнивать возможности и скорости UEFI с возможностями и скоростью BIOS нельзя уже сейчас — слишком большой разрыв. Когда отладят кодовую базу и перестанут устраивать в коде революции каждые полгода — будет совсем хорошо.
От всего UEFI после фазы BDS и передачи управления ОС остается совсем малая часть: Runtime-сервисы и SMM-драйверы (через которые после внедрения SecureBoot реализуется запись в NVRAM и микросхему SPI). Если несовместимость и будет, то это будет желанием производителя платформы, а не разработчиков UEFI. Да и BIOS ничего не мешает сделать несовместимым ни с чем, при желании.
Если у вас есть, что добавить к той моей статье — отлично, я с удовольствием почитаю, но рассказывать второй раз про одно и то же (и используя в качестве источника ту же самую документацию по UEFI PI) было бы странно, на мой взгляд.
Я вас поддерживаю в любом случае, и напоминаю НЛО об остуствии хаба UEFI, в который как нельзя лучше попали бы эта и похожие статьи. Уважаемая хабракоманда, сделайте с этим что-нибудь, пожалуйста. А уж за наполнением дело не станет.
0. Переход с 16-битного реального режима в 64-битный защищенный и плоскую модель памяти.
1. Использование С вместо ассемблера для более 95% кода.
2. Модульность и возможность неразрушающего редактирования как отдельных модулей, так и всего образа БИОСа.
3. Наличие открытого исходного кода большей части модулей (проект TianoCore) и открытой документации (uefi.org).
4. Поддержка передачи отладочных сообщений по шине USB (на coreboot.org уже собрали устройство для их получения, копеечное).
5. Возможность написания собственных программ, исполняемых в среде UEFI: как PEI и DXE-драйверов, так и обычных приложений.
6. Кроссплатформенность части модулей благодаря интерпретатору байткода (EBC).
Можно найти еще плюсов, тут и UEFI GOP, или замена Option ROM на EFI-драйверы, т.д и т.п. Да и SecureBoot при правильном его применении — это скорее хорошо, чем плохо.
Напишите про другие интересные вещи, пожалуйста.
Про EBC, про недавний вынос всего, чего можно, в SMM, про защиты от прошивки модифицированного БИОСа и методы их обхода, про CryptoPkg и сетевой стек UEFI — да про что угодно, там тема необъятная.
А можно выложить архив с результатом
для ленивых?