Пока вы там сверху придумываете стартапы и накидываете бэкэнд на Руби, разработчики на С разрабатывают вашу пилу и решают проблему с медведями. Это тоже дело, и оно должно быть сделано прежде, чем на вашей системе вообще можно будет запустить Руби и соединить ее с интернетом, в любом году.
Непонятно, в чем преимущество C++ в тех нишах, где позиции С по прежнему сильны: embedded, firmware, kernel core, вот это все. Там не нужны исключения, полиморфизм и RTTI, там нет стандартной библиотеки, там мало толку от шаблонов, там часто вообще нет кучи, т.е. единственный доступный operator new — размещающий, и т.п.
Для «нормального» C++ нужен гораздо более жирный рантайм, а специалистов, умеющих писать на «обрезаном» С++ — намного меньше, чем специалистов по С, т.к. такому «ограниченному» использованию С++ почти нигде не обучают.
Для системного программирования у C маловато альтернатив, зато имеется огромный багаж существующего кода. Непонятно, на что его можно заменить сейчас там, где указатели реальны, а из инструментов отладки только UART и доброе слово?
На ум приходят Ada и Rust, но первый язык так и набрал популярности (хотя он во многих аспектах намного лучше подходит для системного программирования), а второй пока еще довольно молод, но я искренне за него болею.
Можно, конечно, попробовать «причесать» уже имеющийся С (Cyclone, Checked C, etc.) или ограничиться небольшим «безопасным» подмножеством языка (JPL Coding Rules, MISRA C, etc.), но это все мало кто может себе позволить, т.к. программировать с такими ограничениями умеют меньшее количество специалистов, и сама разработка в итоге становится дороже (иногда существенно) и медленее (иногда на порядок).
Я что-то не понимаю, наверное, но с учетом ограничений на использование break и continue то же самое делается без лямд и C++ конструкцией do {… } while(0);
Смайлы и эмодзи — это просто визуальный шум, ничего не добавляющий к разговору. У русского языка достаточно выразительных средств для передачи настроения, и если ваш словарный запас больше, чем у Эллочки-людоедки, то текстовые смайлы (и тем более графические эмодзи) вам уже практически не нужны. Более того, пиктограммы не воспринимаются всеми людьми одинаково, и то, что для вас «улыбающаяся рожица» для кого-то может быть «хитрая лыба» или «улыбка сквозь боль». Получить и отправить «целую тебя нежно» пока еще намного приятнее, чем ":*", и я очень надеюсь, что так будет и дальше.
efivars — это такая псевдо-ФС в Linux, абстракция над UEFI runtime-сервисами для работы с переменными — GetVariable, SetVariable, GetNextVariableName и QueryVariableInfo.
Зачем эту псевдо-ФС по умолчанию монтируют на запись — мне не ведомо, скорее всего для efibootmgr вышеупомянутого. Вследствие того, что конкретные реализации прошивок не всегда следуют последним стандартам, а efibootmgr — не самая всезнающая утилита, то на некоторых машинах её использование действительно приводит к «кирпичу», поэтому в этом смысле я согласен с автором — положи загрузчик на ESP в \EFI\BOOT\boot{архитектура}.efi и пусть диспетчер BDS прошивки сам его найдет и добавит в BootOrder/BootXXXX заведомо правильным образом.
Что же до использования GRUB/shim/bootmgr/черта-лысого — это вкусовщина и у делу не относится.
Если вам интересно, как устроены переменные BootXXXX и BootOrder, первая устроена вот так, а вторая — просто список из UINT16, этих самых XXXX.
Проблема же efibootmgr в том, что она пытается угадать формат DevicePath, который в различных версиях стандарта периодически обновляется, а у некоторых вендоров имеет и свои собственные расширения, поэтому если вы можете ей не пользоваться — лучше и не пользуйтесь, во избежание.
И о железе. Верифицированное ядро L4 точно также можно вскрыть, используя RowHammer, уязвимость в USB-контролере или IOMMU. Даже идеальная программа будет исполнятся на вполне реальном железе, а там такое количество глюков, недоработок, странностей и переходных процессов, что дыру можно найти практически всегда — были бы деньги и время на исследования.
P.S. Посмотрите вот это прекрасное видео о получении дампа прошивки графического планшета при помощи глитчинга.
А по поводу недавних массовых обновлений — это реакция на найденную широко известным в узких кругах Дмитрием d_olex Олексюком уязвимость ThinkPwn, которая оказалась на деле уязвимостью в референсном коде Intel и потому затронула не только Lenovo, а практически всех, и по реакции на которую можно легко понять, кто действительно занимается безопасностью своих прошивок, а кто так, погулять вышел.
Не списывайте ThinkPad'ы со счетов слишком рано, если Dell и HP не устраивают, а о безопасности тоже хочется подумать — варианты с TPM вполне можно использовать.
Про Apple рассказывать не могу из за NDA, но уже скоро смогу их рекомендовать с кристально чистой совестью — наша команда работает над этим в поте лица прямо сейчас.
Она не для меня принципиальна, а для автора статьи:
И 8 ГБ оперативной памяти (подкачала, всего лишь LPDDR3)
Современная ноутбучная DDR4 на частотах до 2133 имеет перед такой же ноутбучной DDR3 пару преимуществ (меньшее энергопотребление, более низкая цена в перспективе, практически бесплатная поддержка ECC, большая максимальная емкость, лучшая сопротивляемость RowHammer) и пару недостатков (более высокие задержки на той же частоте, более высокая цена прямо сейчас, меньшая отлаженность процессов производства и разводки).
По сути, для обычного пользователя разницы проктически никакой, и выбирать по этому критерию не нужно, особенно если и та, и другая память — набортная и апгрейду не подлежит. Разница в производительности ноутбучной памяти на частотах до 2133Мгц — в пределах погрешности измерений, +-3% в зависимости от бенчмарка. На одинаковой частоте DDR3 немного быстрее засчет более низких таймингов.
Lenovo стараются, но пока не дотягивают до Dell и HP, плюс регулярно умудряются оскандалится — то Computrace воткнут (на современных машинах самостоятельно удалить его из прошивки нельзя даже имея SPI-программатор, т.к. BootGuard включен и не позволит изменной прошивке запуститься, а чтобы это обойти его нужно менять чипсет), то бэкдор установят в ОС автоматически через WPBT, то корневые сертификаты свои внедрят.
На сообщения об уязвимостях в прошивке они реагируют и стараются эти самые уязвимости закрывать, но сами по себе никаких исследований (как Dell с ESRT и HP с RedFish) в области прошивок не ведут и потому чаще всего оказываются в роли догоняющих.
Мой многолетний опыт разработки, отладки, взлома и защиты UEFI-совместимых прошивок не согласен с вами. Acer — один из вендоров, которые со своей стороны для защиты пользователя от буткитов и атак на pre-OS не делает ничего совсем, не отвечает на сообщения об уязвимостях и не исправляет их. Не нужна вам безопасность — дело ваше.
Сразу в топку все, что не Apple, Dell или HP, потому что прошивка — решето, и чинить её никто не будет.
DDR3 на частотах до 2133 Мгц быстрее DDR4 засчет более низких таймингов.
Дальше выбор зависит от целевой ОС и цены, и личных предпочтений.
Three Swiss witch-bitches, which wished to be switched, watch three Swiss Swatch watch switches. Which Swiss witch-bitch, which wishes to be a switched, wishes to watch which Swiss Swatch switch?
Уважаемый, вот этот ваш комментарий — это «за что вы минусуете» и есть по смыслу.
Вы там критикуете СиПроВер за то, что они пишут рекламные статьи в своем корпоративном блоге, для которых он по факту и предназначен.
Жаль, что рекламу на Хабре перестали даже маскировать под статьи. Могли бы хотя бы сравнение запилить с существующими до этого аналогами на линуксе. А то они бедные прозябали столько лет во тьме.
После этого вас спрашивают «А почему бы вам такую статью не написать самостоятельно, раз предлагаете?» несколько разных людей, на что вы отвечаете одним словом «нет», а потом еще и говорите, что это — «ваше мнение».
Поймите, ваше мнение никого не интересует ровно до тех пор, пока оно не аргументированно и не выражено в форме, полезной для сообщества. Статья со сравнением, в которой вы объективно критикуете PVS-Studio в сравнении с открытыми инструментами — вот это «ваше мнение» в том виде, в котором оно нужно на Хабре и за которое вам не поставил бы минусов почти никто, зато плюсов поставили бы наверняка.
Без такой статьи или развернутого комментария ваше мнение — что-то вроде «вы мне не нравитесь, проприетарщики, и статья ваша рекламная, и LGPL вы нарушаете, скорее всего». Недовольны — поставьте статье минус и проходите, ибо такие комментарии с «мнением» не добавляют ничего к обсуждаемой теме.
Для «нормального» C++ нужен гораздо более жирный рантайм, а специалистов, умеющих писать на «обрезаном» С++ — намного меньше, чем специалистов по С, т.к. такому «ограниченному» использованию С++ почти нигде не обучают.
На ум приходят Ada и Rust, но первый язык так и набрал популярности (хотя он во многих аспектах намного лучше подходит для системного программирования), а второй пока еще довольно молод, но я искренне за него болею.
Можно, конечно, попробовать «причесать» уже имеющийся С (Cyclone, Checked C, etc.) или ограничиться небольшим «безопасным» подмножеством языка (JPL Coding Rules, MISRA C, etc.), но это все мало кто может себе позволить, т.к. программировать с такими ограничениями умеют меньшее количество специалистов, и сама разработка в итоге становится дороже (иногда существенно) и медленее (иногда на порядок).
Зачем эту псевдо-ФС по умолчанию монтируют на запись — мне не ведомо, скорее всего для efibootmgr вышеупомянутого. Вследствие того, что конкретные реализации прошивок не всегда следуют последним стандартам, а efibootmgr — не самая всезнающая утилита, то на некоторых машинах её использование действительно приводит к «кирпичу», поэтому в этом смысле я согласен с автором — положи загрузчик на ESP в \EFI\BOOT\boot{архитектура}.efi и пусть диспетчер BDS прошивки сам его найдет и добавит в BootOrder/BootXXXX заведомо правильным образом.
Что же до использования GRUB/shim/bootmgr/черта-лысого — это вкусовщина и у делу не относится.
Если вам интересно, как устроены переменные BootXXXX и BootOrder, первая устроена вот так, а вторая — просто список из UINT16, этих самых XXXX.
Проблема же efibootmgr в том, что она пытается угадать формат DevicePath, который в различных версиях стандарта периодически обновляется, а у некоторых вендоров имеет и свои собственные расширения, поэтому если вы можете ей не пользоваться — лучше и не пользуйтесь, во избежание.
P.S. Посмотрите вот это прекрасное видео о получении дампа прошивки графического планшета при помощи глитчинга.
Про Apple рассказывать не могу из за NDA, но уже скоро смогу их рекомендовать с кристально чистой совестью — наша команда работает над этим в поте лица прямо сейчас.
Современная ноутбучная DDR4 на частотах до 2133 имеет перед такой же ноутбучной DDR3 пару преимуществ (меньшее энергопотребление, более низкая цена в перспективе, практически бесплатная поддержка ECC, большая максимальная емкость, лучшая сопротивляемость RowHammer) и пару недостатков (более высокие задержки на той же частоте, более высокая цена прямо сейчас, меньшая отлаженность процессов производства и разводки).
По сути, для обычного пользователя разницы проктически никакой, и выбирать по этому критерию не нужно, особенно если и та, и другая память — набортная и апгрейду не подлежит. Разница в производительности ноутбучной памяти на частотах до 2133Мгц — в пределах погрешности измерений, +-3% в зависимости от бенчмарка. На одинаковой частоте DDR3 немного быстрее засчет более низких таймингов.
На сообщения об уязвимостях в прошивке они реагируют и стараются эти самые уязвимости закрывать, но сами по себе никаких исследований (как Dell с ESRT и HP с RedFish) в области прошивок не ведут и потому чаще всего оказываются в роли догоняющих.
DDR3 на частотах до 2133 Мгц быстрее DDR4 засчет более низких таймингов.
Дальше выбор зависит от целевой ОС и цены, и личных предпочтений.
Вы там критикуете СиПроВер за то, что они пишут рекламные статьи в своем корпоративном блоге, для которых он по факту и предназначен.
После этого вас спрашивают «А почему бы вам такую статью не написать самостоятельно, раз предлагаете?» несколько разных людей, на что вы отвечаете одним словом «нет», а потом еще и говорите, что это — «ваше мнение».
Поймите, ваше мнение никого не интересует ровно до тех пор, пока оно не аргументированно и не выражено в форме, полезной для сообщества. Статья со сравнением, в которой вы объективно критикуете PVS-Studio в сравнении с открытыми инструментами — вот это «ваше мнение» в том виде, в котором оно нужно на Хабре и за которое вам не поставил бы минусов почти никто, зато плюсов поставили бы наверняка.
Без такой статьи или развернутого комментария ваше мнение — что-то вроде «вы мне не нравитесь, проприетарщики, и статья ваша рекламная, и LGPL вы нарушаете, скорее всего». Недовольны — поставьте статье минус и проходите, ибо такие комментарии с «мнением» не добавляют ничего к обсуждаемой теме.