Как стать автором
Обновить
69
0.2
Дмитрий @deema35

Програмист

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

Software Defined Radio — как это работает? Часть 5

Время на прочтение4 мин
Количество просмотров21K
Привет, Хабр.

В предыдущей части был рассмотрен прием сигналов с помощью GNU Radio. Сейчас мы рассмотрим обратную задачу — передачу сигналов различного вида модуляции.



Как и в случае приема, с помощью GNU Radio можно создать сложную программную систему для передачи сигналов, не написав ни одной строчки кода. Но для начала рассмотрим SDR-устройства, способные работать не только на прием, но и на передачу, в диапазоне от мегагерц до гигагерц.

Продолжение под катом.
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии27

Software Defined Radio — как это работает? Часть 4

Время на прочтение10 мин
Количество просмотров48K
Привет, Хабр.

В третьей части было рассказано, как получить доступ к SDR-приемнику посредством языка Python. Сейчас мы познакомимся с программой GNU Radio — системой, позволяющей создать достаточно сложную конфигурацию радиоустройства, не написав ни единой строчки кода.



Для примера рассмотрим задачу параллельного приема нескольких FM-станций на один приемник. В качестве приемника будем использовать все тот же RTL SDR V3.

Продолжение под катом.
Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Комментарии26

Reversing для чайников — ассемблер x86 и код на С (для начинающих/ADHD friendly)

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

До того как заняться реверс-инжинирингом, исполняемые файлы казались мне черной магией. Я всегда интересовался, как все работает под капотом, как двоичный код представлен внутри .exe файлов, и насколько сложно модифицировать “исполняемый код” без доступа к исходникам.

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

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

Читать далее
Всего голосов 26: ↑22 и ↓4+25
Комментарии10

Как самому за один вечер собрать минимальную ОС Linux из исходного кода

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров89K
image

В современном мире нас окружает огромное количество электронных устройств различной степени сложности. Если устройство более или менее сложное, например, телевизор, маршрутизатор, смартфон, то с большой долей вероятности оно работает под управлением операционной системы Linuх, и эта мысль не даёт мне покоя.

Ещё больше не даёт покоя мне тот факт, что все ядра операционной системы Linux, которые работают на различных устройствах и серверах, собраны из исходного кода, находящегося в репозитории на сайте kernel.org.

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

Мне всегда хотелось собрать операционную систему Linux самому из исходного кода, но процесс этот всегда казался сложным и запутанным, да и многого я не понимал. Но всё-таки в определённый момент времени я накопил достаточное количество знаний, чтобы осуществить свою мечту. В этой статье я хочу рассказать вам, как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере.
Читать дальше →
Всего голосов 83: ↑82 и ↓1+108
Комментарии83

Реверс-инжиниринг оборудования миссии «Аполлон» рентгенографией

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

В этом посте я выполню реверс-инжиниринг гибридного модуля, использовавшегося для наземного тестирования оборудования космической программы «Аполлон».

Но для начала немного справочной информации.

Во время миссий «Аполлон» к Луне НАСА могло отправлять с Земли на космический корабль цифровые сообщения.

Эти сообщения с данными могли выполнять конкретные задачи: управлять оборудованием корабля активацией реле, отправлять команды напрямую управляющей ЭВМ «Аполлона» или даже устанавливать часы космического аппарата.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+36
Комментарии5

Реверс-инжиниринг старой микросхемы OR/NOR

Время на прочтение6 мин
Количество просмотров5.6K
Не так давно я получил фотографию кристалла загадочной схемы OQ100 [1] от EvilMonkeyDesignz. Я проанализировал её и обнаружил, что это чип логики, реализованный на быстрой ECL (эмиттерно-связанная логика) схеме и датируемый, вероятно, началом 1970-х годов. Чип содержит три логических элемента, два с 2 входами и один с 4 входами. Каждый элемент имеет неинвертированный и инвертированный выходы, работая как вентили OR и NOR. Эта статья резюмирует мои исследования. (Недавно я также проанализировал OQ104, другой чип из этой серии.)


Фотография кристалла микросхемы Philips QC100. Фото предоставленоEvilMonkeyDesignz.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии1

Реверс-инжиниринг необычной модемной платы IBM 1965 года

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

На винтажной плате IBM ниже есть большой металлический блок, который привлек мое внимание, поэтому я подробно разобрался в ней. Оказалось, что плата — это часть модема, а большая металлическая коробка - трансформатор. Этот материал рассказывает о том, что я в итоге узнал об этой плате, а также немного об истории модемов.

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии37

Как я портировал DOS игру

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

Решил портировать одну старую давно забытую игрушку с DOS на современную платформу. Эта игра, в своё время, привлекала ураганным геймплеем, неплохой разрушаемостью, возможностью включить всё оружие одновременно и устроить настоящий бедлам. В 2021 году играть в такое всё ещё интересно, но делать это в родном разрешении 640х480, как-то не очень. Поэтому решил портировать игру и накатить хай-рез патч. Получилось!

