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. Этот проект занял несколько месяцев и мне нужно о многом рассказать. Итак, приступим. Надеюсь, вам понравится статья!
Имхо как носителя русского языка:
В русском языке Hello everyone не переводится, мы так не говорим. На крайняк уже "Всем привет!"
Asahi Lina - пришлось погуглить, но я склоняюсь к тому, что ее зовут Лина. Она из Японии. Вся статья от собственного имени и довольно неформально-дружеская. По-русски принято, говоря о себе, представляться Имя Фамилия (ну если конечно мы не в официальном поле или не в паспортном столе)
", so here we are~!", "It’s been a long road over the past few months" - это все английские обороты, надо просто переписать их по-русски с нуля, не завязываясь на структуру английского предложения.
ЗЫ: я не профи и вообще не гуманитарий, но это мой фидбек именно по переводу. Было сложно читать и я не понимал в чем тут проблема
Страдать приходится только первопроходцам.
У меня уже выработана привычка начинать читать статью с комментариев, а не с самой статьи...
Там ещё allocate/deallocate не осилили до конца. Выделение есть, но вместо освобождения почему-то "деаллокация".
Да, поправил. Вообще я держал перевод "высвобождение" под "free" из оригинала, но здесь замена также уместна
Деаллокация есть, но вместо аллокации почему-то "выделение".
Я предпочитаю термин "обратная разработка", так как он определенно более литературен и прозрачен https://xakep.ru/2016/09/02/reverse-rights/
А вы хоть раз слышали, чтобы это кем-то хоть раз употреблялось?
Человеку, для того чтобы понять что имеется ввиду, требуется вначале долго вдуплять, потом догадаться перевести на английский и только после этого становится понятным смысл этого словосочетания. Это не "прозрачность", а троллинг читателя/слушателя.
Странные люди. Вы же откуда-то узнали эти англизмы и привыкли к ним. Теперь родная речь для вас нечто инородное.
Я совершенно не специалист, и тем не менее периодически слышу "обратная разработка". Если этот термин вам всем неведом и вызывает такую бурю (вместо обсуждения того что там написано)... Надо поставить вопрос о вашей образованности и культурности. Ужас какой-то... Собрались все неучи хабра и с радостью лупят автора за неизвестный им термин...
Слышал заимствование, копирование, но обратная разработка ... - нет. А язык это всегда практика, если не слышишь, значит и слова уже нет (если вообще было)
Конечно узнали. Потому что это известный и устоявшийся термин. А попытка перевести терминологию на любой другой язык очень часто приводит к проблемам.
Как минимум потому, что означает он не разработку, а "исследование". Т.е. перевод должен звучать как "потрошение кода", "исследование устройства", "эмуляция поведения", "анализ логики" да вообще что угодно что по смыслу сходит с попыткой понять как писался код, но совсем не соответствует процессу разработки.
А "инжиниринг" прям так и обозначает всё правильно? У них это слово обозначает примерно всё. Даже закапывание ямы лопатой можно назвать "реверс инжиниринг", если постараться. Вы спорите с русским термином, при этом принимаете английский считая от чего-то его логичным? Инженерия - это дофигища всего.
Претензия же к "разработке" - тоже от незнания русского языка. Как вам "разработка полезных ископаемых"?
Ну коли уж людям потоки это нити, то обратная разработка не так страшна.
При чтении этой статьие — вспоминается статья в одном старом бумажном журнале.
Где есть фраза вроде(именно на русском) — но если ваша программа использует все возможности Windows NT, такие как триады и пайпы, то вам потребуется для запуска Windows NT, но в этом случае можно обойтись минимальной запущенной на 8 Mb RAM…
(сама статья про PharLap DOS Extender скорее)
Вполне употребимый термин, особенно в российских академических публикациях. По крайней мере, раньше был :)
15-17 лет назад меня просили заменить то ли в дипломе, то ли в статье "реверс-инжиниринг" на "обратную разработку" из тех соображений, что существует устоявшийся русскоязычный термин, поэтому нет смысла в заимствовании.
"Пространство пользователя" из той же оперы. Перевод, в целом, понятный, но в отдельных местах странный.
Чем больше эмодзи, тем лучше - плохая мысль, могли бы из перевода и удалить их
А я считаю что если в оригинале эмодзи есть, то и в переводе должны быть. Сохраняется оригинальный стиль изложения.
Кстати, этот оригинальный стиль изложения называется "делаю крутые штуки, что ты мне сделаешь".
И что? Вот эти девушки сделали очень сложные крутые технические вещи и хорошо написали о них, но они в своей статье эмодзи активно используют.
По технической части статьи есть что сказать? Или ты только в эмодзи понимаешь?
есть библиотека под названием 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 надо писать не совсем тривиальный код, в то время как на 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").
Имеет, потому что они пишут для собственного варианта Arch, а там уже оно есть.
А когда допишут — уже и у бубунты как минимум в hwe появится 6.1.
Совершенно незачем волочь старый проблемный код ради удобства насильников, задача — написать рабочий и быстрый драйвер, а не понянчиться с сями.
И самое "замечательное" что этот драйвер будет ломаться каждый апдейт как только Apple будет привозить новую прошивку под этот ASC.
а помните, как все переехали на Swift с Objective-C ?
тут вина не разработчика драйвера, а Эппл
если удалить МакОС и сидеть в линуксе, то новая прошивка "сама внезапно" не обновится
если удалить МакОС и сидеть в линуксе, то новая прошивка "сама внезапно" не обновится
Но на новых устройствах, которые, естественно, будут идти уже с новой прошивкой с завода, драйвер все равно не заработает, и от беготни кругами с криками "а-а-а" все равно никуда не деться.
Прошивок с завода нет, они не хранятся в 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 мобильный давным давно выполнял на шейдерах свою прошивку.
ГПУ рулил самим ЦПУ
В малинке разве не так? А это самый популярный одноплатник и не китайский.
Сказ о M1 GPU