Небольшой обзор Эльбрус ОС. Операционная система "Эльбрус" и отечественный процессор. Моноблок "КМ4-Эльбрус"

BOOT started. BOOT E2S VERSION: release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S at revision 3816) BUILT BY neo TARGET: mono ON Nov 2 2015 AT 18:05:37 COMPILER: lcc:1.17.12:Nov-27-2012:e2k-linux.cross:i386-linux Thread model: posix gcc version 3.4.6 compatible. FLAGS: -DDEBUG_TEST_BOOTBLOCK ........ -DRELEASE ........
Нажав клавишу «Пробел» при появлении соответствующего приглашения (спустя 45 секунд после подачи питания), можно прервать автоматическую загрузку ядра системы и попасть в меню основных команд, где показываются или меняются базовые параметры загрузчика. Нажав клавишу «Тильда», можно перейти из этого меню в интерфейс командной строки, где доступна тонкая настройка аппаратуры - от установки даты и времени суток до задания режимов работы периферийных контроллеров и системной шины. Хотя в меню есть пункт принудительного сохранения параметров, изменения из командной строки сохраняются автоматически; в крайнем случае, настройки можно сбросить с помощью джампера на материнской плате.

Журнал работы в системном меню (полностью на Pastebin)

BOOT SETUP Press command letter, or press "h" to get help:h HELP "p" or "s" - load and Start file "c" - Change boot parameters "u" - show cUrrent parameters "d" - show Disks and partitions "m" - save params to NVRAM "b" - start Boot.conf menu "`", "~" - enter enhanced cmd mode:` ENHANCED CMD MODE Enter command, "help" to get help, or Esc to exit # set vga primary 1 core: 0x0, link: 0x0, bus: 0x3, slot: 0x0, func: 0x0, ven: 0x1002, dev: 0x6779, rev: 0x0, classcode: 0x30000 is selected! # boot boot# auto CPU#00: Label "auto" found, loading parameters Trying to load and start image with following parameters: drive_number: "4" partition_number: "0" command_string: "console=tty0 root=/dev/sda3 ........" filename: "/boot/image-033.6.57" initrdfilename: "" CPU#00: Reading: File - "/boot/image-033.6.57", Drive - 4, Partition - 0 ........
Среди прочего, обращает на себя внимание возможность активации и деактивации аппаратно-программного модуля доверенной загрузки «Эшелон‑Э», хотя никакой платы, напоминающей традиционные АПМДЗ, в компьютере не установлено. Внятной информации о таком устройстве найти не удалось, за исключением одной заметки, где утверждалось, что это специализированная версия продукта «МДЗ-Эшелон», который является полностью программной разработкой и использует штатные аппаратные средства компьютера.

Прямо из командной строки, не загружая операционную систему, можно запускать тесты корректности функционирования аппаратуры (Система тестовых и диагностических программ) - то ли те, что хранятся на диске и доступны для запуска из операционной системы, то ли какие‑то другие: разобраться не удалось, так как требуется указать точное имя исполняемого файла, а документация отсутствует.

По той же причине, - из‑за отсутствия надлежащей документации, - не удалось вникнуть в тонкости управления загрузчиком операционной системы, точнее, как загрузить что-нибудь помимо штатной системы. Ведь здесь используется тот же загрузчик (SILO), что и на компьютерах архитектуры SPARC, - а там не предполагается работа с чужеродным набором инструкций. Сами‑то параметры загрузки интуитивно понятны: надо указать номер раздела и имя файла с ядром системы, а также аргументы запуска ядра, имя файла с архивом вспомогательных программ (initrd , если нужен), тайм-аут ожидания отмены пользователем. Эти параметры считываются из файла /boot/boot.conf в первом разделе диска, заданного из командной строки; в файле может быть определено несколько наборов параметров, - по умолчанию используется тот, что указан в директиве default , либо которому присвоено название «auto ». Но что нужно делать, чтобы запускать операционные системы для архитектуры x86 или x86‑64, прозрачная поддержка которых заявлена как одна из ключевых особенностей «Эльбруса»? Отсутствие файла boot.conf на установочном диске Windows или популярного дистрибутива Linux можно компенсировать ручным вводом через меню. А как передать управление новому загрузчику, не являющемуся ядром Linux? Как запустить хотя бы ядро Linux, если оно для x86? Разобраться в этом без документации не получилось: дело неизменно заканчивалось зависанием в момент перехода управления от загрузчика к ядру.

Штатная конфигурация загрузчика (boot.conf)

Default=auto timeout=3 label=auto partition=0 image=/boot/image-033.6.57 cmdline=console=tty0 console=ttyS0,115200 consoleblank=0 hardreset REBOOT root=/dev/sda3 video=DVI-D-1:1024x768-24@60 video=VGA-1:1024x768-24@60 fbcon=map:10
Что касается штатных ядер операционной системы «Эльбрус», то файл конфигурации загрузчика содержит только один набор параметров, и указывают они на ядро по умолчанию. Помимо него, имеются два ядра - с суффиксами «nn » и «rt »: судя по конфигурации сборки этих ядер, первое означает «no NUMA» (упрощённая версия для однопроцессорных систем; почему бы на персональном компьютере не использовать именно её?), а второе - «real time» (расширения ядра Linux для диспетчеризации задач с ограничением по времени выполнения). Не имея даже поверхностных знаний в этих областях, автор затрудняется дать какие-либо комментарии насчёт преимуществ или недостатков того или иного альтернативного ядра.

Касательно поддержки PPS и PTP

Единственный знакомый параметр конфигурации - это включение поддержки PPS API (pulse per second) в ядре «rt », которая позволяет корректировать ход системных часов компьютера согласно внешнему синхроимпульсу, например, от приёмника GPS/ГЛОНАСС или от цезиевых часов, если у вас вдруг такие случайно завалялись. Вот только непонятно, как именно настроить эту синхронизацию: в отличие от FreeBSD, например, где всё начинает работать как бы само собой после пересборки ядра с нужным параметром и перенастройки NTPd на использование системной дисциплины, в Linux обычно требуются пляски с бубном вокруг утилиты ldattach , создающей виртуальное PPS-устройство на основе порта COM или LPT, - для этого нужны соответствующие драйверы в ядре или в отдельных модулях, а их здесь не видно.

Встроенная сетевая карта тоже не проявила признаков аппаратной поддержки синхронизации времени: вывод утилиты ethtool касательно протокола PTP свидетельствовал об отсутствии подобных функций. В любом случае, - что при использовании ядра по умолчанию, что real time, единственным источником времени системы является устройство «lt » («Elbrus timer»?) с дискретностью 1 мкс. Не то чтобы это слишком грубо, но современным компьютерам вполне по силам обеспечить квантование на уровне 25–50 нс, причём независимо от текущей частоты процессора.


По умолчанию, операционная система запускается вместе с графическим окружением: 12 секунд уходит на загрузку ядра в память и ещё около 23 до появления приглашения ко входу в систему, - всего 80 секунд с момента включения. Как уже говорилось, подобрать аргументы ядра для запуска в однопользовательском режиме у нас не получилось: при указании «S » или «1 » система всё равно доходила до 5‑го уровня, а попытки понизить уровень после этого с помощью команды init приводили к краху системы.

Поскольку в компьютере имеется два видеоадаптера, виртуальные терминалы распределяются между ними по очереди: первый терминал открывается на дискретной карте, второй - на встроенном контроллере, третий - опять на дискретной, и так далее. Графический рабочий стол, находясь на седьмом терминале, таким образом попадает на дискретную видеокарту, быстродействие которой не вызывает вопросов. Очень хотелось проверить, насколько отзывчивым будет рабочий стол, если вывести его через встроенный контроллер, потому что у отечественных платформ с этим бывает туго: например, простая перерисовка экрана силами Модуля графических адаптеров (собственной разработки МЦСТ) может занимать несколько секунд, - не просто медленно, а почти как построчное появление заставки в играх для ZX Spectrum, загружаемых с магнитофонной кассеты. Увы, ни правка Xorg.conf по образу и подобию, ни подбор аргументов ядра, ни смена первичного видеоадаптера в настройках аппаратуры нужного эффекта не дали.

Любопытный нюанс

Тогда как первичный экран на дискретной видеокарте инициализируется в текстовом режиме, тот же экран на встроенном контроллере инициализируется в графическом режиме и показывает 4 эмблемы процессора (как это делают некоторые ядра Linux сразу после своего запуска), но всё равно использует только верхние 25 строк текста.


По умолчанию, ядро запускается с аргументом «hardreset », который инструктирует систему выполнить полный аппаратный сброс при перезапуске компьютера. В мире x86 к этому варианту все привыкли, но альтернативные платформы, где «холодная» инициализация после включения питания занимает несколько минут, могут предлагать быстрый перезапуск операционной системы, - и это действительно работает, в отличие от «лотереи» с kexec у Intel / AMD. Нам не удалось подобрать такой аргумент, который поддерживался бы ядром системы «Эльбрус» и при этом давал нужный результат.

Программное обеспечение

Операционная система «Эльбрус» (ОС Эль, OSL) является штатной для всех компьютеров МЦСТ, хотя на платформе SPARC также может функционировать порт системы МСВС 3.0 . Официальная система идентификации программных продуктов восходит к их децимальным номерам: например, «ОС 316‑10» расшифровывается как «операционная система ТВГИ.00316‑10 с ядром ТВГИ.00315‑03, входящая в состав общего программного обеспечения ТВГИ.00311‑05». С одной стороны, это похоже больше на буквенно-цифровые названия , чем на порядковые номера версий . С другой стороны, тот или иной программный продукт обычно тесно связан с конкретным аппаратным продуктом, и не претерпевает существенных изменений за время своей жизни. Тем не менее, в файле /etc/mcst_version можно увидеть бирку «release 2.2.1», а в псевдофайле /proc/bootdata - «release 2.13.3.0». Однако в интерфейсе пользователя не встречается ни одно из этих обозначений.

$ cat /etc/mcst_version release 2.2.1 $ cat /proc/bootdata boot_ver=" release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S at revision 3816) built on Nov 2 2015 at 18:05:58" mb_type="MONOCUB" chipset_type="IOHUB" cpu_type="E2S" cache_lines_damaged=0 $ cat /proc/version Linux version 2.6.33-elbrus.033.6.57 (gavrilova_tg@e2k13) (gcc version 4.4.0 compatible) #1 SMP Sun Oct 11 00:10:58 MSK 2015 $ uname -a Linux MONOCUB-10-XX 2.6.33-elbrus.033.6.57 #1 SMP Sun Oct 11 00:10:58 MSK 2015 e2k E2S MONOCUB GNU/Linux
Ядром системы служит Linux 2.6.33, портированное на архитектуру «Эльбрус-2000» (E2K), а в целом система базируется на дистрибутиве Debian с избирательным подходом к выбору пакетов: по большей части наблюдается соответствие выпуску 7.0 «Wheezy» или более новому, однако версии некоторых пакетов скорее ближе к 5.0 «Lenny». Если верить недавнему отчёту (PDF, 172 Кбайт), проводятся также изыскания по прямому портированию оригинального дистрибутива со всем его многообразием пакетов, однако за основу там выбран всё тот же «Дедушка Ленин». А всё потому, что необходимо обеспечивать обратную совместимость с прикладным и системным программным обеспечением, разрабатываемым под ещё более старые версии библиотек и компиляторов. Но почему бы тогда не выпустить несколько версий системы, - на более старой и на более новой пакетной базе, - чтобы потребитель мог сам выбирать? Наверное, потому что нет достаточного спроса со стороны целевой аудитории, да и проблемы сертификации наверняка играют не последнюю роль.

Единожды установленная система не подлежит регулярному обновлению из официального репозитория фирмы МЦСТ и сразу содержит в себе все имеющиеся пакеты. Вот версии некоторых наиболее значимых (за исключением средств разработки, рассматриваемых в следующей части статьи):

  • офисные инструменты: abiword 2.8.6, evince 2.32.0, geeqie 1.1, gimp 2.6.12, gnumeric 1.10.0, graphviz 2.32.0, mtpaint 3.40, xsane 0.998;
  • средства Интернета: dillo 3.0.3, firefox 3.6.28, links 2.2, linphone 3.5.2, lynx 3.81, thunderbird 3.1.20, sylpheed 2.7.0;
  • криптография: gnutls 3.1.22, openssl 0.9.8zc, openvpn 2.2.2;
  • мультимедиа: ffmpeg 1.0, mplayer 1.1.1;
  • текстовые редакторы: ed 1.7, leafpad 0.8.17, vim 7.3 + gvim 7.3;
  • файловые менеджеры: mc 4.7.0.8, thunar 1.4.0;
  • командные интерпретаторы: bash 4.2.53, pdksh 5.2.14, tcsh 6.18.01, zsh 5.0.2;
  • службы: openssh 6.1p1, httpd 2.4.3, postgresql 9.2.3 + slony1 2.2.0, zeromq 2.1.11;
  • менеджеры пакетов: apt 0.9.7.9, aptitude 0.6.8.2, dpkg 1.16.10, pkgtools 13.1.
Всего в менеджере пакетов насчитывается 679 записей , что в десятки раз меньше исходного пула Debian, однако следует учитывать, что не всё реально установленное программное обеспечение оформлено в виде пакетов: например, система в действительности располагает виртуальной машиной и набором разработчика Java, но менеджер пакетов об этом не в курсе.

Единственным окружением графического рабочего стола является Xfce 4.10. Удивительно, но в отечественной операционной системе вновь создаваемые профили пользователей по умолчанию настроены на английский язык интерфейса, а в меню программ нет ярлыков для настройки переключения раскладки клавиатуры, да и индикатора текущей раскладки тоже нигде не видно. Впрочем, опытные пользователи знают, что отечественные операционные системы на базе Linux обычно стараются копировать «лучшие» традиции Windows: работа из под root и переключение раскладки по Alt+Shift.

Рабочий стол Xfce (примерный вид)

Дополнение от 09.02.2016. В комментариях подсказывают, что функция снятия снимков экрана есть в графическом редакторе GIMP, - замечание справедливое, но для этого надо быть опытным пользователем данной программы; автор же, хоть и выполнил обработку всех иллюстраций для этой статьи именно в GIMP, к таким знатокам не относится. Что же до получения скриншотов с помощью утилит командной строки, - штатно имеющихся или собранных самостоятельно, - то такой способ не рассматривался по причине низкой дружелюбности к рядовому пользователю.

Как уже говорилось, запустить хоть какую-нибудь стороннюю операционную систему, скомпилированную для архитектуры x86 или x86‑64, мы не смогли из‑за отсутствия документации. Попытки напрямую из командной строки «Эльбрус» запустить пользовательское приложение, скомпилированное для Linux x86‑64, тоже успехом не увенчались. Слоя эмуляции WinAPI и средств запуска PE-бинарников в системе нет, а чтобы собрать WinE самостоятельно из исходных текстов, необходимо портировать архитектурно-зависимые участки кода. Эмулятора Qemu тоже нет в штатной поставке, но он более-менее успешно собирается (с параметрами ‑‑enable-tcg-interpreter ‑‑disable-werror ) и вроде даже работает в вариантах i386-softmmu , x86_64-softmmu , sparc-softmmu , sparc64-softmmu ; портирование однако требуется для «прикладных» вариантов *-linux-user . Очевидно, создатели технологии двоичной трансляции «Эльбруса» совсем не это имели в виду, когда говорили об аппаратной эмуляции x86, поэтому смысла тестировать производительность Qemu мы не видели, - и так ясно, что это было бы медленно и печально.

Возвращаясь к теме штатного программного обеспечения, рискнём высказать предположение, что типичный пользователь этой системы вряд ли будет чувствовать себя обделённым, так как ему придётся либо решать задачи в специализированных программах сторонней разработки, либо создавать несложные документы в офисных пакетах, сканировать и печатать, - а для этого мало кому нужны самые свежие версии. Единственным исключением здесь, пожалуй, является веб-браузер: простейший Dillo и текстовые Lynx / Links ни на что не претендуют, а вот Firefox 3.6 - это хоть и не 1.5 из состава МСВС 3.0, но всё равно безнадёжно стар для современных сайтов. Эту версию не поддерживают, например, карты Яндекса и Гугла (в отличие от OSM и Bing), Google Docs; вы увидите только шапку сайтов Intel, почты Mail.ru и Сбербанка. И, конечно, в отсутствие встроенной поддержки HTML Video и плагина Flash вы не сможете посмотреть видеоролики ни на одном сайте, - будь то зарубежный YouTube с отчётом о запуске Doom 3 на «Эльбрус 401‑PC» или идеологически верный Kremlin.ru с выступлениями верховного главнокомандующего. Видимо, это тоже не считается недостатком, так как типовой сценарий применения подобных компьютеров - доступ к внутренним, специально разработанным сайтам в закрытой сети предприятия или ведомства.

Попытки выхода в Интернет (слово «Namoroka» на скриншотах - это не очередной ребрендинг Firefox для Debian, а всего лишь кодовое имя версии 3.6)

Но ведь обновление программного обеспечения служит не только для расширения функциональности, а ещё и устраняет серьёзные ошибки и уязвимости, - как быть с этим? Видимо, идеологи информационной безопасности считают, что раз внешнего доступа в частную сеть нет, а внутренние пользователи, имеющие физический доступ к своим компьютерам, не станут сознательно предпринимать злонамеренных действий или подключать сомнительные носители данных по неосторожности, то беспокоиться не о чем. В крайнем случае, если какой‑то баг вас очень тревожит, и вы хотите поговорить об этом, у МЦСТ есть своя bugzilla с логином и тикетами, - в том смысле, что без выданного вам логина вы туда не попадёте, а тикеты будете видеть только свои собственные, даже если проблема уже обсуждалась тысячу раз с другими клиентами и решение было давно найдено.

BOOT started. BOOT E2S VERSION: release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S at revision 3816) BUILT BY neo TARGET: mono ON Nov 2 2015 AT 18:05:37 COMPILER: lcc:1.17.12:Nov-27-2012:e2k-linux.cross:i386-linux Thread model: posix gcc version 3.4.6 compatible. FLAGS: -DDEBUG_TEST_BOOTBLOCK ........ -DRELEASE ........
Нажав клавишу «Пробел» при появлении соответствующего приглашения (спустя 45 секунд после подачи питания), можно прервать автоматическую загрузку ядра системы и попасть в меню основных команд, где показываются или меняются базовые параметры загрузчика. Нажав клавишу «Тильда», можно перейти из этого меню в интерфейс командной строки, где доступна тонкая настройка аппаратуры - от установки даты и времени суток до задания режимов работы периферийных контроллеров и системной шины. Хотя в меню есть пункт принудительного сохранения параметров, изменения из командной строки сохраняются автоматически; в крайнем случае, настройки можно сбросить с помощью джампера на материнской плате.

Журнал работы в системном меню (полностью на Pastebin)

BOOT SETUP Press command letter, or press "h" to get help:h HELP "p" or "s" - load and Start file "c" - Change boot parameters "u" - show cUrrent parameters "d" - show Disks and partitions "m" - save params to NVRAM "b" - start Boot.conf menu "`", "~" - enter enhanced cmd mode:` ENHANCED CMD MODE Enter command, "help" to get help, or Esc to exit # set vga primary 1 core: 0x0, link: 0x0, bus: 0x3, slot: 0x0, func: 0x0, ven: 0x1002, dev: 0x6779, rev: 0x0, classcode: 0x30000 is selected! # boot boot# auto CPU#00: Label "auto" found, loading parameters Trying to load and start image with following parameters: drive_number: "4" partition_number: "0" command_string: "console=tty0 root=/dev/sda3 ........" filename: "/boot/image-033.6.57" initrdfilename: "" CPU#00: Reading: File - "/boot/image-033.6.57", Drive - 4, Partition - 0 ........
Среди прочего, обращает на себя внимание возможность активации и деактивации аппаратно-программного модуля доверенной загрузки «Эшелон‑Э», хотя никакой платы, напоминающей традиционные АПМДЗ, в компьютере не установлено. Внятной информации о таком устройстве найти не удалось, за исключением одной заметки, где утверждалось, что это специализированная версия продукта «МДЗ-Эшелон», который является полностью программной разработкой и использует штатные аппаратные средства компьютера.

