Search
Write a publication
Pull to refresh
54
0.1

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

Send message

Влияние задержки и длины выводов микросхемы и ПО на расчет общей длины/задержки проводников

Reading time4 min
Views6.4K

Система настройки и ввода ограничений (Constraint manager) в PADS Professional/Xpedition предоставляет пользователям полный контроль над всеми параметрами, которые влияют на целостность высокоскоростных сигналов. Сегодня мы разберем как можно включить в расчет общей длины проводника влияние длины и задержки (Pin Package Length and Delays) выводов микросхемы, а также влияние фактора переходных отверстий (ПО).

Все самое интересное под катом.


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

Linux API. Управление буферизацией файлового ввода-вывода, осуществляемой в ядре

Reading time15 min
Views13K
image Привет, Хаброжители! Мы уже писали о книге Майкла Керриска «Linux API. Исчерпывающее руководство». Сейчас решили опубликовать отрывок из книги «Управление буферизацией файлового ввода-вывода, осуществляемой в ядре»

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

Перед тем как рассматривать системные вызовы, используемые для управления буферизацией в ядре, будет нелишним рассмотреть несколько относящихся к этому вопросу определений из SUSv3.
Читать дальше →

Интернет вещей по-русски. Спектральные параметры радио-сигнала

Reading time4 min
Views14K
image

Полгода назад один заказчик заинтересовал меня передачей данных по радио для интернета вещей в нашей отечественной версии — NB-FI. Очевидно, что идеологически это система низкоскоростной передачи данных (Ultra-Narrow Band, UNB) SigFox. В деталях есть отличия, которые несомненно можно назвать улучшениями. Например, в NB-FI введено помехоустойчивое кодирование, которое позволяет значительно повысить вероятность доставки сообщения. Более узкая полоса частот также положительно сказывается на сложности оборудования базовой станции. Все это подробно описано в черновике стандарта, который готовится к принятию в РФ в этом, 2019 году. Но в проекте стандарта есть один, как мне кажется существенный, пробел.
Читать дальше →

Unreal Engine4 — PostProcess эффект сканирования

Reading time5 min
Views9.2K


В эти выходные у меня появилось немного свободного времени между занятиями (прим. автор на момент статьи получал степень магистра наук), и я решил вернуться к созданию шейдеров, придумав этот postprocess эффект сканирования. Я представил, что он используется в игре как своего рода эффект сканирования на расстоянии. Также мы используем некоторые простые искажения шума, чтобы эффект выглядел немного интереснее.

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

Древности: Минидиск в естественной среде обитания

Reading time19 min
Views54K
В отличие от кассет, которые были абсолютно у всех, и компакт-дисков, минидиски так и не стали общепринятым, универсальным, повсеместно распространенным форматом. Можно найти массу причин, почему так вышло, начиная с технических сложностей в начале девяностых и заканчивая политикой и вопросами защиты копирайта. Но главная причина: дорого было. За всю историю существования этого аудиоформата я никогда даже не рассматривал его всерьез, выбирая сначала кассеты, потом компакт-диски. В середине двухтысячных деньги появились, но пропал смысл, минидиск невероятно быстро потерял всякую актуальность как цифровой носитель, проиграв плеерам и смартфонам без движущихся частей.



Но ведь всегда хотелось. Эти маленькие диски в разноцветных пластиковых корпусах, эстетика CD и дискет в одном флаконе, невероятно крутые и многофункциональные компактные пишущие плееры. Это был формат будущего, которое так и не наступило. Минидиск — это комбинация сложных технологий, которые, увы, появились слишком поздно, чтобы сделать формат по-настоящему популярным. Минидиск — это еще и история про настойчивость одной японской компании, продолжавшей развивать экосистему несмотря ни на что в течение двух десятилетий. А теперь это отрада коллекционера: устройства и сами диски пока еще вполне доступны, но уже имеют достаточный градус винтажности. В общем, надо брать: за последний месяц я стал обладателем двух минидисковых дек, семи портативных устройств, и теперь знаю про минидиски почти всё. Крутой ли это формат? Безусловно. Был ли в нем какой-то практический смысл? На этот вопрос ответить сложнее, но давайте попробуем.

Как взломали защиту от копирования консоли Sega Dreamcast

Reading time5 min
Views21K

После выпуска книги DOOM Black Book я отправился в отпуск в Японию, где мне удалось поиграть в Ikaruga на настоящем аркадном автомате в игровом зале Taito HEY токийского квартала Акихабара. Этот опыт снова возродил во мне интерес к последней видеоигровой консоли SEGA — Dreamcast.

