Как стать автором
Обновить
@NTHubread⁠-⁠only

Пользователь

Отправить сообщение

Бэкдоры в микрокоде ассемблерных инструкций процессоров x86

Время на прочтение6 мин
Количество просмотров69K

Софту мы не доверяем уже давно, и поэтому осуществляем его аудит, проводим обратную инженерию, прогоняем в пошаговом режиме, запускаем в песочнице. Что же насчёт процессора, на котором выполняется наш софт? – Мы слепо и беззаветно доверяем этому маленькому кусочку кремния. Однако современное железо имеет те же самые проблемы, что и софт: секретную недокументированную функциональность, ошибки, уязвимости, малварь, трояны, руткиты, бэкдоры.



ISA (Instruction Set Architecture) x86 – одна из самых долгих непрерывно изменяющихся «архитектур набора команд» в истории. Начиная с дизайна 8086, разработанного в 1976 году, ISA претерпевает постоянные изменения и обновления; сохраняя при этом обратную совместимость и поддержку исходной спецификации. За 40 лет своего взросления, архитектура ISA обросла и продолжает обрастать множеством новых режимов и наборов инструкций, каждый из которых добавляет к предшествующему дизайну, и без того перегруженному, новый слой. Из-за политики полной обратной совместимости, в современных процессорах x86 присутствуют даже те инструкции и режимы, которые на сегодняшний день уже преданы полному забвению. В результате мы имеем архитектуру процессора, которая представляет собой сложно переплетающийся лабиринт новых и антикварных технологий. Такая чрезвычайно сложная среда – порождает множество проблем с кибербезопасностью процессора. Поэтому процессоры x86 не могут претендовать на роль доверенного корня критической киберинфраструктуры.

Читать дальше →

systemd десять лет спустя. Историческая и техническая ретроспектива

Время на прочтение18 мин
Количество просмотров51K
Десять лет назад был анонсирован systemd, который устроил революцию в управлении системой дистрибутивов Linux, тем самым разделив пользователей Linux на несколько лагерей. Качество и природа дебатов не сильно улучшилась со времён пламенных войн 2012-2014 годов, и systemd всё ещё остаётся не до конца понятым и изученным инструментом и с технической, и с общественной стороны, несмотря на пристальное внимание к нему сообщества.

Это пост не совсем о том, как пользоваться systemd. Тут, скорее, будет говориться об истории его возникновения, о его компонентах в целом, и о том, как понять систему, которая начиналось как просто PID 1 и стала тем, что я бы назвал middleware современного дистрибутива Linux.

А может, это просто набор крайне вольных переводов различных материалов с блогов, каналов и статей на Arch wiki. Вам решать.

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

Но прежде чем начать речь о systemd, хочу рассказать об init.
Читать дальше →

Пишем операционную систему. Часть 1. Загрузчик

Время на прочтение3 мин
Количество просмотров46K
Всем привет! Сегодня мы напишем загрузчик, который будет выводить «Hello World» и запустим его на VirtualBox. Писать будем на ассемблере FASM. Скачать его можно отсюда. Также нам понадобится собственно VirtualBox и UltraISO. Перед тем как писать код, разберемся как загружаются операционные системы.

Итак, когда мы нажимаем большую кнопку включения на нашем компьютере запускается система, которая есть на любом компьютере — BIOS (Basic Input/Output System или базовая система ввода/вывода). Задача BIOS это:

Читать дальше →

Операционная система на Rust. Страничная память: продвинутый уровень

Время на прочтение21 мин
Количество просмотров9K
В этой статье объясняется, как ядру операционной системы получить доступ к фреймам физической памяти. Изучим функцию для преобразования виртуальных адресов в физические. Также разберёмся, как создавать новые сопоставления в таблицах страниц.

Этот блог выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий тикет. Все исходники для статьи здесь.

Введение


Из прошлой статьи мы узнали о принципах страничной организации памяти и о том, как работают четырёхуровневые страничные таблицы на x86_64. Мы также обнаружили, что загрузчик уже настроил иерархию таблиц страниц для нашего ядра, поэтому ядро работает на виртуальных адресах. Это повышает безопасность, но возникает проблема: как получить доступ к настоящим физическим адресам, которые хранятся в записях таблицы страниц или регистре CR3?
Читать дальше →

Сравнение Эльбрус-4С и Эльбрус-8С в нескольких задачах машинного зрения

Время на прочтение9 мин
Количество просмотров46K

В этой статье мы покажем, как работают технологии распознавания образов на Эльбрус-4С и на новом Эльбрус-8С: рассмотрим несколько задач машинного зрения, немного расскажем об алгоритмах их решения, приведем результаты бенчмаркинга и наконец покажем видео.