Прямо из командной строки, не загружая операционную систему, можно запускать тесты корректности функционирования аппаратуры (Система тестовых и диагностических программ) - то ли те, что хранятся на диске и доступны для запуска из операционной системы, то ли какие‑то другие: разобраться не удалось, так как требуется указать точное имя исполняемого файла, а документация отсутствует.

По той же причине, - из‑за отсутствия надлежащей документации, - не удалось вникнуть в тонкости управления загрузчиком операционной системы, точнее, как загрузить что-нибудь помимо штатной системы. Ведь здесь используется тот же загрузчик (SILO), что и на компьютерах архитектуры SPARC, - а там не предполагается работа с чужеродным набором инструкций. Сами‑то параметры загрузки интуитивно понятны: надо указать номер раздела и имя файла с ядром системы, а также аргументы запуска ядра, имя файла с архивом вспомогательных программ (initrd , если нужен), тайм-аут ожидания отмены пользователем. Эти параметры считываются из файла /boot/boot.conf в первом разделе диска, заданного из командной строки; в файле может быть определено несколько наборов параметров, - по умолчанию используется тот, что указан в директиве default , либо которому присвоено название «auto ». Но что нужно делать, чтобы запускать операционные системы для архитектуры x86 или x86‑64, прозрачная поддержка которых заявлена как одна из ключевых особенностей «Эльбруса»? Отсутствие файла boot.conf на установочном диске Windows или популярного дистрибутива Linux можно компенсировать ручным вводом через меню. А как передать управление новому загрузчику, не являющемуся ядром Linux? Как запустить хотя бы ядро Linux, если оно для x86? Разобраться в этом без документации не получилось: дело неизменно заканчивалось зависанием в момент перехода управления от загрузчика к ядру.