В сети можно найти множество документов, сильно облегчающих процесс изучения вопроса. Есть два превосходных ресурса, способных быстро ввести в курс дела любого: замечательный веб-сайт Маркуса Комштедта, на котором описывается всё, вплоть до регистров GPU, и ресурс пользователя Jockel «Давайте создадим игру для Sega Dreamcast с нуля».

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

Модульный Sci-Fi уровень на UE4: вдохновляемся Ностромо и Серенити

Reading time9 min
Views14K
Баланс и реиграбельность, пожалуй, одни из главных моментов для PvP-шутера. Визуал тоже важен и для всего этого у нас есть целый пайплайн левел-дизайнера. Другое дело — жанры, где атмосфера окружения стоит на первом месте, а над уровнем работает один человек вместо целой команды. И воркфлоу такого «человека-оркестра» мне оказался очень интересен. Недавно наткнулся как раз на статью, где автор выполняет как раз такую роль и создает Sci-Fi локацию.

Под катом большой перевод всего процесса — от модульных ассетов и материалов на основе фотографий до освещение и характера сцены. И как тизер — вот что получилось в итоге:

Прогнозирование физики на стороне клиента в Unity

Reading time12 min
Views11K
image

TL;DR


Я создал демо, показывающее, как реализовать прогнозирование на стороне клиента физического движения игрока в Unity — GitHub.

Введение


В начале 2012 года я написал пост о как-бы-реализации прогнозирования на стороне клиента физического движения игрока в Unity. Благодаря Physics.Simulate() тот неуклюжий обходной способ, который я описал, больше не нужен. Старый пост до сих пор является одним из самых популярных в моём блоге, но для современного Unity эта информация уже неверна. Поэтому я выпускаю версию 2018 года.

Что-что на стороне клиента?


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

Изучаем азотные лазеры — часть 1. Лазеры поперечного разряда

Reading time7 min
Views23K
Наверное, каждый увлекающийся околоэлектронными самоделками задавался вопросом, возможно ли сделать лазер самостоятельно, дома. И наверняка, очень часто натыкался на довольно предсказуемый ответ от старших, что это очень сложно или практически невозможно, дескать, лазерное излучение можно получить только из специальных дорогостоящих кристаллов и стекол, или каких-то ещё неведомых материалов, которые можно достать только в Тёмных Топях или на Заокраинном Западе. На самом деле это не так. Число веществ, в которых возможен лазерный процесс, исчисляются тысячами, и некоторые из них находятся буквально под ногами, и в прямом смысле вокруг нас, повсюду. Так, например, можно с удивлением узнать, что возможно получить лазерную генерацию в водяных парах, в красителях, добытых из фломастеров, в конце концов, в углекислом газе, выдыхаемом многими живыми существами, была получена лазерная генерация мощностью в сотни киловатт. Но, есть ещё одна рабочая среда лазера, которая распространена гораздо больше, чем все остальные вместе взятые. Это азот, которого 78% в атмосферном воздухе.

image

В чём уникальность BeOS и HaikuOS

Reading time9 min
Views23K
Первое, на что следует обратить внимание в бета-версии Haiku — это работа с пакетами.

Когда мы говорим просто «пакеты», то подразумеваем только запуск пакетного менеджера на GNU/Linux, и т.д., но Haiku умеет гораздо больше.

Как я уже упоминал в обзоре Haiku Beta, это первый официальный релиз функции управления пакетами. Если сформулировать вкратце, то представьте PackageFS как нечто похожее (но не такое же) на старую систему модулей Slax 6, но со всеми обычными инструментами для «пакетов».

Систему управления пакетами можно описать в пяти кратких пунктах:

  • универсальные инструменты командной строки (как и следовало ожидать);
  • HaikuDepot;
  • средство обновления программ;
  • мониторинг состояния пакетов и/или системы;
  • PackageFS (где все пакеты плавно монтируются и подключаются при загрузке), с побочным эффектом — аккуратным слоем безопасности.
Читать дальше →

Мой переезд и работа в Австралии

Reading time16 min
Views103K
image

Много было постов про переезд, поросенок Петр не знает покоя в России, решил рассказать про свой опыт переезда и работы в Австралии, может это кому-то будет интересно. Мне тут очень нравится, надеюсь это поможет кому-то найти приятную страну, чтобы осесть, или просто получить клевый опыт работы. Так же думаю, рабочий процесс в моей компании может сподвигнуть кого-то на эксперименты в процессе разработки.

Прошу прощения, что получилось так много и не очень структурировано.
И да, все сказанное ниже является только моим собственным мнением и не является официальным взглядом таких компаний, как SEEK и Jora, это меня мое начальство попросило тут написать.
Читать дальше →

Доступ к сетям сигнализации SS7 через радиоподсистему – теперь это возможно

Reading time4 min
Views19K


Изображение: Pexels