Читать далее
Всего голосов 235: ↑235 и ↓0+235
Комментарии40

Триггеры-защёлки: реверс-инжиниринг регистра команд в Intel 8086

Время на прочтение9 мин
Количество просмотров7.6K
Микропроцессор Intel 8086 – один из самых влиятельных чипов. Порождённая им архитектура х86 и по сей день доминирует среди настольных и серверных компьютеров. И всё же этот чип ещё достаточно прост для того, чтобы его цепи можно было изучать под микроскопом и разбираться в них. В этой статье я объясню реализацию динамической защёлки [одноступенчатый триггер] – схемы, удерживающей один бит. В 8086 есть более 80 защёлок, разбросанных по всему чипу, и удерживающих различные важные биты статуса процессора, но я сконцентрируюсь на восьми из них, реализующих регистр команд и хранящих выполняющуюся команду.

У 8086-го есть более 80 защёлок. Некоторые из них хранят значения контактов AD (address/data) или управляющих контактов. Другие хранят текущий адрес микрокода и микрокоманды, а также адрес возврата из подпрограммы микрокода. В третьих хранятся биты исходного и выходного регистра команд, и АЛУ-операция команды. Во многих хранятся статусы внутреннего состояния, в которых я пока ещё разбираюсь.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+18
Комментарии0

Реверс-инжиниринг микропроцессора Intel 8086

Время на прочтение6 мин
Количество просмотров26K
В июне 1978 года был представлен один из самых влиятельных чипов в полупроводниковой индустрии – Intel 8086. Он положил начало архитектуре х86, которая до сих пор доминирует сегодня в настольных и серверных вычислениях. Давайте заглянем вглубь чипа и разберём внутреннее строение и архитектурные особенности этого микропроцессора.

image

На фото ниже изображён кристалл процессора Intel 8086. На фото виден металлический слой чипа, скрывающий кремний под ним. По краям матрицы расположены тонкие провода, обеспечивающие соединение между площадками на чипе и внешними контактами. Силовые и заземляющие площадки имеют по два соединительных провода для поддержания более высокого тока. Микросхема была очень сложной для своего времени и содержала 29 тысяч транзисторов. Обратите внимание на маркировку кристалла в самом низу – на ней указан логотип Intel, модель процессора и год изготовления микросхемы.

image
Кристалл процессора Intel 8086

image

Для исследования кристалла необходимо аккуратно препарировать процессор. Большинство интегральных схем упакованы в эпоксидную смолу, поэтому для растворения корпуса необходимы опасные кислоты. Чтобы избежать повреждения кристалла был использован 8086 с керамическим корпусом, крышка которого легко открывается, обнажая бесстыдную красоту всех его внутренностей.

image

Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии185

Извлекаем константы с кристалла математического сопроцессора 8087

Время на прочтение10 мин
Количество просмотров17K
В 1980 году Intel представила чип 8087 для ускорения обработки чисел с плавающей запятой на 8086-х процессорах, и его использовали в оригинальном IBM PC. Поскольку первые микропроцессоры работали только с целыми числами, арифметика с числами с плавающей запятой была медленной, а с трансцендентными функциями вроде арктангенса или логарифмов дела обстояли ещё хуже. Добавление чипа сопроцессора 8087 к системе было способно ускорить операции с числами с плавающей запятой до ста раз.

Я вскрыл чип 8087 и сделал несколько его фотографий под микроскопом. На фото ниже показан крохотный кремниевый кристалл чипа. По его бокам крохотные проводники соединяют его с 40 внешними ногами. Разметка основных функциональных блоков на картинке сделана мною благодаря реверс-инжинирингу. Если внимательно изучить чип, то можно извлечь из его ПЗУ различные константы – такие числа, как π, используемые чипом в вычислениях.


Кристалл чипа от Intel 8087 для работы с плавающей запятой с отмеченными основными функциональными блоками. ПЗУ с константами отмечен зелёным. Кликабельно.
Читать дальше →
Всего голосов 48: ↑47 и ↓1+69
Комментарии13

Пишем USB-драйверы для заброшенных устройств

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


Недавно на eBay мне попалась партия интересных USB-девайсов (Epiphan VGA2USB LR), которые принимают на вход VGA и отдают видео на USB как веб-камера. Меня настолько обрадовала идея, что больше никогда не придётся возиться с VGA-мониторами, и учитывая заявленную поддержку Linux, я рискнул и купил всю партию примерно за 20 фунтов (25 долларов США).

Получив посылку, я подключил устройство, но оно даже не подумало появиться в системе как UVC. Что не так?

Я изучил сайт производителя и обнаружил, что для работы требуется специальный драйвер. Для меня это была новая концепция, ведь в ядре моего дистрибутива Linux обычно есть драйверы для всех устройств.
Всего голосов 230: ↑228 и ↓2+226
Комментарии96

Реверс-инжиниринг TL431, крайне распространенной микросхемы, о которой вы и не слышали