Штатная конфигурация загрузчика (boot.conf)

Default=auto timeout=3 label=auto partition=0 image=/boot/image-033.6.57 cmdline=console=tty0 console=ttyS0,115200 consoleblank=0 hardreset REBOOT root=/dev/sda3 video=DVI-D-1:1024x768-24@60 video=VGA-1:1024x768-24@60 fbcon=map:10
Что касается штатных ядер операционной системы «Эльбрус», то файл конфигурации загрузчика содержит только один набор параметров, и указывают они на ядро по умолчанию. Помимо него, имеются два ядра - с суффиксами «nn » и «rt »: судя по конфигурации сборки этих ядер, первое означает «no NUMA» (упрощённая версия для однопроцессорных систем; почему бы на персональном компьютере не использовать именно её?), а второе - «real time» (расширения ядра Linux для диспетчеризации задач с ограничением по времени выполнения). Не имея даже поверхностных знаний в этих областях, автор затрудняется дать какие-либо комментарии насчёт преимуществ или недостатков того или иного альтернативного ядра.

Касательно поддержки PPS и PTP

Единственный знакомый параметр конфигурации - это включение поддержки PPS API (pulse per second) в ядре «rt », которая позволяет корректировать ход системных часов компьютера согласно внешнему синхроимпульсу, например, от приёмника GPS/ГЛОНАСС или от цезиевых часов, если у вас вдруг такие случайно завалялись. Вот только непонятно, как именно настроить эту синхронизацию: в отличие от FreeBSD, например, где всё начинает работать как бы само собой после пересборки ядра с нужным параметром и перенастройки NTPd на использование системной дисциплины, в Linux обычно требуются пляски с бубном вокруг утилиты ldattach , создающей виртуальное PPS-устройство на основе порта COM или LPT, - для этого нужны соответствующие драйверы в ядре или в отдельных модулях, а их здесь не видно.