О безопасности сигнальных сетей SS7 мы (и не только мы) говорим достаточно давно, однако до сих пор есть много скептицизма: «никто не может получить доступ к SS7», «если даже кто-то получит доступ к SS7 и начнет вести нелегитимную активность, его сразу заблокируют в операторе-источнике» и даже «GSMA за всеми следит и, если что, даст по башке тому, кто этим занимается».

Однако на практике в проектах по мониторингу безопасности мы видим, что злоумышленники могут иметь подключение к сети SS7 в недрах одного оператора годами. Более того, злоумышленники не дожидаются, когда их подключение обнаружат и заблокируют в одном операторе-источнике, они параллельно ищут (и находят) подключения в других операторах, и могут работать параллельно по одним целям сразу из нескольких мест.
Читать дальше →

MEMS-акселерометры и гироскопы — разбираемся в спецификации

Reading time12 min
Views78K
“Хьюстон, у нас проблемы”, — устало раздалось в мозгу, пытающемся в ночи продраться сквозь Datasheet IMU MPU-9250 от InvenSense. Когда все слова в отдельности понятны, но взаимосвязь их запутана до невозможности. Началось всё с параметра LSB, про который я только смутно помнила, что в переводе это Least Significant Bit. Дальше пошли “Resolution”, “Sensitivity”, а ещё дальше я поняла, что получающийся текст уже можно озаглавить “Datasheet для чайников”.
Читать дальше →

Загрузка ядра Linux. Часть 1

Reading time12 min
Views63K
От загрузчика к ядру

Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

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

Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
Читать дальше →

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

Reading time6 min
Views69K

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



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

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

Learn OpenGL. Урок 6.1. PBR или Физически-корректный рендеринг. Теория

Reading time21 min
Views36K
OGL3

Физически-корректный рендеринг


PBR, или физически-корректный рендеринг (physically-based rendering) это набор техник визуализации, в основе которых лежит теория, довольно хорошо согласующаяся с реальной теорией распространения света. Поскольку целью PBR является физически достоверная имитация света, он выглядит гораздо более реалистичным по сравнению с использованными нами ранее моделями освещения Фонга и Блинна-Фонга. Он не только лучше выглядит, но и дает неплохое приближение к реальной физике, что позволяет нам (и в частности художникам) создавать материалы, основанные на физических свойствах поверхностей, не прибегая к дешевым трюкам дабы заставить освещение выглядеть реалистично. Главным преимуществом такого подхода является то, что создаваемые нами материалы будут выглядеть как задумано независимо от условий освещения, чего нельзя сказать о других, не PBR подходах.

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

Как мы участвовали в InnovateFPGA 2018 и снова не победили

Reading time10 min
Views5.1K
Приветствую, Хабр! Меня зовут Даниил Смирнов, я учусь в аспирантуре Университета ИТМО, где в лаборатории программирования и моделирования наш коллектив занимается программируемой электроникой для проектов, связанных с волоконно-оптическими датчиками. В качестве аппаратной базы для датчиков используются FPGA – Field Programmable Gate Array. Пару лет назад мы узнали о том, что производители FPGA проводят конкурсы среди студентов по разработке. С тех пор каждый год от нас формируется команда для участия в этом мероприятии, а поскольку в этом году оно получилось особенным, мы решили поделиться как все было изнутри.

image

Как работает stack trace на ARM

Reading time8 min
Views12K
Добрый день! Несколько дней назад столкнулся с небольшой проблемой в нашем проекте — в обработчике прерывания gdb неправильно выводил stack trace для Cortex-M. Поэтому в очередной раз полез выяснять, а какими способами можно получать stack trace для ARM? Какие флаги компиляции влияют на возможность трассировки стека на ARM? Как это реализовано в ядре Linux? По результатам исследований решил написать эту статью.
Читать дальше →

Разрабатываем процессорный модуль NIOS II для IDA Pro

Reading time12 min
Views8.4K
image

Скриншот интерфейса дизассемблера IDA Pro

IDA Pro — знаменитый дизассемблер, который уже много лет используют исследователи информационной безопасности во всем мире. Мы в Positive Technologies также применяем этот инструмент. Более того, нам удалось разработать собственный процессорный модуль дизассемблера для микропроцессорной архитектуры NIOS II, который повышает скорость и удобство анализа кода.

Сегодня я расскажу об истории этого проекта и покажу, что получилось в итоге.
Читать дальше →

Как я делал линейно-интерактивный ИБП (Часть 2)

Reading time4 min
Views8.7K
Во второй части нашего цикла продолжим разговор про измерение переменного напряжения, а также про измерение выходного тока нагрузки. Всех заинтересованных прошу под кат.
Читать дальше →

Information

Rating
7,160-th
Date of birth
Registered
Activity