Эльбрус-8С — новый 8-ядерный процессор МЦСТ с VLIW-архитектурой. Мы тестировали инженерный образец с частотой 1.3 ГГц. Возможно, в серийном выпуске она еще возрастет.

Читать дальше →

8-битные сети на Эльбрусе, есть ли смысл?

Время на прочтение10 мин
Количество просмотров5.5K

Привет, Хабр! Мы вдруг поняли, что наша последняя статья про Эльбрус вышла год назад. Поэтому мы решили исправить эту досадную оплошность, ведь мы не бросили эту тему!


Сложно представить распознавание без нейронных сетей, поэтому мы расскажем о том, как мы запустили 8-битные сетки на Эльбрусе и что из этого получилось. Вообще, модель с 8-битными коэффициентами и входами и 32-битными промежуточными вычислениями крайне популярна. Например, Google [1] и Facebook [2] завели ее собственные реализации, которые оптимизируют доступ в память, задействуют SIMD и позволяют ускорить вычисления на 25% и больше без заметного снижения точности (это конечно зависит от архитектуры нейронной сети и вычислителя, но нужно же было объяснить, насколько это круто?).


Читать дальше →

Не долго музыка играла… или как ОС Эльбрус так и не стала свободной

Время на прочтение7 мин
Количество просмотров114K
Несколько дней назад некоторые СМИ сообщили о возможности свободного скачивания операционной системы Эльбрус. Ссылки на дистрибутив предоставлялся только для x86 архитектур, но даже в таком виде, это могло бы стать очень важной вехой в развитии данной операционной системы.

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

Да, это действительно могло бы стать очень важной вехой в развитии ОС Эльбрус. Могло стать, но к сожалению, пока не стало (надеюсь, что ключевым словом будет слово пока)

image
Читать дальше →

Восхождение на Эльбрус — Разведка боем. Техническая Часть 1. Регистры, стеки и другие технические детали

Время на прочтение15 мин
Количество просмотров13K
Как и обещали, продолжаем рассказывать про освоение процессоров Эльбрус. Данная статья является технической. Информация, приведенная в статье, не является официальной документацией, ведь получена она при исследовании Эльбруса во многом как черного ящика. Но будет безусловно интересна для лучшего понимания архитектуры Эльбруса, ведь хотя у нас и была официальная документация, многие детали стали понятны только после длительных экспериментов, когда Embox все-таки заработал.

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

Запуск на Эльбрусе платформы для нейросетей PuzzleLib

Время на прочтение6 мин
Количество просмотров15K

ИИ на отечественном железе


Рассказываем о том, как мы портировали свой фреймворк для нейронных сетей и систему распознавания лиц на российские процессоры Эльбрус.

image

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

Как делается российское железо для СХД Аэродиск Восток на Эльбрусах

Время на прочтение9 мин
Количество просмотров26K


Всем привет. Как мы и обещали, погружаем читателей Хабра в детали производства российских аппаратных платформ для СХД Аэродиск Восток на процессорах Эльбрус. В этой статье мы пошагово опишем производство платформы Яхонт-УВМ Э124, которая в 5 юнитах эффективно вмещает 124 диска, может работать при температуре +30 градусов по Цельсию и при этом не просто работает, а хорошо работает.


Также 05.06.2020 мы организовывали вебинар, где подробно рассказали о технических нюансах производства СХД Восток и заодно ответили вопросы. Запись можно посмотреть по ссылкам ниже:


Промо-версия (краткое содержание за 5 минут)



Полная версия


Программист с помойки

Время на прочтение28 мин
Количество просмотров87K


Когда-то моя пятая точка была в тепле, я поедал разные офисные ништяки и топил за чистую архитектуру и тесты, активно изучал Kotlin, представлял себе жизнь как нескончаемый подъем вверх, словно есть что-то выше Джомолунгмы. Однако, у вселенной оказались свои планы, и жизнь со всего размаха нанесла мне множество ударов: здоровье полетело в бездонную пропасть, все ниже и ниже, и каждый раз казалось, что я уже на дне, но падение не прекращалось. Удары не сломали, но выбросили на помойку, превратив в больной и немощный мешок, а главным призом за все эти годы нескончаемых напряжений и дедлайнов стало попадание в лигу отбросов общества. Tакова награда великих патриотов! Да-да, именно на помойку, склад ненужных и больных людей, чаще всего молодых, но не потерявших надежду выздороветь и найти решение своей проблемы. Как оказалось, надежда часто является лишь последней станцией перед отправкой в мир иной. Не мог подумать, что удары судьбы могут быть настолько молниеносными, и точно не подозревал, что существует другой огромный мир больных и отчаявшихся, и их количество растет экспоненциально, а прежний мир лишь счастливая виртуальная реальность, вывеска, обман, которого вовсе и не существовало?