Встроенная сетевая карта тоже не проявила признаков аппаратной поддержки синхронизации времени: вывод утилиты ethtool касательно протокола PTP свидетельствовал об отсутствии подобных функций. В любом случае, - что при использовании ядра по умолчанию, что real time, единственным источником времени системы является устройство «lt » («Elbrus timer»?) с дискретностью 1 мкс. Не то чтобы это слишком грубо, но современным компьютерам вполне по силам обеспечить квантование на уровне 25–50 нс, причём независимо от текущей частоты процессора.


По умолчанию, операционная система запускается вместе с графическим окружением: 12 секунд уходит на загрузку ядра в память и ещё около 23 до появления приглашения ко входу в систему, - всего 80 секунд с момента включения. Как уже говорилось, подобрать аргументы ядра для запуска в однопользовательском режиме у нас не получилось: при указании «S » или «1 » система всё равно доходила до 5‑го уровня, а попытки понизить уровень после этого с помощью команды init приводили к краху системы.

Поскольку в компьютере имеется два видеоадаптера, виртуальные терминалы распределяются между ними по очереди: первый терминал открывается на дискретной карте, второй - на встроенном контроллере, третий - опять на дискретной, и так далее. Графический рабочий стол, находясь на седьмом терминале, таким образом попадает на дискретную видеокарту, быстродействие которой не вызывает вопросов. Очень хотелось проверить, насколько отзывчивым будет рабочий стол, если вывести его через встроенный контроллер, потому что у отечественных платформ с этим бывает туго: например, простая перерисовка экрана силами Модуля графических адаптеров (собственной разработки МЦСТ) может занимать несколько секунд, - не просто медленно, а почти как построчное появление заставки в играх для ZX Spectrum, загружаемых с магнитофонной кассеты. Увы, ни правка Xorg.conf по образу и подобию, ни подбор аргументов ядра, ни смена первичного видеоадаптера в настройках аппаратуры нужного эффекта не дали.

Любопытный нюанс

Тогда как первичный экран на дискретной видеокарте инициализируется в текстовом режиме, тот же экран на встроенном контроллере инициализируется в графическом режиме и показывает 4 эмблемы процессора (как это делают некоторые ядра Linux сразу после своего запуска), но всё равно использует только верхние 25 строк текста.


По умолчанию, ядро запускается с аргументом «hardreset », который инструктирует систему выполнить полный аппаратный сброс при перезапуске компьютера. В мире x86 к этому варианту все привыкли, но альтернативные платформы, где «холодная» инициализация после включения питания занимает несколько минут, могут предлагать быстрый перезапуск операционной системы, - и это действительно работает, в отличие от «лотереи» с kexec у Intel / AMD. Нам не удалось подобрать такой аргумент, который поддерживался бы ядром системы «Эльбрус» и при этом давал нужный результат.

Программное обеспечение

Операционная система «Эльбрус» (ОС Эль, OSL) является штатной для всех компьютеров МЦСТ, хотя на платформе SPARC также может функционировать порт системы МСВС 3.0 . Официальная система идентификации программных продуктов восходит к их децимальным номерам: например, «ОС 316‑10» расшифровывается как «операционная система ТВГИ.00316‑10 с ядром ТВГИ.00315‑03, входящая в состав общего программного обеспечения ТВГИ.00311‑05». С одной стороны, это похоже больше на буквенно-цифровые названия , чем на порядковые номера версий . С другой стороны, тот или иной программный продукт обычно тесно связан с конкретным аппаратным продуктом, и не претерпевает существенных изменений за время своей жизни. Тем не менее, в файле /etc/mcst_version можно увидеть бирку «release 2.2.1», а в псевдофайле /proc/bootdata - «release 2.13.3.0». Однако в интерфейсе пользователя не встречается ни одно из этих обозначений.

$ cat /etc/mcst_version release 2.2.1 $ cat /proc/bootdata boot_ver=" release-2.13.3.0-E2S::::::: (/tags/release-2.13.3.0-E2S at revision 3816) built on Nov 2 2015 at 18:05:58" mb_type="MONOCUB" chipset_type="IOHUB" cpu_type="E2S" cache_lines_damaged=0 $ cat /proc/version Linux version 2.6.33-elbrus.033.6.57 (gavrilova_tg@e2k13) (gcc version 4.4.0 compatible) #1 SMP Sun Oct 11 00:10:58 MSK 2015 $ uname -a Linux MONOCUB-10-XX 2.6.33-elbrus.033.6.57 #1 SMP Sun Oct 11 00:10:58 MSK 2015 e2k E2S MONOCUB GNU/Linux
Ядром системы служит Linux 2.6.33, портированное на архитектуру «Эльбрус-2000» (E2K), а в целом система базируется на дистрибутиве Debian с избирательным подходом к выбору пакетов: по большей части наблюдается соответствие выпуску 7.0 «Wheezy» или более новому, однако версии некоторых пакетов скорее ближе к 5.0 «Lenny». Если верить недавнему отчёту (PDF, 172 Кбайт), проводятся также изыскания по прямому портированию оригинального дистрибутива со всем его многообразием пакетов, однако за основу там выбран всё тот же «Дедушка Ленин». А всё потому, что необходимо обеспечивать обратную совместимость с прикладным и системным программным обеспечением, разрабатываемым под ещё более старые версии библиотек и компиляторов. Но почему бы тогда не выпустить несколько версий системы, - на более старой и на более новой пакетной базе, - чтобы потребитель мог сам выбирать? Наверное, потому что нет достаточного спроса со стороны целевой аудитории, да и проблемы сертификации наверняка играют не последнюю роль.

Единожды установленная система не подлежит регулярному обновлению из официального репозитория фирмы МЦСТ и сразу содержит в себе все имеющиеся пакеты. Вот версии некоторых наиболее значимых (за исключением средств разработки, рассматриваемых в следующей части статьи):

  • офисные инструменты: abiword 2.8.6, evince 2.32.0, geeqie 1.1, gimp 2.6.12, gnumeric 1.10.0, graphviz 2.32.0, mtpaint 3.40, xsane 0.998;
  • средства Интернета: dillo 3.0.3, firefox 3.6.28, links 2.2, linphone 3.5.2, lynx 3.81, thunderbird 3.1.20, sylpheed 2.7.0;
  • криптография: gnutls 3.1.22, openssl 0.9.8zc, openvpn 2.2.2;
  • мультимедиа: ffmpeg 1.0, mplayer 1.1.1;
  • текстовые редакторы: ed 1.7, leafpad 0.8.17, vim 7.3 + gvim 7.3;
  • файловые менеджеры: mc 4.7.0.8, thunar 1.4.0;
  • командные интерпретаторы: bash 4.2.53, pdksh 5.2.14, tcsh 6.18.01, zsh 5.0.2;
  • службы: openssh 6.1p1, httpd 2.4.3, postgresql 9.2.3 + slony1 2.2.0, zeromq 2.1.11;
  • менеджеры пакетов: apt 0.9.7.9, aptitude 0.6.8.2, dpkg 1.16.10, pkgtools 13.1.
Всего в менеджере пакетов насчитывается 679 записей , что в десятки раз меньше исходного пула Debian, однако следует учитывать, что не всё реально установленное программное обеспечение оформлено в виде пакетов: например, система в действительности располагает виртуальной машиной и набором разработчика Java, но менеджер пакетов об этом не в курсе.

Единственным окружением графического рабочего стола является Xfce 4.10. Удивительно, но в отечественной операционной системе вновь создаваемые профили пользователей по умолчанию настроены на английский язык интерфейса, а в меню программ нет ярлыков для настройки переключения раскладки клавиатуры, да и индикатора текущей раскладки тоже нигде не видно. Впрочем, опытные пользователи знают, что отечественные операционные системы на базе Linux обычно стараются копировать «лучшие» традиции Windows: работа из под root и переключение раскладки по Alt+Shift.

Рабочий стол Xfce (примерный вид)