Время на прочтение14 мин
Количество просмотров109K
Кен, как и планировал, провёл реверс-инжиниринг микросхемы по фотографиям, сделанным BarsMonster. Барс в статье упомянул своё общение с Кеном, но этой переводимой статьи тогда еще не было.

Фото кристалла интересной, но малоизвестной, микросхемы TL431, используемой в блоках питания, даёт возможность разобраться в том, как аналоговые схемы реализуются в кремнии. Несмотря на то, что схема на фото выглядит как какой-то лабиринт, сама микросхема относительно проста, и может быть исследована без большого труда. В своей статье я попытаюсь объяснить каким образом транзисторы, резисторы и другие радиодетали запакованы в кремний для выполнения своих функций.


Фото кристалла TL431. Оригинал Zeptobars.
Читать дальше →
Всего голосов 74: ↑73 и ↓1+72
Комментарии30

Разбираем кварцевый генератор и его крохотную интегральную схему

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


Кварцевый генератор – важный электронный компонент, обеспечивающий очень точную генерацию тактовой частоты за небольшие деньги. Из-за пьезоэлектрического эффекта его электрические свойства меняются в процессе вибрации. Поскольку можно сделать кристалл, который будет вибрировать с определённой частотой, кварцевые генераторы очень полезны для множества применений. Появились они в 1920-х, и сначала обеспечивали точную генерацию волн для радиостанций. В 1970-м году произошла революция наручных часов, когда в них стали использовать кварцевые генераторы высокой точности. Компьютеры, от ENIAC 1940-х годов и до сей поры используют кварцевые генераторы для генерации тактовой частоты.

В современных ПК всё ещё используются кварцевые генераторы, но для получения многогигагерцовых тактовых частот применяются более сложные технологии. ПК использует кристалл с частотой гораздо меньшей, чем рабочая, и умножает её при помощи фазовой автоподстройки частоты. Компьютеры часто используют кристалл на 14 318, поскольку эту частоту использовали в старых телевизорах, и такие кристаллы были недорогими и широко распространёнными.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+35
Комментарии10

Родом из Викторианской эпохи: истоки появления солнечных батарей

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.8K

Солнечные батареи – это альтернативный источник получения электроэнергии, который с каждым годом завоевывает все большую популярность. Большинству простых потребителей они кажутся чем-то инновационным. Но сама технология довольно старая: первая солнечная батарея, которая давала ток, был создана американским изобретателем Чарльзом Фриттсом аж в 1883(!) году. Вот так, полтора века назад. Рассказываем с чего все начиналось.

Читать далее
Всего голосов 9: ↑8 и ↓1+8
Комментарии14

Пособие по программированию модулей ядра Linux. Ч.1

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

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии4

Linux, отложенная загрузка драйверов и неработающие прерывания

Время на прочтение9 мин
Количество просмотров30K
Сегодня я расскажу о неожиданных проблемах, которые возникли при подключении матричной клавиатуры к ARM-борде под управлением Linux в приборе Беркут-ETN (ETN — новая аппаратная ревизия Беркут-ET). А конкретно о том, почему драйвер adp5589 не захотел получать прерывания и как мы смогли заставить его это делать.

Кому интересно — добро пожаловать под кат.

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии6

Биполярные транзисторы. For dummies

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

Предисловие


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

Транзистор, как и диод, основан на явлении p-n перехода. Желающие могут освежить в памяти физику протекающих в нем процессов здесь или здесь.

Необходимые пояснения даны, переходим к сути.
Читать дальше →
Всего голосов 76: ↑73 и ↓3+70
Комментарии26

Уроки по электрическим цепям — линии передачи

Время на прочтение10 мин
Количество просмотров241K
Ещё не начав читать статью, попробуйте подумать над вопросом: побежит ли ток, если подключить к батарейке очень длинный провод(более чем 300 тысяч километров, сверхпроводник), если противоположные концы провода никуда не подключены? Сколько Ампер?

Прочитав эту статью, вы поймёте в чём смысл волнового сопротивления. Из лекций по теории волн я вынес только то, что волновое сопротивление — это сопротивление волнам. Большая часть студентов, кажется, поняла ровно то же самое. То есть ничего.

Эта статья — весьма вольный перевод этой книги: Lessons In Electric Circuits
Статьи по теме: На Хабре: Контакт есть, сигнала нет
Трэш в Википедии: Длинная линия

Читать дальше →
Всего голосов 99: ↑97 и ↓2+95
Комментарии62

Как распечатать цветной механический телевизор на 3D-принтере

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

До появления плоских экранов и электронно-лучевых трубок люди смотрели телепередачи с помощью диска Нипкова. Благодаря этой статье любой, у кого есть 3D-принтер, может попробовать создать дома самый старый тип телевизора.

Читать далее
Всего голосов 75: ↑74 и ↓1+90
Комментарии62

Информация

В рейтинге
2 559-й
Откуда
Россия
Зарегистрирован
Активность