Решение рассказать свою историю и пройти процедуру “каминг-аута” является определенным долгом перед Богом, людьми, которых уже нет, и теми, кто ещё пытается тянуть свою лямку. Я многому научился, читая дневники больных и ушедших, благодаря этому не сделал много ошибок, и смог нащупать путь, не превратившись в героя картины Климта “Жизнь и Смерть”.
Читать дальше →

Bash-скрипты, часть 3: параметры и ключи командной строки

Время на прочтение10 мин
Количество просмотров588K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Освоив предыдущие части этой серии материалов, вы узнали о том, что такое bash-скрипты, как их писать, как управлять потоком выполнения программы, как работать с файлами. Сегодня мы поговорим о том, как добавить скриптам интерактивности, оснастив их возможностями по получению данных от пользователя и по обработке этих данных.

image
Читать дальше →

Генная инженерия от A до Z часть 2

Время на прочтение6 мин
Количество просмотров25K
Итак, настало время продолжения статьи о том, как все же сделать светящуюся елку к следующему новому году с применением настоящей генной инженерии, а не той, о которой вы до этого могли прочитать в новостях :)

Краткое содержание предыдущей серии:

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


У нас есть ген. Чего же мы ждем, спросят читатели, давайте засунем этот ген в елку и она начнет светиться?

Не все так просто, и вот, почему.
Читать дальше →

Нейрофизиология осознанности: как медитация влияет на наш мозг

Время на прочтение10 мин
Количество просмотров48K
image
Фотография Джесси Оррико с Ансплэша

Это перевод статьи Брайана Пенни, в прошлом героинового наркомана, который справился с зависимостью и стал нейробиологом, практикующим осознанность.

Статья бережно перенесена из блога бегущего редактора. Кстати, следить за анонсами новых статей можно в моём телеграм-канале. Подписывайтесь, чтобы ничего не пропустить!
Читать дальше →

Как не править Python тесты

Время на прочтение4 мин
Количество просмотров4.4K

И вынести тестируемые результаты вне кода. Это статья об автоматизации и увеличения удобства тестирования на Python.


image


Вводная


У меня был проект, который разрабатывался уже несколько лет. В проекте отсутствовали тесты. А также у него были активные зависимости от других команд, которые также влияли на результат.


Регрессионное тестирование было одним из шагов для более уверенной разработки. Его суть в сравнении вычисленных данных с последним канонизированным результатом работы программы. 


Результаты выполнения можно проверять в python коде тестов. Это близко к контексту выполнения и зачастую удобно.


Но это также может быть неудобно когда:

Читать дальше →

Основные linux-команды для новичка

Время на прочтение14 мин
Количество просмотров1M
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Читать дальше →

Ack лучше grep

Время на прочтение3 мин
Количество просмотров15K

Хочу рассказать об одной утилите для поиска, которая очень сильно упрощает жизнь. Когда я попадаю на сервер и мне надо что-то поискать я первым делом проверяю установлен ли ack. Эта утилита является прекрасной заменой grep, а также в какой-то мере find и wc. Почему не grep? Ack имеет более приятные настройки из коробки, более человеко-читаемые опции, perl регулярки и систему конфигов. Если вы любите(приходится) искать через терминал, то вам однозначно стоит ее попробовать.

Читать дальше →

Интересные приёмы и хитрости SSH

Время на прочтение6 мин
Количество просмотров8K
Несколько советов об эффективном использовании SSH. Поговорим о том, как:

  • использовать двухфакторную аутентификацию для SSH подключений;
  • безопасно использовать «проброс ключа» (agent forwarding);
  • выйти из зависшей SSH сессии;
  • оставить терминал открытым при выходе или разрыве связи;
  • расшарить удаленный терминал с другом (без Zoom’а!).

image
Читать дальше →

Используем GPG для шифрования сообщений и файлов

Время на прочтение9 мин
Количество просмотров193K

Кратко о том, как создавать ключи, шифровать и подписывать файлы и отправлять ключи на сервер ключей.



GPG (также известный как GnuPG) создавался как свободная альтернатива несвободному PGP. GPG используется для шифрования информации и предоставляет различные алгоритмы (RSA, DSA, AES и др.) для решения этой задачи.

Читать дальше →

Новый аналог Punto Switcher для linux: xswitcher

Время на прочтение3 мин
Количество просмотров64K
Прекращение поддержки xneur вызвало у меня определённые страдания в последние полгода (с появлением OpenSUSE 15.1 на моих десктопах: при включённом xneur окна теряют фокус и забавно мерцают в такт ввода с клавиатуры).

«А, блин, опять не в той раскладке начал набирать» — в моей работе встречается до неприличия часто. И позитива не добавляет.

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность