Pull to refresh

Comments 63

Как-то "обратная разработка" попахивает... Что не так с понятным всем "реверс-инжинирингом"?

Машинный перевод такой бессмысленный и беспощадный. А страдать почему-то надо нам, читателям.

Потрудитесь примеры машинного перевода, желательно со скринами из оригинала и этой статьи

Потрудитесь примеры машинного перевода

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

Уже скоро будем ругаться на ручной перевод.
И на неиспользование улучшателей стилистики текста.

Если такие "улучшатели" будут корябить глаз, то будем обязательно ругаться. В переводе главное, что бы текст шёл просто и легко усваивался с чаем и печеньками.

Я рад, что автору этого перевода это не безразлично и он хочет прикладывать усилия для улучшения этого навыка. Это главное.

Попробую немного пробежаться на сколько хватит.

Про "обратную разработку" уже написали. Это первое что бросается и режет глаз.

Падежи в некоторых местах не к месту, обычно так машинные переводчики путают (например, "приступила к обратной разработкой").

Вот ещё кусок интересный: "а спустя всего пару месяцев она уже userspace прошла 75% тестов". Непонятно на каком это языке. Слова многие вроде русские, а собрано в кучу по-машинному. Кстати, в оригинале в этом месте нет "userspace", оно было до этого и в переводе это вроде даже уже было отражено.

В куске "сравнительно простых GPU «для мобильных устройств», например, в  ARM Mali" непонятно почему "для мобильных устройств" взято в кавычки. В оригинале есть кавычки, но смысл немного в другом. В переводе смысл поменялся, а кавычки остались.

"я уже писала трассировщик GPU для гипервизора m1n1 и заполнял определения структур" -- тут даже пол поменялся по ходу фразы. Машинные переводчики зачастую используют мужский пол.

И так далее и много ещё по мелочам и не очень то тут, то сям. Мне сложно вычитывать такой перевод просто, что бы углубляться во все-все-все подробности. Прошу прощения за свою лень.

Надеюсь, наличие скринов не обязательно.

Оригинал:

Hello everyone, Asahi Lina here!✨
marcan asked me to write an article about the M1 GPU, so here we are~! It’s been a long road over the past few months and there’s a lot to cover, so I hope you enjoy it!

Твоя версия:

Привет всем, в эфире Асахи Лина!✨
marcan попросил меня написать статью о M1 GPU, и вот она готова ~! Это был долгий проект, растянувшийся на несколько месяцев, и было о чём поведать, так что, надеюсь, вам понравится!

Моя версия:

Привет, на связи Лина Асахи!
По просьбе marcan я написала статью о M1 GPU. Этот проект занял несколько месяцев и мне нужно о многом рассказать. Итак, приступим. Надеюсь, вам понравится статья!

Имхо как носителя русского языка:

  1. В русском языке Hello everyone не переводится, мы так не говорим. На крайняк уже "Всем привет!"

  2. Asahi Lina - пришлось погуглить, но я склоняюсь к тому, что ее зовут Лина. Она из Японии. Вся статья от собственного имени и довольно неформально-дружеская. По-русски принято, говоря о себе, представляться Имя Фамилия (ну если конечно мы не в официальном поле или не в паспортном столе)

  3. ", so here we are~!", "It’s been a long road over the past few months" - это все английские обороты, надо просто переписать их по-русски с нуля, не завязываясь на структуру английского предложения.

ЗЫ: я не профи и вообще не гуманитарий, но это мой фидбек именно по переводу. Было сложно читать и я не понимал в чем тут проблема

Страдать приходится только первопроходцам.

У меня уже выработана привычка начинать читать статью с комментариев, а не с самой статьи...

Там ещё allocate/deallocate не осилили до конца. Выделение есть, но вместо освобождения почему-то "деаллокация".

Да, поправил. Вообще я держал перевод "высвобождение" под "free" из оригинала, но здесь замена также уместна

Уместно всегда использовать устоявшиеся технические термины. Не уместно - мешать в одном предложении англицизмы и дословные переводы. Читается тяжело, видно что переводили гуглотранслейтом либо человеком который вообще не разбирается в предметной области.

