Вы можете задаться резонным вопросом: а почему я считаю, что ARM и RISC-V нам не подходят? Зачем нам нужен именно Эльбрус? Константин Трушкин, заместитель генерального директора по маркетингу ЗАО МЦСТ, дал довольно простой ответ на эти вопросы на канале у Стаса в ролике «Удивительная правда об Apple M1 и Эльбрус, Российские процессоры и Путина.». Цитирую «Заметьте, когда ARM лицензирует ядро, оно всегда знает, в какую компанию лицензирует. И кто сказал, что не будет специальных модификаций под эту компанию?». Т.е. ARM могут вполне предоставлять тому же Байкалу дизайн ядер с уже вшитыми туда бэкдорами.
А почему не RISC-V? Так дело в том, что RISC-V это лишь система набора команд. Это стандарт команд, который даётся процессору, но как дальше процессор обрабатывает эти команды – никто не знает. Intel, ведь, с 1995 года (линейка Pentium Pro), и AMD, начиная с 1996 года (линейка K5), декодируют CISC (x86) команды в RISC-подобные микро-операции. Почему же тогда не может быть RISC-V процессора, который принимает команды RISC-V, но исполняет внутри уже команды CISC? Понятное дело, что это будет менее эффективно, я просто привожу пример, поясняющий, что RISC-V это лишь язык общения программ с процессором, и нам он вообще ничего не говорит о том, как именно работает этот самый процессор изнутри.
Да и возникает другая проблема. Начнём с того, что не наша страна определяет курс развития этой открытой архитектуры. Как и с любым Open Source проектом, да, мы можем вносить такие коррективы, какие хотим в код, но примут ли эти коррективы изначальные разработчики или нет – зависит только от них. Если вы смотрели ролик Стаса «Как убивают русский INTEL (Предательство или заказ)», вы уже видели пример с модулем ядра Linux для работы iSCSI, который приводил Максим Копосов, директор ООО «Промобит». Что такое iSCSI? Это протокол на базе TCP/IP для взаимодействия и удалённого управления (через интернет) системами хранения данных, серверами и клиентами, работающим c SCSI. Что за SCSI? Это набор стандартов для физического подключения и передачи данных между компьютерами и периферийными устройствами. Существует реализация системы команд SCSI поверх оборудования (контроллеров и кабелей) IDE/ATA/SATA, называемая ATAPI — ATA Packet Interface. Все подключаемые по IDE/ATA/SATA приводы CD/DVD/Blu-Ray используют эту технологию (информация взята из Википедии). И в ядро Linux с версии 2.6.38 был интегрирован модуль LIO вместо SCST, разработанного командой из России. По заверениям экспертов, SCST лучше, чем LIO. Почему же тогда в ядро Linux был интегрирован LIO вместо SCST? Видимо, всему виной политические соображения. Мы можем в своей стране сделать патчи для ядра Linux, но примут ли эти патчи в ядро – зависит не от нас. Не мы определяем путь развития зарубежных Open Source продуктов, и в этом есть проблема.
Как выяснилось, LIO не лишён уязвимостей. В марте 2021 года, в коде подсистемы iSCSI в составе ядра Linux была выявлена уязвимость, позволяющая непривилегированному локальному пользователю (самый обычный пользователь без прав администратора) выполнить код на уровне ядра и получить root-привилегии (права администратора) в системе.
Более того, во многих дистрибутивах Linux регулярно всплывают уязвимости, присутствующие в них уже много лет. Можно вспомнить уязвимость в системном компоненте Polkit, которую выявили в январе 2022 года. Она также позволяла любому не привилегированному пользователю выполнить команды, требующие root-прав (прав администратора). Эта уязвимость присутствует в большинстве Linux дистрибутивов аж с 2009 года. По сути, разработчик любой программы мог интегрировать в неё код, который позволял бы делать что угодно с любыми вашими данными, да и в целом делать что угодно с системой. Понятное дело, что те уязвимости, которые я привёл в пример выше, уже были устранены с обновлениями дистрибутивов. Вот только до этого эта уязвимость присутствовала в Linux аж 13 лет (с 2009 года). Я всё это говорю к тому, что нам в стране крайне нужны специалисты в сфере информационной безопасности, которые будут исследовать весь код, искать уязвимости и предлагать вносить патчи в отечественные дистрибутивы. Только так мы можем быть защищены.
И вот ещё какой вопрос: вы уверены, что разработчики Open Source решений не отрежут нам доступ к ним?
Скриншот 152. Ограничение доступа для Россиян к Open Source проекту ohmyz.sh
Вот пример с проектом ohmyz.sh с открытым исходным кодом (опубликован на GitHub), являющимся фреймворком для управления конфигурацией вашей оболочки Терминала zsh. ZSH – это оболочка терминала, алогом которой является bash. ZSH вы можете установить самостоятельно в Linux, а в macOS, начиная с версии 10.15 (с 2019 года), ZSH используется по умолчанию вместо bash. Данный конкретный проект, ohmyz.sh, предоставлял инструмент для удобной конфигурации того самого ZSH. Вот только с ним возник казус: доступ к сайту этого проекта был прикрыт для пользователей из России. Т.е. руководители проекта просто забили на правила используемой ими лицензии MIT, которая предполагает едва ли не полную открытость кода для всех желающих. Они нарушают лицензию и в наглую дискриминируют пользователей из России. Как вы считаете, это нормально?
Так дела обстояли на 7 марта 2022 года. На следующий день, 8 марта, у меня уже не было проблем с посещением их сайта, но, знаете ли, осадочек остался.
Скриншот 153. RedirectRussia. Проект для ограждения российских пользователей от западных ресурсов.
За рубежом сделали отдельную платформу RedirectRussia для желающих оградить пользователей из России от своего сайта. Она ограждает сайты от пользователей, основываясь на IP-адресе и часовом поясе. Этим не гнушаются пользоваться даже разработчики Open Source проектов, которые, по идее, должны быть за открытость для всех без исключения. А какая же это «открытость», если она открытостью является для всех, кроме граждан РФ? Нужна ли такая «открытость» вообще? ohmyz.sh – лишь один из примеров. Сколько ещё проектов подключились к ресурсу RedirectRussia, я не знаю.
Сильнее меня расстроили люди, вносящие изменения в OpenBLAS, фреймворк для математических расчётов. Ему предлагали удалить из своего кода поддержку Эльбруса. Благо, по итогу этот Pull Request (запрос на внесение изменений) не приняли.
Скриншот 154. commit с отменой изменений для внесения поддержки CURL на Эльбрусе в проекте ioq3 на GitHub.
Но есть другой проект, ioq3 (Open Source версия Quake 3), меинтейнер которого (тот, кто поддерживают проект и решает, какие изменения вносить по запросу) решил отменить правки для поддержки CURL на Эльбрусе. Зачем нужен этот CURL? Без него вы не сможете загружать по сети нестандартные карты, модели, да и вообще любые объекты с тех серверов, к которым вы подключаетесь. В обычной ситуации, если вы подключаетесь к серверу, на котором игра ведётся с использованием объектов, не доступных в Quake 3 по умолчанию, сервер поделится с вами этими самыми недостающими объектами, чтобы вы могли играть. Т.е. ваш клиент просто синхронизируется с сервером при помощи модуля CURL, чтобы не было такого, что у вас не хватает каких-то файлов, нужных для игры на этом самом отдельно взятом сервере. Но этого не случится без модуля CURL. Без CURL вы не сможете зайти поиграть ни на один сервер, на котором игра ведётся с любыми объектами помимо стандартных, предустановленных по умолчанию.
Скриншот 155. Подача запроса Алибеком на восстановление правок в код для работы CURL на Эльбрусе.
Правки для работы CURL вносил Рамиль с Elbrus PC Test. Он в целом тратит немало своего времени на портирование открытого ПО под Эльбрус, и обидно, что этими трудами некоторые люди просто подтираются. Алибек, которого вы могли видеть в видео Стаса, подал запрос на восстановление этих правок, но его просто проигнорировали и закрыли этот самый запрос. Закрыл его тот же меинтейнер, что и обратил вспять правки под Эльбрус.
Понимаете ли, некоторые западные разработчики считают нормальным открывать ПО для всех, кроме россиян и российских разработок. Понятное дело, что можно форкнуть проект, т.е. сделать просто ответвление с нужными правками под Эльбрус, и все обновления дублировать туда. Но, чтобы это реализовать, и, чтобы далее все новые версии в «форке» поддерживали Эльбрус, надо время выделять под поддержку проекта на нём.
Понятно, что игры на Эльбрусе не в приоритете, я лишь привожу примеры.
Я хочу сказать, что на Западе по политическим (и, на мой взгляд, тупо по русофобским) причинам сейчас программно лишают Эльбрус ряда возможностей или оптимизаций в проектах с открытым исходным кодом. Это открытая дискриминация россиян и российских разработок в целом.
Мало примеров? Хорошо, вот ещё один, с которого у меня задницу просто разорвало. Извините, но вот тут я уже растерял все полимеры.
Скриншот 156. Один из файлов, который затронули изменения в коде проекта node-ipc от 7-го марта 2022 года.
7-го марта в Open Source проект node-ipc, входящий в состав более чем 300 других проектов в качестве библиотеки (зависимости), были внесены изменения в код. Они прописаны одной строкой, но всё ок, мы разберёмся.
Скриншот 157. Код, разбитый построчно. Слева – оригинал, справа - вариант с декодированием base64 кода.
Чтобы было проще вникнуть в код, я воспользовался сервисом beautifier.io и разбил код построчно. Часть запросов была закодирована в формат base64, поэтому, для более простого рассмотрения, я их декодировал.
И тут я просто ахренел. Обратите внимание на строку 9. Здесь в коде прописан запрос к сервису ipgeolocation. Если определяется, что вы из России или Беларуси (строки 17 и 18), работа далее ведётся с файлами в текущей директории, родительской директории и корневой директории (т.е. диск C:\). Какая работа? Смотрим на строки 42. Программа затирает содержимое ваших файлов сердечками (эмодзи ♥).
С версии 11.0 изменения, затрагивающие node-ipc, были вынесены в отдельный модуль peacenotwar, и далее вместо затирания данных российских и белорусских пользователей сердечками «♥», программа стала создавать на рабочем столе файл WITH-LOVE-FROM-AMERICA.txt, при помощи которого разработчик призывал прекратить военные действия в/на Украине.
Скриншот 158. Информация из Pull Request (запроса на изменение кода) в проекте node-ipc.
Были возмущения на этот счёт, но автор проекта их просто прикрыл.
Скриншот 159. История изменений в описании к Pull Request с запросом на отмену от использования peacenotwar.
Можете проследить, как автор подтирал сообщения возмущённых.
node-ipc это не ноунейм проект, а известная разработка для межпроцессорного взаимодействия. В качестве модуля его используют многие другие проекты на Vue.JS (например, vue-cli) и Unity. Авторы vue-cli выпустили обновление, в котором в качестве зависимости зафиксировали предыдущую версию node-ipc, которая ещё не имела вредоносного кода. Unity Hub был также обновлён. Пакет был добавлен в чёрный список npmmirror.com. Подробнее можете прочитать на habr и linux.org.ru.
У меня 1 вопрос про WITH-LOVE-FROM-AMERICA.txt: вы там СОВСЕМ А@УЕЛИ? Страна, действия которой повлекли огромные людские потери в Югославии, Афганистане, Ираке, Ливии и других странах, будет чему-то учить Россию? А вы, доблестные разработчики из США, данные пользователей в своей стране то пытались компрометировать, затирать их сердечками (эмодзи ♥), когда вооружённые силы США лезли в другие страны устанавливать свою демократию и своё проамериканское правительство ценой сотен тысяч жертв? Нет? Конкретно ты, (не)уважаемый open source разработчик, Brandon Nozaki Miller под ником RIAEvangelist, чем ты занимался когда твоя страна С ЛЮБОВЬЮ вторгалась в другие страны? Почему сейчас ты всем (не только государству) пользователям из России и Беларуси стал файлы затирать? Пострадали ведь и пользователи из других стран, которые использовали российский VPN. Может быть, вы, доблестные американские разработчики, ответственные граждане, сперва последите за своей страной, а потом уже советы другим странам раздавать начнёте?
Я НЕ одобряю военную спец. операцию России в/на Украине. Я в принципе не одобряю никаких военных действий, в т.ч. я НЕ одобряю АТО («антитеррористическая операция») Украины против Донбасса. Однако, факт в том, что война на Донбассе шла уже 8 лет, и, если РФ сейчас выведет свои войска, война там не закончится. Я особо не лезу в эти вопросы, т.к. я в теме не компетентен. Но программисты из США же всё за всех лучше знают, да?
Я уверен, что кто-нибудь да переведёт мои слова и спросит у тебя, что за хрень ты натворил, Брэндон. Поздравляю, Брэндон, ты успешно выполнил задачу по дискредитации Open Source на корню. Прецедент «мое почтение».
Разработчики из России выразили возмущение этой ситуацией на habr. Опубликовали в Google.Docs (странно, почему не в Яндекс) список Open Source проектов, которые внесли недружественные изменения в связи с проводимыми действиями Вооружённых Сил РФ в/на Украине. Некоторые из них безобидны, например, часть проектов просто выводит сообщение #StandWithUkraine или просто несёт с собой пропаганду, но вот часть других проектов компрометирует данные пользователей из России и Беларуси. Печально, что такова история с проектами с открытым исходным кодом.
Неважно, как вы относитесь к Западу. Как бы вы хорошо к нему не относились, это не изменит того, что ряд людей, принимающих те или иные решения, будет за всё хорошее и против всего плохого для всех, кроме вас. Я не против Open Source априори. Нет, я пытаюсь донести до вас, что, если вы не разбираетесь в коде, если вы не следите за изменениями в проекте, вас никак Open Source не защитит от людей с промытыми мозгами (прикиньте, да, новость века, пропаганда есть не только в России, но и в других странах).
Да и это не всё. Сервис GitHub, на котором чаще всего разработчики и публикуют код своих Open-Source проектов, 15-го апреля заблокировал аккаунты Сбера и Альфа-банка. Позднее, 30-го апреля, GitHub обновил свою политику использования, и там обозначил, что для пользователей из Сирии, Крыма, ДНР и ЛНР воспрещается пользоваться сервисом в коммерческих целях. Что это значит? Если будет сочтено, что тот код, который вы публикуете на GitHub, приносит вам какую-либо коммерческую выгоду, доступ к сервису для вас будет ограничен, если вы проживаете в Сирии, Крыму, ДНР или ЛНР. Все ваши репозитории в таком случае будут переведены в режим «только для чтения», т.е. более вы не сможете вносить изменения в свой же код. Помимо этого, Россию и Беларусь внесли в список стран, в которых не допускаются продажи продукта GitHub Enterprise Server. Ранее в данный список входили Куба, Иран, Северная Корея и Сирия.
Вполне возможен сценарий, при котором санкции, наложенные на Крым, позднее будут применены и ко всей России. Да, даже если нет, друзья, разве людям не нужны такие сервисы, как GitHub, в Крыму, ДНР и ЛНР?
Да, есть ещё GitLab, вот только разработан он специалистом не из РФ, а из Украины. Где гарантии, что GitLab не отрежет доступ России? На словах и GitHub, принадлежащий Microsoft, звал себя домом для всех разработчиков.
Поэтому я обеими руками за инициативу по созданию российского зеркала GitHub, которое позволит защитить нас от блокировки GitHub, и, я надеюсь, защитит также от внесения вредоносного кода в тамошние проекты, и обеспечит открытый доступ к сервису всем на территории России и СНГ.
Не забывайте, что RISC-V – тоже зарубежная разработка. Где гарантии, что стандартизаторы RISC-V не забанят российские компании? Вы уверены, что на Западе разрешат процессор с системой команд RISC-V звать таковым? Даже если он удовлетворяет всем требованиям, нам могут это запретить.
И с RISC-V полно других проблем: тут и то, что без расширений набора инструкций, которые пока полностью не стандартизированы, не получится на RISC-V делать эффективные серверные решения. Как-никак, RISC-V изначально предназначался для устройств IoT (интернета-вещей).
Скриншот 160. Калиста Редмонд (Calista Redmond), генеральный директор RISC-V International.
А, ещё лучше, зайдите на сайт RISC-V International и посмотрите на то, кто же там занимает пост генерального директора.
Калиста Редмонд (Calista Redmond) – далеко не последний человек из IBM. Ранее она там занимала должность вице-президента IBM Z Ecosystem. Она руководила стратегическими отношениями между поставщиками ПО, системными интеграторами, деловыми партнёрами и сообществом разработчиков. В число её основных направлений входили реализация стратегий коммерциализации, техническая и бизнес-поддержка партнёров, а также поиск партнёров по возможностям в сообществах IBM Z и LinuxONE.
К чему эта информация? Да я тут вспомнил видео Стаса «Как убивают русский INTEL (Предательство или заказ)». Стас освещал, как некоторые люди у власти в нашей стране саботировали импортозамещение процессоров. Так, продукция компании Yadro, а именно – СХД на процессорах IBM, попадала в реестр отечественного оборудования и её продукция вытесняла в гос. закупках СХД на процессорах Эльбрус. И тут вот что интересно: IBM, чьи процессоры, по инициативе определённых людей, закупались вместо отечественных Эльбрус, как оказалось, связан и с разработкой системы набора команд RISC-V, на которую нам предлагали перейти не последние люди в стране, руководствуясь желанием заработать деньги вне зависимости от того, чем это обернётся в дальнейшем для настоящей отечественной продукции. Одни и те же люди продавливали IBM, а затем RISC-V, при том, что RISC-V – это только набор команд и ничего более. Как там процессор устроен изнутри, никто из потребителей знать не будет. Нашей стране вполне могли бы продавать процессоры IBM с системой команд RISC-V под видом отечественной разработки. И ради этого готовы были загубить Эльбрус и другие российские (хоть и не полностью) процессоры, в т.ч. Байкал, НТЦ Модуль и Элвис. Я считаю, что эти «люди» должны быть уволены без возможности когда-либо ещё занимать какие-либо государственные должности. Эти «люди» не хотят и не будут ничего развивать в России.
Повторюсь: мне плевать, купите ли вы, мои читатели, обычные работяги, этот самый Эльбрус себе домой. Я не преследую цели продать его вам. Моя позиция об обязательной закупке российских процессоров касается только гос. учреждений, которые содержатся за счёт наших налогов. Просто нельзя нашей стране полагаться на западные технологии. Поэтому нам не подходят ни ARM, ни RISC-V. Надеюсь, моя позиция всем предельно ясна.