Дополнение от 09.02.2016. В комментариях подсказывают, что функция снятия снимков экрана есть в графическом редакторе GIMP, - замечание справедливое, но для этого надо быть опытным пользователем данной программы; автор же, хоть и выполнил обработку всех иллюстраций для этой статьи именно в GIMP, к таким знатокам не относится. Что же до получения скриншотов с помощью утилит командной строки, - штатно имеющихся или собранных самостоятельно, - то такой способ не рассматривался по причине низкой дружелюбности к рядовому пользователю.

Как уже говорилось, запустить хоть какую-нибудь стороннюю операционную систему, скомпилированную для архитектуры x86 или x86‑64, мы не смогли из‑за отсутствия документации. Попытки напрямую из командной строки «Эльбрус» запустить пользовательское приложение, скомпилированное для Linux x86‑64, тоже успехом не увенчались. Слоя эмуляции WinAPI и средств запуска PE-бинарников в системе нет, а чтобы собрать WinE самостоятельно из исходных текстов, необходимо портировать архитектурно-зависимые участки кода. Эмулятора Qemu тоже нет в штатной поставке, но он более-менее успешно собирается (с параметрами ‑‑enable-tcg-interpreter ‑‑disable-werror ) и вроде даже работает в вариантах i386-softmmu , x86_64-softmmu , sparc-softmmu , sparc64-softmmu ; портирование однако требуется для «прикладных» вариантов *-linux-user . Очевидно, создатели технологии двоичной трансляции «Эльбруса» совсем не это имели в виду, когда говорили об аппаратной эмуляции x86, поэтому смысла тестировать производительность Qemu мы не видели, - и так ясно, что это было бы медленно и печально.

Возвращаясь к теме штатного программного обеспечения, рискнём высказать предположение, что типичный пользователь этой системы вряд ли будет чувствовать себя обделённым, так как ему придётся либо решать задачи в специализированных программах сторонней разработки, либо создавать несложные документы в офисных пакетах, сканировать и печатать, - а для этого мало кому нужны самые свежие версии. Единственным исключением здесь, пожалуй, является веб-браузер: простейший Dillo и текстовые Lynx / Links ни на что не претендуют, а вот Firefox 3.6 - это хоть и не 1.5 из состава МСВС 3.0, но всё равно безнадёжно стар для современных сайтов. Эту версию не поддерживают, например, карты Яндекса и Гугла (в отличие от OSM и Bing), Google Docs; вы увидите только шапку сайтов Intel, почты Mail.ru и Сбербанка. И, конечно, в отсутствие встроенной поддержки HTML Video и плагина Flash вы не сможете посмотреть видеоролики ни на одном сайте, - будь то зарубежный YouTube с отчётом о запуске Doom 3 на «Эльбрус 401‑PC» или идеологически верный Kremlin.ru с выступлениями верховного главнокомандующего. Видимо, это тоже не считается недостатком, так как типовой сценарий применения подобных компьютеров - доступ к внутренним, специально разработанным сайтам в закрытой сети предприятия или ведомства.

Попытки выхода в Интернет (слово «Namoroka» на скриншотах - это не очередной ребрендинг Firefox для Debian, а всего лишь кодовое имя версии 3.6)

Но ведь обновление программного обеспечения служит не только для расширения функциональности, а ещё и устраняет серьёзные ошибки и уязвимости, - как быть с этим? Видимо, идеологи информационной безопасности считают, что раз внешнего доступа в частную сеть нет, а внутренние пользователи, имеющие физический доступ к своим компьютерам, не станут сознательно предпринимать злонамеренных действий или подключать сомнительные носители данных по неосторожности, то беспокоиться не о чем. В крайнем случае, если какой‑то баг вас очень тревожит, и вы хотите поговорить об этом, у МЦСТ есть своя bugzilla с логином и тикетами, - в том смысле, что без выданного вам логина вы туда не попадёте, а тикеты будете видеть только свои собственные, даже если проблема уже обсуждалась тысячу раз с другими клиентами и решение было давно найдено.




Процессор прошёл Государственные испытания в марте 2014 года Тактовая частота 800 МГц 4 ядра L2$ 8 МБ, До 23 операций/такт на ядро 3 канала памяти DDR межпроцессорных канала (16 ГБ/с) 1 канал IO-link (4 ГБ/с) Улучшения в микро архитектуре Количество транзисторов – 968 млн Рассеиваемая мощность – ~45 Вт Технология – 65 нм, 9 слоев металла Площадь кристалла мм 2 Эльбрус-4С


Процессор завершил гос. испытания в 2014 году Тактовая частота 300 МГц, 2 ядра «Эльбрус» L2$ 2 * 1 МБ 2 канала DDR межпроцессорных канала (по 4 ГБ/с) 2 канала IO-link (2 ГБ/с) Количество транзисторов: 300 млн Рассеиваемая мощность: ~20 Вт Технология: 90 нм, 10 слоёв металла Площадь кристалла: 320 мм 2 Производство на фабрике Микрон Эльбрус-2СМ


КПИ Тактовая частота – 250 МГц 2 канала I/O (2 * 1 ГБ/с). Интерфейсы PCI Express 1.0a x8 PCI 2.3 (33/66 МГц, 32/64 бит) Gigabit Ethernet, 4 * SATA 2.0, 2 * USB 2.0 RS 232/485, IEEE1284, Audio, SPI, I2C, GPIO Количество транзисторов – 30 млн Рассеиваемая мощность – 5 Вт Технология – 0.13 мкм, 9 слоев металла Размер кристалла – 10,6 х 10,6 мм




Асинхронная пред подкачка Устройство асинхронной подкачки данных (AAU) Асинхронная программа Кэш 2-го уровня (L2$) Оперативная память Регистровый файл (RF) Основная программа Арифметико-логические устройства (ALU) Буфер предварит. подкачки данных (APB) данные асинхронные данные адреса Вычисляет адреса Подкачивает данные Управляет синхронной подкачкой данных


Пиковая производительность лин.уч. циклы Int (8) / FP (9) / St (2) / Ld (4) Обработка предикатов Передача управления Загрузка литерала 32/64- 4/2 + Асинхронная загрузка в РФ- 4 + Адресная арифметика- 4 + Обработка счетчика цикла Всего:18/16 23




SPEC CPU2000 FP












2015: Эльбрус-8С 1.3 ГГц 8 ядер Эльбрус 250 Гигафлопс L2$ 8*512КБ, L3$ 16 МБ 4 канала памяти DDR межпроц. канала по 16 ГБ/с 1 канал IO-link (16 ГБ/с) 320 мм 2, 2,7 млрд транзисторов 28 нм, энергопотребление ~60 Вт Получены первые инженерные образцы