Деаллокация есть, но вместо аллокации почему-то "выделение".

А вы хоть раз слышали, чтобы это кем-то хоть раз употреблялось?


Человеку, для того чтобы понять что имеется ввиду, требуется вначале долго вдуплять, потом догадаться перевести на английский и только после этого становится понятным смысл этого словосочетания. Это не "прозрачность", а троллинг читателя/слушателя.

Странные люди. Вы же откуда-то узнали эти англизмы и привыкли к ним. Теперь родная речь для вас нечто инородное.

Я совершенно не специалист, и тем не менее периодически слышу "обратная разработка". Если этот термин вам всем неведом и вызывает такую бурю (вместо обсуждения того что там написано)... Надо поставить вопрос о вашей образованности и культурности. Ужас какой-то... Собрались все неучи хабра и с радостью лупят автора за неизвестный им термин...

Слышал заимствование, копирование, но обратная разработка ... - нет. А язык это всегда практика, если не слышишь, значит и слова уже нет (если вообще было)

Конечно узнали. Потому что это известный и устоявшийся термин. А попытка перевести терминологию на любой другой язык очень часто приводит к проблемам.


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

А "инжиниринг" прям так и обозначает всё правильно? У них это слово обозначает примерно всё. Даже закапывание ямы лопатой можно назвать "реверс инжиниринг", если постараться. Вы спорите с русским термином, при этом принимаете английский считая от чего-то его логичным? Инженерия - это дофигища всего.
Претензия же к "разработке" - тоже от незнания русского языка. Как вам "разработка полезных ископаемых"?

Ну коли уж людям потоки это нити, то обратная разработка не так страшна.

При чтении этой статьие — вспоминается статья в одном старом бумажном журнале.
Где есть фраза вроде(именно на русском) — но если ваша программа использует все возможности Windows NT, такие как триады и пайпы, то вам потребуется для запуска Windows NT, но в этом случае можно обойтись минимальной запущенной на 8 Mb RAM…
(сама статья про PharLap DOS Extender скорее)

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

"Пространство пользователя" из той же оперы. Перевод, в целом, понятный, но в отдельных местах странный.

Чем больше эмодзи, тем лучше - плохая мысль, могли бы из перевода и удалить их

А я считаю что если в оригинале эмодзи есть, то и в переводе должны быть. Сохраняется оригинальный стиль изложения.

UFO landed and left these words here

Кстати, этот оригинальный стиль изложения называется "делаю крутые штуки, что ты мне сделаешь".

И что? Вот эти девушки сделали очень сложные крутые технические вещи и хорошо написали о них, но они в своей статье эмодзи активно используют.

Вот эти девушки сделали очень сложные крутые технические вещи

Насколько я помню, Алисса не совсем девушка или, может, не всегда ею была.

Но это не умаляет ее вклада в развитие lima, panfrost и других GPU-драйверов.

По технической части статьи есть что сказать? Или ты только в эмодзи понимаешь?

UFO landed and left these words here

есть библиотека под названием drm-shim. Она подменяет интерфейс ядра Linux DRM, ставя на его место формальную реализацию, обрабатываемую в пользовательском пространстве.
что, если вставить в drm_shim интерпретатор Python, и вызывать из неё весь тот драйвер-прототип, который я напишу на Python?

Какой ужас. "... что, если гланды удалять через опу?"

Зато, написание драйверов на питоне приводит к повышенному содержанию восклицательных знаков и эмодзи !!1

Какой ужас. "... что, если гланды удалять через опу?"

Слово "прототип" вас ни на какие мысли не наводит?

Питон позволяет всё делать быстро и гибко.

Зато, написание драйверов на питоне приводит к повышенному содержанию восклицательных знаков и эмодзи !!1

triggered ?

Смайлики не должны удивлять, потому как Лина это виртуальный аниме персонаж (появившийся 1 апреля 2022).

Слово "прототип" вас ни на какие мысли не наводит?

Поскольку это тестовое удаление гланд, то мы сделаем это через опу )

драйвер ядра ещё много месяцев не пойдёт наверх

куда куда пойдет?
нет, я понимаю что в оригинале видимо было "upstreamed" но можно ж было как то по другому перевести, ну там — "влит в основную ветку" или что-то вроде

