> Прошивка с драйвером.Каким, нахрен, драйвером? Прошивка это прошивка. Как правило - вывешивает некий оговоренный интерфейс софту, через который софт и работает. А как оно там внутри на вот этой конкретной железке будет разрулено - проблемы прошивки, соответственно.
Когда кто-то просит записать накопитель сектор номер 100500 - софт понятия не имеет куда там надо головы диска гнать, или какие операции с вот этой микросхемой NAND сделать. Софт не педалит операции с NAND сам. Вместо этого вывешен абстрактный интерфейс - мол, это линейное пространство секторов. А как оно там внутрях эту абстракцию изобразит - проблемы железки и ее фирмварей.
С GPU все аналогично. При том уже много лет. АМД так делало с незапамятных времен, там команды накидываемые софтом разруливал(и) микроконтроллер(ы) CP (command processor). Изначально ME (Micro Engine) но потом для вычислений еще MEC отросли (Micro Engine Compute).
У нвидии было что-то сравнимое - просто в более хаотичном и бардачном виде. А GSP это просто некий унифицированный интерфейс вместо кучи разномастных.
> Примерно как с жёсткими дисками: драйвер не нужен, весь
> драйвер - в прошивке. Только ATA-команды отсылай.
Примерно так, только не драйвер, а прошивка, реализующая оговоренный интерфейс. Было время, когда софт был намного более вовлечен в управление накопителем. Только это хреново работало и очень быстро стало куском проблем.
С GPU история повторилась. В стародавние времена некто Luke Хренвыговоришь сделал драйвер RadeonHD. Этот драйвер отличался тем что по возможности не полагался на сервисные фирмвари. Делая все со стороны хоста. Директом.
И вот тут чувак познал все круги ада.
- Управление питанием (DVFS) таким макаром делать? Более чем хреново! Ибо системный x86 совсем не про реалтайм. По крайней мере, в объеме нужном там. Современных хардвар реклокается много раз в секунду и меняет Vcore чтобы адаптироваться под нагрузку. Вон то софтом на x86 в нормальном виде не живет. Получается неэффективная, кривая, глючная пародия.
- Все регистры всех блоков самолично телепать прям с x86 то еже мучение. Их дофига, они разные, железка сложная. Драйвер получился кривой, проблемный, не успевающий за выпуском железок.
- x86 с кучей задач на нем - не может в довольно крутые тайминги которые порой таки - надо. А реальное время - не ждет. Если его продолбать - будет тиринг, глюки рендеоа и проч.
- Игнор каких-нибудь microcoded движков DMA сильно нагнет эффективность операций. А вы точно хотели попрограмить обвес этого сами? Вон там у fail0verflow неведомы ядра называются f32. А вы вообще знаете как это програмить?
- В новых железках фирвари пошла мода секурбутом обвешивать, что у амд что у нвидии как я понимаю.
> А потом проблемы возникнут, когда данные восстанавливать надо.
Тем не менее...
1) Иначе проблемы возникают - всегда. При эксплуатации. У всего софта.
2) Вон те проблемы до некотрой степени решаемы. Я умею это даже локально в не очень убитом виде. В совсем убитом (не проходит идентификацию) конечно это уже для лабы, умеющей поднять фирмварь, с соотв тулсами.
> Было бы гораздо лучше, если бы требовались драйверы для жёстких дисков.
Это уже было. И оказалось не лучше, а брейнфак, когда каждому накопителю надо свой драйвер и по мере роста числа моделей и разнообразия их начинки наступает - капец.
Если что - я умею с RAW NAND работать. И это куда больше брейнфака VS sd/emmc где проблемы геометрии конкретной конструкции абстрагирует ее фирмвар. А кому очень надо - научились вон там немного стирать лаковый слой даже у uSD, и вот вам ваши площадки raw NAND, в обход контроллера. Но вот как вы это читать и пересобирать в образ будете - а вот вы и придумываете, раскурив работу транслятора. У проф лаб даже есть какой никакой софт на такие случаи. Но он не юзер френдли, и специфичный для конкретных выводков железок.
> Вот видишь, ты и сам всё знаешь.
Более того, я еще и писать прошивки малость умею.
>>Вы же не заморачиваетесь записью страницы NAND или ECC самолично?
> Как и не заморачиваюсь с управлением видеокартой самолично. Для этого есть драйвер
> в ядре ОС, и юзерспейсная Mesa, написанные другими людьми.
А вот эти люди... Luke пробовал делать все сам, на старых RadeonHD. Быстро познал все прелести этого пути, так же как с древними накопителями примерно. Его драйвер не поспевал за релизами железок и был очень проблемным и глючным. За такие соотношения эти пути и померли.
По этой же причине мало кто хочет с RAW NAND напрямую интерфейситься. Вы не представляете себе в какой брейнфак это превратилось. Дурные правила стирания и записи, ECC, менеджмент сбойных блоков, а у новых MLC/TLC все настолько хлипкое что надо трекать число чтений и делать РЕГЕНЕРАЦИЮ, как в DRAM. Иначе - заряд утечет. Чтение более не недеструктивное, и таки - немного утекает заряд (read disturbance). Или допустим надо пермутации хранения, потому что чип плохо реагирует на большие блоки нолей и единиц (перекашивают уровни сигнала соседних ячеек). А вы точно хотели этим заняться сами?
В майнлайне по этому поводу как RAW NAND осилили только SLC, а MLC (2-level) уже недопиленый. Всякий TLC/QLC и его специфика? Ну... э... как бы вам повежливее? А, придите и накодьте, во? :)
> Если бы прошивка была опенсорсная и нетивоизрованная, то вообще никакаких претензий не
> было бы.
Я как бы только за. И это был 1 из поводов научиться писать фирмвари. Хотя-бы себе и кастомерам, не уповая на "богов" которые на поверку порой оказываются довольно злыми.
> Претензии в том, что навязывают вредоносную проприетарь, которая нас
> на милость вендора и шпионов отдаёт.
Лично меня блоб на основном системном проце больше напрягает. Особенно в кернелмоде. Он имеет непосредственный доступ в ОС и все ее апи.
А фирмвари в сервисных процах с остальным миром взаимодействуют через вон те интерфейсы. И нуждаются в кооперации драйвера. Если драйвер открытый и я контролирую систему, то сильно много они соответственно и не смогут. Особенно учитывая что в современных системах есть такая штука как IOMMU, который будет иметь кое-что против "несанкционированного" DMA запроса в левый регион. Так что для вот именно внешней PCIe железки даже DMA вфигачить - может и не прокатить. Да и откуда относительно мелкое фирмваре знает как патчить вон тот кернель например?
Тем не менее, приколы возможны. Скажем equation и накопители возвращающие левак в секторах, так что реинстал ос не сносит малварь и она воскресает. Минимум несколько человек смогли повторить этот номер и своим ходом, запатчив прошивку HDD.
Однако я думаю что это добро довольно конкретно облажается на моих системах. Оно врядли готово столкнуться с моей конфигурацией в осмысленном виде.
> С точки зрения разрабов: теперь вообще не нужно разбираться в низкоуровневой
> проприетарной "интеллектуальной собственности" корпорации.
Ну да, кидать команды - получать результат. И это в целом и есть предпочитаемый ифейс к железкам. Почти все железки так и работают. А процессор есть даже в мыши и клавиатуре. А как вы еще картинку с SPI сенсора оптической мыши рюхнете? Или отсканируете массив кнопок? Да еще USB какой или радиопротокол изобразив? Правильно, небольщая фирвара сканит матрицу, изображает оговоренный протокол, и... вы вообще не видите регистры проца мыши или клавы. А вы точно хотели увидеть их? И сколько вы будете драйвер клавиатуры кодить таким манером? Если вас напрячь спецификой разводки "вот этой клавы" (с своим драйвером для каждой модели!) и сканом матрицы клавишь в реальном времени самому с x86 хоста?
> А просто реализуешь интерфейс по документации.
> А кто будет разбираться - те огребут по DMCA за подкоп под DRM.
Да вроде не огребают особо. И в случае DRM опять же - некая кооперация со стороны хоста нужна. Грубо говоря если оно не вывещивает некий интерфейс, то фирмвара <-> софт уровнем выше просто не получат эти коммуникации. В этом смысле контроль над кернелмодом - решает. Кернелмод всегда может построить поведение юзермода в желаемом виде.
> Да, что позволяет сказать "прошивка - наша "интеллектуальная собственность",
Прошивка это такой же код как все остальное, и такая же интеллектуальная собственность как любой иной код или допустим HDL сорцы железки.
Свобода штука многофакторная.
1) Системный проц и что на нем.
2) Дизайн печаток.
3) Фирмвари.
4) Исходники чипов.
5) Полный стек производства, end to end.
Сейчас в основном 1) более-менее завершен, частично 2) и 3) прорезается. А местами и 4) таки. То же самое побиваемое камнями гугло устроило некую халяву для DIY, подогнав открытый workflow дизайна чипов. Да, по древним процессам, зато - с халявными условиями.
> вы приняли условия лицензии, не нравится - не включайте карту, а раз
> согласны - то вы знаете: платите. Фичи прошивки - платные, сдаются
> в аренду по подписке".
Я вроде за мой AMD GPU только 1 раз платил. Никаких подписок не замечено, это в оснвном интел пытался с форсом этог всего в ME. А я не злопамятный, но..
1) Интел сейчас вообще "не до жиру, быть бы живу".
2) Лично я поставил себе цель что при следующем апгрейде воркстейшна это будет 64 бит ARM или RISCV с полностью открытым и подконтрольным мне системным уровнем. Я наелся всех этих BIOS, UEFI и проч от супер-решал проблем, спасибо. И багов которые они фиксить не собираются - вместе с "фичами" типа AWARD_SW.
> Я же говорю, всё это очень плохо.
Вы не предложили - работоспособных решений лучше.
> Бабло лишним не бывает.
Они триллион сделали - на AI для датацентров. Те такое не поймут. И если сильно выпендриваться они могут проинвестировать создание акселей под свои нужды и сами. Денег хватит. А незаменимых не бывает. Есть уже легион AI чипов от новых стартапов с их дофига TOPSов.
Сетевики-затейники уже проверяли. И когда гуглы, фэйсбуки и проч наелись проприетарного сетевого оборудования навязываюшего условия - задизайнили с ноля. Сами. Попутно утряся некие стандарты и подсистемы. Которые можно интерфейсить к линуху, и далее - интегрировать в ИХ энтерпрайзное групповое управление как ОНИ хотели, а не как это возомнил себе левый проприетарщик. На память об этом в лине появились и-фейсы руления хардварными свичами и хардварного офлоада flow. И полезно оказалось не только вон тем но и всяким мелким мыльницам.
>>В целом - не ее это епархия.
> Очень даже её. DRM в картах реализовали, тивоизацию тоже реализовали.
Оно таки не живет без плотной утряски всего стека от и до. И если ядро лично мое - упс, я могу просто завернуть софт с такими запросами. Да, я не получу при этом DRMный контент. Или более наглый вариант: можно попробовать софтварную эмуляцию, и соврать что все прокатило.
Впрочем есть способ проще. Уже полно HDMI grabber которые представляются типа-монитором, загребают поток от и до - и делайте с ним что угодно. Пираты так и утаскивают ультра HD контент, весь софтварный стек в каком там маздае всю валидацию проехал, а толку? Пират ухватил RAW фреймы ЗА чипом косившим под монитор. Уже с снятым HDCP.
> Горе побеждёным. Да, всякий, кто имеет, получит ещё и будет иметь больше,
> чем ему нужно; у того же, у кого ничего нет, будет отнято и то, что имеет.
Этот мир так устроен. Поэтому со мной такие номера и не катят. Т.е. если какая-то железка вздумает умничать и навязывать условия - я от нее отделаюсь.
Но вот AMD GPU пока ни в чем таком не были замечены. Они в целом в лине просто работают и диктовать особо ничего не могут. Может какие пороги DVFS - но я и не горю желанием оверрайдить это. А таки - вон там драйвер умеет оверрайды этого лить. Потому что часть OEM свои системы питания и охлаждения переоценили - и прибегают к AMD - блин, спасите нас. Ну те и спасают, делая для кривых vid/pid оверрайды таблиц VS то что там в VBIOS было вшито.
> Да, сиди вообще без карты, пойди rivatnt из старых запасов купи, старое
> ядро накати, предварительно накатив, и радуйся.
У меня AMD GPU, нормальный вполне, умеет вулканы всякие, DRM контент моя система вообще не умеет, никак и нигде. И вот как и кто это оспорит, интересно?
> Расскажи эту херню кому-нибудь другому. Ни телефонов без бэкдоров, ни процессоров без
> TEE DRM вообще не осталось.
Как говорится - кто ищет, тот найдет. У меня вообще DRM в системе не будет работать. Начиная с того что у меня нет блурэй приводов всяких, и заканчивая с тем что у меня браузер чисто технически без DRM модуля и просто не предоставляет такие апя. И вот как DRM вообще юзать планируется? :)
> задолго до появления персоналок и смартфонов. Почитай Убик Дика. Там описана
> квартира, где абсолютно все предметы быта имеют слот для оплаты, и
> без оплаты даже дверь наружу не выпустит.
Напоминает незнайку на луне, "гостиница экономическая". Там где вода вырубается - когда вы намылили рожу и извольте заплатить. Но это все же не единственный формат. А незаменимых все же не бывает.
И вам не приходило в голову что вы сами такое будущее и взрастили? Сколько вы спонсировали opensource friendly стартапов, делающих такое железо? Я вот нескольким денег - насыпал. Но это я. Потому что мне оно было надо. И я таки - получил что хотел в наиболее критичных направлениях, где до энного момента все было не плохо - а очень плохо. Я про одноплатники по диким ценам, с вендорскими SDK/BSP (которые должны умереть, и уже в общем то почти, в пользу обычного майнлайна).