2015: КПИ-2 1 канал IO-link (16 ГБ/с) PCI Express 2.0 x20 3 * Gigabit Ethernet 8 * SATA * USB * GPIO... Технология 65 нм Энергопотребление 12 Вт Получены первые инженерные образцы


Сервер на базе четырёх процессоров Эльбрус-8С 4 процессора Эльбрус-8С Южный мост КПИ-2 Оперативная память до 256 Гбайт на сервер Интерфейсы: SATA 3.0 – 8 каналов, Gigabit Ethernet – 3 канала, PCI Express 2.0 x20, PCI, интерконнект Высота корпуса 1U Мощность сервера – 1 Терафлопс 40 Тфлопс в стойке Сервер Эльбрус-8С Макетный образец четырёхпроцессорного сервера


Gflops SP TSMC Микрон Эльбрус-4С 65 нм, 4 я 50GF Эльбрус-8С 28 нм, 8 я 250GF Эльбрус-16С 16 нм, 8…16 я 0,5 … 1TF Эльбрус-32С 10 нм, 32 я 4TF Эльбрус-4СМ 65 нм, 4 я 50GF Эльбрус-8СМ 32 нм, 8 я 250GF Дорожная карта Эльбрус-2СМ 90 нм, 2 я 10GF Эльбрус-1С+ 40 нм, 1 я + GPU 24GF Индексом «М» (зелёным цветом) отмечены модели, планируемые к выпуску на отечественной фабрике Микрон (Зеленоград)






«Защищённый режим»: контроль ошибок во время исполнения Аппаратно контролируются ошибки программы в работе с памятью и гарантируется целостность указателей Обращение за границы объекта (массива) Обращение по указателю на уже освобождённую память объекта, закончившего жизненный цикл Чтение неинициализированных данных Обращение по неадресным данным как по указателю Результат: Рост производительности труда программиста – на порядок Возможность создавать надёжные программы, устойчивые к кибернетическим атакам Замедление скорости работы программ – около 20%


Защищённый режим Эльбруса. Структура дескриптора 32 bit40 bit32 bit24 bit8 bit Текущее положение База ГраницаВремя жизни + служебные биты Теги 128 bit 32 bit2 bit Данные или часть дескриптора Теги Дескриптор: Значения тегов: 00 - Неинициализированное 10 – Данные, 01 и 11 - Часть дескриптора Структура машинного слова в памяти:




«Защищённый режим»: контроль ошибок во время исполнения Исполнение программ на обычном компьютере – как езда по шоссе с разметкой. Пока все программы действуют без ошибок «по правилам», всё хорошо работает… … но если нарушить правила, под угрозой будет безопасность всей вычислительной машины Защищённый режим – как разделитель: даёт «железные» гарантии, что все корректно работающие программы будут в безопасности


ОС Эльбрус Используется структура пакетов Debian Отпортировано более 3000 базовых пакетов из набора Debian 5.0 (Lenny) и многие другие, в том числе: LibreOffice 3.6 Firefox PostgreSQL 9.2 Qt 5.0 Основана на ядре Linux Встроена поддержка режима реального времени Двоичный транслятор приложений: слой кросс-архитектурной виртуализации x86 Elbrus, совместимый с эмулятором WINE Средства разработки – компиляторы С/С++/Fortran, Java-машина (OpenJDK 6)

Швед из Финляндии.

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

Я уже вроде как ответил. Повторю еще раз: я имею в своем круге общения людей, которые занимаются системами защиты как в оборонке, так и в банковской среде. Мне все в один голос ответили, что сила атакующего систему всегда превосходит кратно силы защиты. У моего круга общения опыт от 5 лет до 40.

По поводу быстрого штудирования я приведу один из примеров реальных:

«В ядре операционной системы Linux был устранен баг, существовавший в течение девяти лет. Разработчики не обращали внимания на уязвимость, так как считали, что у нее нет никакого практического применения. Однако оказалось, что с ее помощью пользователь может получить root-права и поставить под угрозу безопасность всей системы. Об этом сообщает портал Github.

По словам разработчика Linux Линуса Торвальдса, уязвимость Dirty COW была обнаружена им около одиннадцати лет назад. Торвальдс устранил ее, однако в 2007 году ядро системы Linux было обновлено другим разработчиком и баг вернулся."

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

Какой фонд? Linux Foundation.

Вы меня не знаете, поэтому ваше мнение обо мне не имеет значения.

За кем финальное решение после внесения изменений и высылки в репозитории, кто направляет дальнейшее развитие и продвижение Linux ? Да-да, за создателем и ключевыми фигурами.

Я промолчу про возможность создать корпоративный сговор, которые уже не раз были в истории. Наказание корпорации получали, но оно было всегда меньше той прибыли, которую они получили благодаря картельному сговору. Опять де всегда есть время до их обнаружения. Изучая биографию и поведение самого Линуса, можно понять, что он незаурядная и умная личность. Даже шутки у него нестандартные, но в каждой шутке есть доля шутки.

Последняя попытка обьяснить вам современную свободу. За свободой всегда кто-то следит и контролирует ее выполнение. Вот от этого кого-то и зависит реальность.

Вот в ООН имеет право любая страна выражать свои послания. Это свобода. Но здание ООН находится в штатах, а власть может запретить вьезжать в страну определенным нежелательным лицам по разным причинам. То есть свобода есть, но она ограничена и контролируема. Также вы сами видите, как на одну проблему могут смотреть по- разному и в упор ее не признавать частью лиц, в итоге лишая вас прав. Понимаете смысл? Может на примере религии обьясню. У христианства есть более древний прародитель, который заложил основы в виде догм, которые находят свое отражение почти в любой ветви христианства. Эти ветви — это как сборки Линукс под каждый социум, но основа там общая. А контролирует эту основу в рамках отдельной структуры ее закладчики. Есть другие течения религий с тоже не менее древней историей со своими ветвями.

Я понимаю, о чем вы мне пишете. Проблема в том, что вы не понимаете, о чем пишу я, называя это «бредом». Но это уже не моя проблема.

Работы над архитектурой «Эльбрус» начались в 1986 г. в коллективе Института точной механики и вычислительной техники (ИТМ и ВТ) им. С.А. Лебедева, в котором до этого были созданы советские высокопроизводительные комплексы «Эльбрус-1» и «Эльбрус-2». Разработка вычислительного комплекса «Эльбрус-3», которая велась под руководством Б.А. Бабаяна, была завершена в 1991 г. В этом вычислительном комплексе впервые были воплощены в жизнь идеи явного управления параллелизмом операций с помощью компилятора.