Это как опенсоурс драйвера от nvidia, спасибоненадо

Я конечно не эксперт в линукс тематике, но был ли смысл брать сырую обертку раста для драйверов в линуксе, которая еще и работает с версии ядра 6.1? Не лучше было бы все таки на Си написать, чтобы был бэкпорт в старые версии ядра(если такое вообще возможно)?

Текст выглядит как типичный пример «Школьнику втюхали рекламу раста и теперь он везде трубит у нас тут blazingly fast and ultra mega extra safe code»

молодежь будет писать на новых языках :) Бэкпорты - для старичков!

во-вторых - можно же и раст "обмазать снаружи С", чтобы он вызывался нативно, если кому-то надо (я там глянул - он и в объектники умеет и llvm-ir)....

PS: я и сам люблю С, но момент с обработчиком ошибок в С при помощи goto метка - это да, есть такое ...

Тут скорее возникает вопрос, а зачем ставить на новый M1 старое ядро, если можно не ставить? Это конечно же оставляя вопросы касательно страданий при отладке многопоточности на Си.

чтобы был бэкпорт в старые версии ядра(если такое вообще возможно)
Так можно бекпортировать всю обвязку вокруг Rust (если возможно), будет ещё лучше. Кстати, когда по вашему мнению должен наступить момент «ну вот теперь можно уже и на Rust писать»? Аргумент про желательность бекпортов и относительную сырость можно применять хоть до тепловой смерти Вселенной.
blazingly fast and ultra mega extra safe code
… в отличие от C, который имеет только половину этих свойств.

… в отличие от C, который имеет только половину этих свойств.

Ну, use-after-free в этом ultra mega extra safe code вполне себе присутствовал (и еще на самом деле неизвестно, сколько других багов до сих пор остается не найденными). Понятно, что это было обмазано этодругином для смягчения эффекта, но хорошо хоть, что не замолчали этот момент, чтобы не "портить впечатление". Растут над собой потихоньку.

Баги — это плохо, и пока не исправлены все баги (как спецификации, так и реализации) нельзя сказать что Rust (или любой другой язык) полностью безопасен, с этим сложно не согласиться. Но и в GCC и Clang тоже бывают баги (кстати, часть багов Rust унаследована от багов нижележащего LLVM).
К тому же для воспроизведения многих багов компилятора Rust надо писать не совсем тривиальный код, в то время как на C оно скорее всего получится непреднамеренно, иначе у нас бы не было PVS-studio, пишущих о (потенциальных) null pointer dereference в каждом первом проекте. Разница между «стараюсь воспроизвести баг» и «стараюсь НЕ воспроизвести баг» оказалась довольно важной для многих, в том числе и для автора этого видеодрайвера.

иначе у нас бы не было PVS-studio, пишущих о (потенциальных) null pointer dereference в каждом первом проекте.

Большая часть этих "потенциальных null pointer dereference" связана с тем, что при очередном рефакторинге проверку на NULL вынесли куда-то выше по стеку, а проверки из ЧАСТИ вызываемого свыше кода не убрали, что и сбивает PVS-studio и прочие подобные анализаторы с толку. Для C есть PVS-studio, для раста сделали miri, хрен редьки не слаще.

К тому же для воспроизведения многих багов компилятора Rust надо писать не совсем тривиальный код

Это был баг отнюдь не в компиляторе раста, а в коде самого драйвера ("I had a bug in my DRM memory management abstraction").

Большая часть того, что делает PVS Studio встроенно либо в rustc, либо в clippy. А miri покрывает немного другой класс задач.

Ну описанная проблема в драйвере была скорее по части miri, хотя это только моё предположение.

Имеет, потому что они пишут для собственного варианта Arch, а там уже оно есть.
А когда допишут — уже и у бубунты как минимум в hwe появится 6.1.


Совершенно незачем волочь старый проблемный код ради удобства насильников, задача — написать рабочий и быстрый драйвер, а не понянчиться с сями.

И самое "замечательное" что этот драйвер будет ломаться каждый апдейт как только Apple будет привозить новую прошивку под этот ASC.

