Да там не только направленность ложная, а вся дихотомия «софт<->железо» изначально ложная. Bitstream для FPGA — это «софт» или нет? Микропроцессоры, исполняющие Java-байткод аппаратно — они «железо» или нет? Все есть софт, и все есть железо, и конкретное восприятие зависит от точки зрения и уровня абстракции. Для программы на Prolog микрокод процессора — это точно «железо», а для прошивки Management engine этот же микрокод — даже не «софт», а «данные для изменения». И так везде, просто мало кто об этом задумывается.
Эмоции — они одинаковые везде, что в школе, что на работе, что на пенсии. Умом любой человек, изучавший в школе или ВУЗе логику, понимает, что «рядом — значит вместе» — это логически ложное построение, но от этого это самое построение не перестает быть истинным для подавляющего большинства нормальных людей.
Я понимаю, что лес рубят и щепки летят, и я рад, что администрация наконец поняла, что произошло что-то нехорошее и нужно с этим что-то делать. Спасибо за первый шаг, теперь ждем остальных.
Пользуясь случаем, прошу переноса вот этой моей статьи в хаб «Программирование микроконтролеров», а вот этой — в него же и «Отладку». Они гораздо более по этим темам, нежели по DIY. Спасибо.
Деление проектов было не по признаку профессиональности, а исключительно по тематике. Переехав на ГТ, публикации не стали менее крутыми, а их авторы — менее профессиональными. По-моему, это очевидно.
Понятно, что кому-то стало обидно, что их профессиональные статьи пересадили в соседнюю грядку вместе с «обзорами и политотой», но, простите, а до пересадки они разве не рядом росли?
Их раньше не разделяли, понимаете. Были статьи про железо, и статьи про софт, и статьи про политоту, и статьи про космос. И первые две категории писались в основном профессионалами для всех, кто заинтересуется, в комментариях к ним шли интересные обсуждения по теме, а статьи набирали по 50к просмотров за день, а не за месяц, как сейчас. Потом администрация осознала, что если политоту не отделить, то товарищ майор может прикрыть всю лавочку целиком, а если не отделить космос, то на первой странице рейтинга будут одни «космонавты» и произошло то самое разделение. После чего у софтварщиков с ресурса пропал весь «оффтоп», а у железячников на ресурсе стало не продохнуть от того самого «оффтопа», и поэтому многие перестали туда писать. Железо попало в топики-«сорняки», а не в топики-«растения», вот что обидно до кома в горле. Если бы ему выделили отдельный ресурс, как менеджерам — было бы не так обидно, но вот так вот отправить все железо к политоте и обзорам — это было ошибкой и останется ей, сколько фарш назад не прокручивай.
Хорошо вам. А я людям ссылки давал на свой профиль на Хабре, чтобы они почитали там статьи про FT232H, а их там бац, и не стало — уехали на GT, т.к. одним из хабов был DIY. Плюс, статьи писались на Хабр, и очень хотелось бы, чтобы они оставались на Хабре и были доступны не только по старой ссылке, но и в поиске, в профиле и во всех остальных местах.
Как только в «Системном программировании» появится такое же количество авторов и материалов, а также разнообразие узкоспециализированных тем, появятся и соответствующие хабы.
«Сколько вешать в граммах?», т.е. сколько нужно авторов и статей, чтобы это произошло? Судя по Derby.js — порядка двадцати статей от порядка пяти авторов. Мои 20 статей можете посмотреть у меня в профиле, вот начало списка авторов, пишущих или писавших только про UEFI: icbook, Newarray, Falseclock, Extrapolator, Manitou, ahtox74, amarao, mikhanoid, могу продолжать, если надо.
Что же до Arduino, то на данный момент более подходящим ресурсом для этой тематики является ГТ
Дело хозяйское, но даже после возвращения интересных мне хабов об FPGA я не ожидаю скорого возврата интересных статей о них — «единожды соврав, кто тебе поверит». Нет никаких гарантий, что завтра все хабы через один не перенесут еще на какой-нибудь Hardwarabr.ru, несмотря на то, что ты их писал не в воздух, а для Хабрахабра и его уникальной аудитории.
А про «плевок в душу» — это я совершенно искренне. BarsMonster писал великолепные статьи про вскрытие разных микросхем — где такие теперь? DIHALT писал отличные статьи про электронику с позиции прикладника с большим опытом, который при этом может и хочет пояснить просто — где такие теперь? dlinyj писал о разработке драйвера для самодельной железяки по Linux — что нового он написал с тех пор, как половину его статей перенесли на GT только за то, что одним из хабов в них был выбран DIY?
Эти люди, и такие, как они — тратили свое весьма ценное время на то, чтобы поделиться знаниями с большой профессиональной аудиторией, а потом им сказали, что теперь они не профессионалы, а гики, и их место возле проплаченных обзоров китайских смартфонов и политоты. Если это не плевок в душу — я не знаю тогда.
Вот это все — лишь те примеры, которые мне сразу в голову приходят, но именно за такими статьями я ходил на старый Хабр и именно за ними я бы хотел ходить на новый.
Так ведь есть же «Системное программирование», в чем его недостаток по сравнению с отдельным хабом «Firmware»?
Есть, не спорю, туда и пишу. Только вот для Ajax, AngularJS, Derby.js, Meteor.js и прочих whatever.js почему-то есть свои профильные хабы при наличии хаба JavaScript, а профильный хаб для firmware (не говоря уже о хабах отдельно про UEFI и coreboot) — это слишком.
Случай Arduino — вопиющий. Без «софта» все, что вы на этой самой ардуине соберете — просто не работает. Время КРЕНок закончилось, сейчас все железо имеет внутри один или несколько программируемых контролеров, не самую простую прошивку, а если повезет — даже SDK для разработки модулей для нее.
Процессоры для ПК с микрокодом уже 10 лет, чипсеты — начиная с P35 (т.е. тоже лет 8 уже), микрокоронтролеры в лампочках освещения и ПЛИС в светофоре, а вы по прежнему разделяете софт и железо. Тем более, что это железо было разработано при помощи софта, сэмулировано при помощи софта, отлажено при помощи софта, и так далее. Arduino — это тоже программирование, и иногда — гораздо более сложное и интересное, чем очередной bullshit.js. Просто второе администрации гораздо ближе, видимо.
I like to move it, move it…
Если серьезно, мера правильная, но половинчатая, ждем домой остальные железные хабы.
Уже довольно давно сложно понять, чем «софт» в корне отличается от «железа», и почему для «софта» есть специальная площадка с НЛО и комментаторами, а «железо» вынуждено делить такую площадку со «Здоровьем гика», «Космонавтикой» и прочими вещами, к железу не имеющими никакого отношения.
Более того, до сих пор нет ни одного хаба про firmware, которое как раз между «софтом» и «железом», хотя только я уже на эту тему более 20 статей написал.
Создается впечатление, что администрации не интересно видеть статьи о железе и прошивках на Хабре, лучше в очередной раз поспорить о преимуществах Go над PHP для бэкэнда, или прочитать очередные «200 офигенных ресурсов для мобильного разработчика». Это их сайт, и я не могу с ними спорить, но части аудитории этим переносом железных хабов просто в душу плюнули, и вот такими половинчатыми мерами теперь уже не обойтись.
Ну так Extensible же во все поля, буквально, только не для конечного пользователя. Для него есть ESP и переменные DriverXXXX и KeyXXXX, расширяй функциональность — не хочу, но только после окончания фазы BDS.
Пусть делают что хотят, пока BootGuard не включают. Все остальное при желании может быть (обязательно будет) отломано энтузиастами.
Есть такая абстракция и в UEFI, и драйверы дисков, к примеру, побликуют их не как ФС или разделы, а как блочные устройства, доступные для чтения и\или записи через протоколы EFI_BLOCK_IO_PROTOCOL и EFI_DISK_IO_PROTOCOL, по штуке на каждое найденное устройство. Обнаружив наличие этих протоколов, драйвер PartitionDxe пытается найти всех дисках разделы, если они нашлись, публикуется EFI_DEVICE_PATH для этих разделов, а его в свою очередь получают драйверы FilesystemDxe, Ntfs, Ext2Dxe, HfsPlusDxe и так далее.
Если пилить программный рейд, то достаточно пояснить, как с него считать загрузчик, дальнейшее — дело ядра Linux, которое этим загрузчиком запустится (или является в случае использования EFI_STUB).
Есть такая функция у нас на новых платах, называется MPFA, куда сам пользователь без перепрошивки остального БИОСа может добавить кучу разного, в том числе и целый новый Firmware Volume, который при следующей загрузке будет передан диспетчеру DXE, и оттуда будет исполнено все, что нужно. Понятно, что это — даже не дыра в безопасности, а открытые ворота в прошивку, но для того, чтобы сохранить что-то в MPFA, нужно сначала ввести пароль на BIOS, и после 3 неудачных попыток ввод блокируется до перезагрузки, т.е. авторизованный пользователь модифицирует то, что ему нужно, а удаленный атакующий идет лесом.
Собираются ли внедрить что-то похожее в стандартные реализации UEFI — не знаю, я об этом ничего не слышал, но тенденция, как верно подмечено, совершенно противоположная — «закрыть и не пущать». Меня это не устраивает, и начальника моего тоже, поэтому у congatec весь этот Hardware Verified Boot и прочие схемы защиты платформы от её же покупателя будут включены только для клиентов, которые требуют этого в обязательном порядке.
Загружаются эти системы с CSM исключительно потому, что на каждом диске есть MBR, в которую записан нужный код. Код этот передает управление на PBR раздела /boot или напрямую загрузчику, а он дальше загружает ядро. Если бы MBR была только на одном диске — сисема загружалась бы только с него. Поэтому и ESP нужно на все диски положить. Другой вопрос, что драйверу Software RAID может не понравится ФС FAT на ESP, но она и не обязательна в том случае, если в прошивке имеется драйвер Ext2/3/4.
По поводу загрузки без ESP — почитайте исходники Intel Quark BSP (это открытая прошивка для Intel Galileo, я он ней писалв прошломгоду), там система загружается с образа, который прошит непосредственно в микросхему SPI.
Не видел таких планов, но это не значит, что их нет.
ESP, на самом деле, не является обязательным, проблема только в отсутсвии драйвера для вашего Software RAID в прошивке. Если его написать и добавить, то можно будет спокойно загружаться с этого самого RAIDа не хуже, чем с ESP.
Пример похожего решения: добавление драйвера NVMe в прошивку старых плат решает проблему UEFI-загрузки с NVMe-устройств.
Уязвимости в процессе загрузки системы могут эксплуатироваться и локально, и удаленно, но для этого нужно повышение провилегий до возможности монтирования ESP и переписывания загрузчика на нем (обычного LPE до System хватит за глаза). Дальше при отсутвии SecureBoot малварь может подменить загрузчик системы на собственный, и дальше рулить системой как ей заблагорассудится (т.к. она контролирует загрузку ядра и имеет возможность патчить его на лету), а в случае с включенным SecureBoot придется обходить сначала его, иначе вместо перехвата управления получится банальный DoS.
Да я это все слишком близко к сердцу и не принимаю, просто сейчас оно все именно вот так, и каких-то тенденций к изменению ситуации пока не видно. Единственная плата с открытой реализацией UEFI — Intel Galileo, там тоже не обошлось без блобов.
Про «все так плохо» — нет, это зависит от настроек, которые установил производитель ПК. Если он захочет, у вас современная машина с чипсетом/СнК Intel даже до ResetVector'а не дойдет, если хеш прошивки не сойдется с эталонным, но так настраивают систему только полные мудаки, и у таких я советую просто ничего не покупать.
Основная проблема открытых прошивок — Intel и AMD не горят желанием открывать MRC для новых систем даже своим же IBV, тем более сообществу. Взамен предлагается использовать Intel FSP / AMD AGESA binary, которые, по факту — мегабайтные BLOBы, реализующие 90% фазы PEI. В итоге что закрытый UEFI, что открытый coreboot + SeaBIOS/TianoCore/Linux — разницы с точки зрения любящего свободу пользователя почти никакой. А реверсить код MRC — дело не на один год, к тому времени целевая платформа уже устаревает до грани полной непривлекательности.
Решать эту проблему нужно с открытия железа и спецификаций к нему, за открытым софтом к таким системам дело не станет.
Добавлю также, эталонная что реализация SecureBoot открыта под лицензией BSD и является частью проекта TianoCore, и мой опыт показывает, что реализации IBV отличаются от нее очень мало, но, конечно, это все равно не тот открытый код, который нам нужен.
Переписать GOP-драйвер и SMU firmware для eKabini — и можно жить, все более новое — сразу в лес.
Я понимаю, что лес рубят и щепки летят, и я рад, что администрация наконец поняла, что произошло что-то нехорошее и нужно с этим что-то делать. Спасибо за первый шаг, теперь ждем остальных.
Их раньше не разделяли, понимаете. Были статьи про железо, и статьи про софт, и статьи про политоту, и статьи про космос. И первые две категории писались в основном профессионалами для всех, кто заинтересуется, в комментариях к ним шли интересные обсуждения по теме, а статьи набирали по 50к просмотров за день, а не за месяц, как сейчас. Потом администрация осознала, что если политоту не отделить, то товарищ майор может прикрыть всю лавочку целиком, а если не отделить космос, то на первой странице рейтинга будут одни «космонавты» и произошло то самое разделение. После чего у софтварщиков с ресурса пропал весь «оффтоп», а у железячников на ресурсе стало не продохнуть от того самого «оффтопа», и поэтому многие перестали туда писать. Железо попало в топики-«сорняки», а не в топики-«растения», вот что обидно до кома в горле. Если бы ему выделили отдельный ресурс, как менеджерам — было бы не так обидно, но вот так вот отправить все железо к политоте и обзорам — это было ошибкой и останется ей, сколько фарш назад не прокручивай.
Дело хозяйское, но даже после возвращения интересных мне хабов об FPGA я не ожидаю скорого возврата интересных статей о них — «единожды соврав, кто тебе поверит». Нет никаких гарантий, что завтра все хабы через один не перенесут еще на какой-нибудь Hardwarabr.ru, несмотря на то, что ты их писал не в воздух, а для Хабрахабра и его уникальной аудитории.
Эти люди, и такие, как они — тратили свое весьма ценное время на то, чтобы поделиться знаниями с большой профессиональной аудиторией, а потом им сказали, что теперь они не профессионалы, а гики, и их место возле проплаченных обзоров китайских смартфонов и политоты. Если это не плевок в душу — я не знаю тогда.
Вот это все — лишь те примеры, которые мне сразу в голову приходят, но именно за такими статьями я ходил на старый Хабр и именно за ними я бы хотел ходить на новый.
Случай Arduino — вопиющий. Без «софта» все, что вы на этой самой ардуине соберете — просто не работает. Время КРЕНок закончилось, сейчас все железо имеет внутри один или несколько программируемых контролеров, не самую простую прошивку, а если повезет — даже SDK для разработки модулей для нее.
Процессоры для ПК с микрокодом уже 10 лет, чипсеты — начиная с P35 (т.е. тоже лет 8 уже), микрокоронтролеры в лампочках освещения и ПЛИС в светофоре, а вы по прежнему разделяете софт и железо. Тем более, что это железо было разработано при помощи софта, сэмулировано при помощи софта, отлажено при помощи софта, и так далее. Arduino — это тоже программирование, и иногда — гораздо более сложное и интересное, чем очередной bullshit.js. Просто второе администрации гораздо ближе, видимо.
Если серьезно, мера правильная, но половинчатая, ждем домой остальные железные хабы.
Уже довольно давно сложно понять, чем «софт» в корне отличается от «железа», и почему для «софта» есть специальная площадка с НЛО и комментаторами, а «железо» вынуждено делить такую площадку со «Здоровьем гика», «Космонавтикой» и прочими вещами, к железу не имеющими никакого отношения.
Более того, до сих пор нет ни одного хаба про firmware, которое как раз между «софтом» и «железом», хотя только я уже на эту тему более 20 статей написал.
Создается впечатление, что администрации не интересно видеть статьи о железе и прошивках на Хабре, лучше в очередной раз поспорить о преимуществах Go над PHP для бэкэнда, или прочитать очередные «200 офигенных ресурсов для мобильного разработчика». Это их сайт, и я не могу с ними спорить, но части аудитории этим переносом железных хабов просто в душу плюнули, и вот такими половинчатыми мерами теперь уже не обойтись.
Пусть делают что хотят, пока BootGuard не включают. Все остальное при желании может быть (обязательно будет) отломано энтузиастами.
Если пилить программный рейд, то достаточно пояснить, как с него считать загрузчик, дальнейшее — дело ядра Linux, которое этим загрузчиком запустится (или является в случае использования EFI_STUB).
Собираются ли внедрить что-то похожее в стандартные реализации UEFI — не знаю, я об этом ничего не слышал, но тенденция, как верно подмечено, совершенно противоположная — «закрыть и не пущать». Меня это не устраивает, и начальника моего тоже, поэтому у congatec весь этот Hardware Verified Boot и прочие схемы защиты платформы от её же покупателя будут включены только для клиентов, которые требуют этого в обязательном порядке.
По поводу загрузки без ESP — почитайте исходники Intel Quark BSP (это открытая прошивка для Intel Galileo, я он ней писал в прошлом году), там система загружается с образа, который прошит непосредственно в микросхему SPI.
ESP, на самом деле, не является обязательным, проблема только в отсутсвии драйвера для вашего Software RAID в прошивке. Если его написать и добавить, то можно будет спокойно загружаться с этого самого RAIDа не хуже, чем с ESP.
Пример похожего решения: добавление драйвера NVMe в прошивку старых плат решает проблему UEFI-загрузки с NVMe-устройств.
Про «все так плохо» — нет, это зависит от настроек, которые установил производитель ПК. Если он захочет, у вас современная машина с чипсетом/СнК Intel даже до ResetVector'а не дойдет, если хеш прошивки не сойдется с эталонным, но так настраивают систему только полные мудаки, и у таких я советую просто ничего не покупать.
Решать эту проблему нужно с открытия железа и спецификаций к нему, за открытым софтом к таким системам дело не станет.
Добавлю также, эталонная что реализация SecureBoot открыта под лицензией BSD и является частью проекта TianoCore, и мой опыт показывает, что реализации IBV отличаются от нее очень мало, но, конечно, это все равно не тот открытый код, который нам нужен.