Начавшиеся с 1992 г. экономические изменения в России не позволили разработчикам «Эльбруса-3» завершить наладку комплекса. В том же 1992 г. коллектив разработчиков машин семейства «Эльбрус» выделился в компанию ЗАО «МЦСТ» и начал вести работы над микропроцессорной реализацией архитектуры «Эльбрус».

Архитектура «Эльбрус» - оригинальная российская разработка. Ключевые черты архитектуры «Эльбрус» - энергоэффективность и высокая производительность, достигаемые при помощи задания явного параллелизма операций.

Ключевые особенности архитектуры Эльбрус

В традиционных архитектурах типа RISC или CISC (х86, PowerPC, SPARC, MIPS, ARM), на вход процессора поступает поток инструкций, которые рассчитаны на последовательное исполнение. Процессор может детектировать независимые операции и запускать их параллельно (суперскалярность) и даже менять их порядок (внеочередное исполнение). Однако динамический анализ зависимостей и поддержка внеочередного исполнения имеет свои ограничения: лучшие современные процессоры способны анализировать и запускать до 4-х команд за такт. Кроме того, соответствующие блоки внутри процессора потребляют заметное количество энергии.

В архитектуре «Эльбрус» основную работу по анализу зависимостей и оптимизации порядка операций берет на себя компилятор. Процессору на вход поступают т.н. «широкие команды», в каждой из которых закодированы инструкции для всех исполнительных устройств процессора, которые должны быть запущены на данном такте. От процессора не требуется анализировать зависимости между операндами или переставлять операции между широкими командами: все это делает компилятор, исходя из анализа исходного кода и планирования ресурсов процессора. В результате аппаратура процессора может быть проще и экономичнее.

Компилятор способен анализировать исходный код гораздо тщательнее, чем аппаратура RISC/CISC процессора, и находить больше независимых операций. Поэтому в архитектуре Эльбрус больше параллельно работающих исполнительных устройств, чем в традиционных архитектурах, и на многих алгоритмах она демонстрирует непревзойденную архитектурную скорость.

Возможности архитектуры Эльбрус:

  • 6 каналов арифметико-логических устройств (АЛУ), работающих параллельно.
  • Регистровый файл из 256 84-разрядных регистров.
  • Аппаратная поддержка циклов, в том числе с конвейеризацией. Повышает эффективность использования ресурсов процессора.
  • Программируемое асинхронное устройство предварительной подкачки данных с отдельными каналами считывания. Позволяет скрыть задержки от доступа к памяти и полнее использовать АЛУ.
  • Поддержка спекулятивных вычислений и однобитовых предикатов. Позволяет уменьшить число переходов и параллельно исполнять несколько ветвей программы.
  • Широкая команда, способная при максимальном заполнении задать в одном такте до 23 операций (более 33 операций при упаковке операндов в векторные команды).

Производительность на реальных задачах:

Ниже приведена производительность процессора Эльбрус-2С+ на задачах из пакета SPEC2000 по сравнению с процессорами Intel Pentium-M ULV (1ГГц, кэш-память 1М, 2хDDR-266) и Intel Atom D510 (1,66 ГГц, кэш-память 1М, DDR2-800).

Данные для Intel Pentium-M ULV получены с сайта spec.org, компилятор ICC 9.1. Для замера производительности процессора Intel Atom D510 использовалась собственная сборка тестов SPEC силами сотрудников МЦСТ.

Важно отметить, что правила комитета SPEC запрещают осуществлять модификацию исходных кодов тестов. Практика показала, что архитектура Эльбрус обладает значительным резервом производительности, который можно задействовать путём модификаций исходного кода в критических участках.

Эмуляция архитектуры х86

Еще на этапе проектирования МП Эльбрус у разработчиков было понимание важности поддержки программного обеспечения, написанного для архитектуры Intel х86. Для этого была реализована система динамической (т.е. в процессе исполнения программы, или «на лету») трансляции двоичных кодов х86 в коды процессора Эльбрус. Фактически, система двоичной трансляции создает виртуальную машину, в которой работает гостевая ОС для архитектуры х86. Благодаря нескольким уровням оптимизации удается достичь высокой скорости работы оттранслированного кода (см. диаграммы выше). Качество эмуляции архитектуры х86 подтверждается успешным запуском на платформе Эльбрус более 20 операционных систем (в том числе несколько версий Windows) и сотен приложений.

Защищенный режим исполнения программ

Одна из самых интересных идей, унаследованных от архитектур Эльбрус-1 и Эльбрус-2 - это так называемое защищенное исполнение программ. Его суть заключается в том, чтобы гарантировать работу программы только с инициализированными данными, проверять все обращения в память на принадлежность к допустимому диапазону адресов, обеспечивать межмодульную защиту (например, защищать вызывающую программу от ошибки в библиотеке). Все эти проверки осуществляются аппаратно. Для защищенного режима имеется полноценный компилятор С/С++ и библиотека run-time поддержки.

Даже в обычном, «незащищенном» режиме работы МП Эльбрус имеются особенности, повышающие надежность системы. Так, стек связующей информации (цепочка адресов возврата при процедурных вызовах) отделен от стека пользовательских данных и недоступен для таких вирусных атак, как подмена адреса возврата. Стоит отдельно отметить, что в настоящее время вирусов для платформы «Эльбрус» просто не существует.

Сфера применения микропроцессоров архитектуры Эльбрус
Расширенный температурный диапазон, возможность локализации производства Государственный заказ, промышленные компьютеры, автомобильная электроника

Повышенная защищенность от вирусных атак

Платежные терминалы, сетевые экраны, взломоустойчивые серверы
Высокая производительность на криптографических алгоритмах Модули шифрования, защищенные тонкие клиенты, прочие системы безопасности
Высокая производительность на вычислениях с действительными числами (float, double) Робототехника, авионика, промышленные контроллеры, системы обработки изображений, суперкомпьютеры
Работа под управлением бинарного компилятора в режиме совместимости с архитектурой х86 Интернет-терминалы, маломощные рабочие станции, малогабаритные настольные и встраиваемые компьютеры
Защищенный режим Особо ответственные системы, отладочные стенды

Любое упоминание зарегистрированных торговых марок производится только для целей идентификации. Вышеупомянутые зарегистрированные торговые марки являются собственностью соответствующих частных владельцев и корпораций.