а помните, как все переехали на Swift с Objective-C ?

  1. тут вина не разработчика драйвера, а Эппл

  2. если удалить МакОС и сидеть в линуксе, то новая прошивка "сама внезапно" не обновится

если удалить МакОС и сидеть в линуксе, то новая прошивка "сама внезапно" не обновится

Но на новых устройствах, которые, естественно, будут идти уже с новой прошивкой с завода, драйвер все равно не заработает, и от беготни кругами с криками "а-а-а" все равно никуда не деться.

Прошивок с завода нет, они не хранятся в SoC. Соответственно старые прошивки работают, пока не обновят физически железку.
Поэтому на каждый новый SoC (m1, m1 pro, m2 и так далее) делается новый срез прошивки и под него дописывается драйвер. Учитывая скорость, с которой добавляли m2, Apple особо активно обратную совместимость не ломает.

А какая разница, где хранится прошивка - в SoC или на разделе с macOS, главное, что на новых устройствах с завода она уже новая. Попытаться где-то найти и подпихнуть другую, более старую, версию прошивки можно, но ИМХО это может быть апасно вплоть до физического повреждения - вы же не знаете, зачем она новая, вдруг там что-то уже и аппаратно поменялось. Apple вряд ли будет вам об этом докладывать.

это может быть апасно

Аппаратно SoC не часто меняются и ревизии/изменения легко трекаются. Сломать микросхему неправильной прошивкой задача не из простых.

Попытаться где-то найти и подпихнуть 

Это выражение не очень отражает стиль работы команды Asahi Linux. Они не пытаются находить и подпихивать, а точно и контролируемо загружают прошивки, что описано у них в блоге и вики.

Вы опять, видимо, не поняли. Суть в том, что с новой версией прошивки этот чудо-драйвер, скорее всего, работать не будет, потому что он уж слишком полагается на implementation details. Про "находить и подпихивать" - это вообще-то был опосредованный ответ на предложение другого комментатора "просто удалить макос и сидеть на старой прошивке", поясняющий, что с новыми устройствами с завода такой фокус не пройдёт, потому что "старой прошивке" на них неоткуда взяться. "Находить и подпихивать" могут пытаться разве что красноглазые энтузиасты на свой страх и риск, пока "команда Asahi Linux" пилит апдейт для драйвера.

Видимо, вы так и не прочитали мои комментарии или статьи по ссылкам. Очень жаль.

Взаимно. Вы спорите не со мной, а со своим воображением, рисующим вам, что, по вашему мнению, я "имел в виду".

Как я это понял - прошивка подгружается в онлайн режиме и не хранится в SoC.

Asahi Linux запускается в много этапов: PMU OTP fuses → SecureROM → iBoot stage 1 → iBoot stage 2 → m1n1 stage 1 → m1n1 stage 2 → Das U-Boot → GRUB. Причём по возможности данные и прошивки копируются из macOS как отдельная инсталляция macOS. Про это можно почитать тут и тут.
Соответственно, если прошивка под ASC обновится в macOS, она останется прежней на разделах с Asahi Linux.

едва прочитала половину статьи. Они не сталкивались с китайскими микрокомпами. Пример - банан пи м3 с чипом A83t (от планшета вроде бы), Mali и всё такое. Всё это там уже было примерно в 2014 году. То есть ГПУ рулил самим ЦПУ, загрузкой ядра линукса... И работал с графикой хреново даже на 1024х768, либо это сильно зависело от экземпляра железки.

Они не сталкивались с китайскими микрокомпами.

Рекомендую посмотреть кто автор Panfrost (это драйвер Mali).

Всё это там уже было примерно в 2014 году. То есть ГПУ рулил самим ЦПУ.

2014? PowerVR мобильный давным давно выполнял на шейдерах свою прошивку.

ГПУ рулил самим ЦПУ

В малинке разве не так? А это самый популярный одноплатник и не китайский.

Именно так.
Речь в статье про другое. Там между ядрами CPU и GPU внутри SoC стоит прокси-ядро, которое выполняет часть функций, которую обычно делает драйвер на ядрах ЦП. Новизна в этом.

Sign up to leave a comment.

Articles