Как стать автором
Обновить
0
0
Александр Мангушев @alex_mangushev

Начинающий разработчик встраиваемых систем

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

Путешествие сквозь секреты прошивок: от BIOS/UEFI до OS

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

Вы когда-нибудь задумывались, что происходит, когда вы нажимаете кнопку питания на компьютере? За той краткой паузой, прежде чем экран загорится, скрывается сложный процесс. В этой статье мы погрузимся в увлекательный мир прошивок (firmware) и исследуем, как разные компоненты взаимодействуют во время загрузки системы. Поняв эти связи, вы получите четкое представление о том, как основные элементы приводят вашу систему в действие. Мы сосредоточимся на Intel архитектуре x86, хотя многие принципы применимы и к другим архитектурам.

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

Что нового в мире обхода блокировок Интернета в середине 2024

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

Представляю вашему вниманию короткий обзор что же произошло в России и в мире в области цензуры интернета и того, как этому противостоят энтузиасты. На всякий случай напоминаю, что статья «Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному» заблокирована на Хабре для пользователей из РФ, но по‑прежнему без проблем открывается через прокси/VPN с иностранных адресов. Ну а мы сейчас разберем, что же изменилось с тех пор.

Сегодня в программе: Замедление YouTube — проблемы с Google Cache или намеренное вредительство? Можно ли заблокировать Shadowsocks и как РКН смог это сделать? Новые транспорты в XRay: HTTPUpgrade и SplitTunnel. Новости из мира Tor, и многое другое.

Читать далее
Всего голосов 167: ↑162 и ↓5+190
Комментарии105

Вы нас просили и мы сделали. VPN на собственном сервере с XRay Reality за 5 минут с помощью Amnezia

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

Всем привет! Это команда Amnezia. 

Мы читаем комментарии под нашими постами и знаем, что один из самых частых вопросов – когда будет XRay? Так вот, мы добавили XRay в приложение AmneziaVPN, а точнее протокол Reality от XRay для всех платформ -  IOS, Android, Windows, Linux и MacOS. Если у вас еще нет последнего релиза, скорее скачивайте и создавайте VPN на собственном сервере в пару кликов с одним из самых защищенных и быстрых протоколов в мире, ниже мы немного о нем расскажем, а в конце статьи будет пошаговая  инструкция как это сделать.

Почему XRay Reality так популярен ?

Все дело в том, что Reality подходит для стран с самым высоким уровнем интернет-цензуры, сейчас его используют в Китае и Иране, он защищен от детектирования методами active probing. 

Распознать цензоров REALITY может еще на этапе TLS-хендшейка. Если REALITY видит, что к нему приходит его клиент, то сервер запускает для него VPN туннель, а если приходит любой другой запрос на 443 порт, то TLS-подключение передается на какой-нибудь другой реальный сайт, например, google.com, где цензор получит настоящий TLS-сертификат от google.com и вообще все настоящие данные с этого сайта.

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

Особенно приятно, что при этом производительность REALITY и скорость подключения у протокола действительно хороши, в сравнении, например, со связкой OpenVPN over Cloak.

Читать далее
Всего голосов 151: ↑147 и ↓4+166
Комментарии133

Моделирование IP-ядер Xilinx в ModelSim

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

Недавно у меня возникла потребность в том, чтобы смоделировать в ModelSim дизайн, использующий IP-ядра Xilinx. У меня не сработала стандартная схема с компиляцией исходников в Vivado и я решил попробовать скомпилировать всё самостоятельно. В итоге у меня всё получилось! Более того, я написал несколько Tcl-скриптов, которые помогают немного упростить этот процесс. Все, у кого возникла такая же потребность — прошу к прочтению.

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

Почему аналоговая электроника такая сложная

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

Компьютеры и цифровая техника заполонили всё неспроста. Сегодня даже самое простое аналоговое устройство вроде таймера разработчик предпочтёт сделать на микроконтроллере, вместо использования микросхемы 555.

На то есть причины.

Читать далее
Всего голосов 98: ↑87 и ↓11+92
Комментарии254

PAL, GAL и путешествие в цифровое ретро

Время на прочтение17 мин
Количество просмотров22K
Идея сделать цифровые логические микросхемы с изменяемой структурой была всегда. Почему? Достаточно посмотреть на толстенный каталог чипов серии TTL 74xx (или советской К155), чтобы такая идея самозародилась. В СССР почти у каждого инженера и радиолюбителя был справочник В.Л. Шило «Популярные цифровые микросхемы», который вышел каким-то невероятным тиражом. Но всё равно, хотелось иметь некий «универсальный кристалл», из которого можно сделать все остальные микросхемы (ну хорошо, не все, но многие).

Конечно же, полупроводниковая промышленность тоже была не прочь удовлетворить такой спрос.
Дальше
Всего голосов 95: ↑95 и ↓0+95
Комментарии38

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч. 2)

Уровень сложностиСложный
Время на прочтение118 мин
Количество просмотров3.1K

Это вторая и заключительная часть большой статьи. Ознакомиться с первой частью можно по ссылке.

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

Последнее очень важно, так как если при разработке устройства классическим методом разработчик несет вполне существенные затраты на сборку и производство изделия, и любая схемотехническая ошибка или ошибка трассировки печатной платы — это всегда выход на очередную итерацию и попадание на деньги, то при работе с ПЛИС ошибки ничтожны по своей стоимости и легко устранимы. И даже если в серийном изделии обнаруживается ошибка, то её во многих случаях можно устранить очередным апгрейдом прошивки «в поле» без замены изделия. Короче, с приходом ПЛИС разработка цифровой аппаратуры все больше и больше выглядит как программирование, а это, помимо всего прочего, существенно понижает порог вхождения в тему, и все больше программистов становятся разработчиками «железа». А новые люди, в свою очередь, приносят с собой в индустрию новые подходы и принципы.

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

Продолжить погружение
Всего голосов 24: ↑24 и ↓0+24
Комментарии15

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч.1)

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

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

Последнее очень важно, так как если при разработке устройства классическим методом разработчик несет вполне существенные затраты на сборку и производство изделия, и любая схемотехническая ошибка или ошибка трассировки печатной платы — это всегда выход на очередную итерацию и попадание на деньги, то при работе с ПЛИС ошибки ничтожны по своей стоимости и легко устранимы. И даже если в серийном изделии обнаруживается ошибка, то её во многих случаях можно устранить очередным апгрейдом прошивки «в поле» без замены изделия. Короче, с приходом ПЛИС разработка цифровой аппаратуры все больше и больше выглядит как программирование, а это, помимо всего прочего, существенно понижает порог вхождения в тему, и все больше программистов становятся разработчиками «железа». А новые люди, в свою очередь, приносят с собой в индустрию новые подходы и принципы.

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

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

Погрузиться сполна
Всего голосов 42: ↑41 и ↓1+58
Комментарии65

Введение в VxLAN

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


Сегодня мы поговорим об очередной интересной технологии — VxLAN — что это за зверь и с чем его едят, да и вообще нужен ли он вам. Мое знакомство с данной технологией началось с изучения гипервизоров — я постоянно натыкался на термин VxLAN, но что это и как работает не знал. В один прекрасный день я решил все-таки прочитать, что это за зверь. Прочитав пару-тройку статей, я усвоил для себя основные аспекты работы технологии и облегченно выдохнул, прочитав, что данная технология — удел гипервизоров и к транспорту имеет косвенное отношение (хотя, как оказалось позже отношение VxLAN к транспорту имеет самое, что ни на есть прямое). После чего про технологию благополучно забыл и вернулся я к ней снова только через год, когда начал погружаться в EVPN — большинство статей и мануалов были именно о симбиозе EVPN и VxLAN. Литературы по данной технологии много, особенно если вы владеете английским. Я же попробую в данной статье рассказать об основах работы данной технологии и показать на практике — как это настраивается и работает. Но начнем с MPLS…
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии7

Эволюция сети Ethernet на витой паре

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

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

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

In RISC-V Rust

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

Превращаем простой пример распознавания нот из лабораторных работ Школы синтеза цифровых схем в Enterprise. Используем компилятор Rust для RISC-V микроконтроллера YRV-Plus.

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

Анатомия Hello World на языке C

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

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Всего голосов 125: ↑125 и ↓0+142
Комментарии47

PCIe для электронщиков: знакомство с дифференциальными парами

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

PCIe, он же PCI-Express, представляет собой очень мощный интерфейс, и в этой статье я опишу основные принципы его использования в собственных проектах. Поначалу PCIe может немного пугать, но он всё же достаточно прост для экспериментов и вполне пригоден для применения в рамках хобби. В определённый момент вы можете решить использовать микросхему PCIe в собственных проектах или, например, задействовать подключение PCIe на Raspberry Pi Compute Module, так что лучше быть к этому готовым.
Читать дальше →
Всего голосов 57: ↑55 и ↓2+71
Комментарии17

Загрузка драйверов в ядре Linux

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

Почти все знают, как написать простой драйвер под Linux. На эту тему много материалов в сети. Очень мало информации о том, что находится "под капотом" у процедуры загрузки драйверов.

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

Архитектура Xорошего Кода Прошивки (Массив-Наше Всё)

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

В этом тексте я написал о некоторых подходах к организации кода для микроконтроллеров.

Основная идея - массив наша основная скрепа.

Главные достоинства представленной архитектуры - это простота поддержки, сопровождения и масштабирования кодовой базы.

Читать далее
Всего голосов 13: ↑11 и ↓2+14
Комментарии33

К вопросу о диодах (идеальных)

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

Очередная зарисовка, как всегда, выросшая из практической задачи.
Имеется устройство -аккумуляторная батарея, состоящая из трех секций аккумуляторных ячеек (АЯ) (литий-ионных, хотя это неважно) и необходимо обеспечить их совместную работу на общую нагрузку. Для решения данной задачи поставлены три ключа на полевых транзисторах, индивидуально управляемых с микроконтроллера. Естественно, что каждый ключ образован двумя последовательно включенными транзисторами, управляемыми минусом на затворе (я постоянно путаю буквы n и p, так что пользуюсь такой терминологией), так что стоят они в плюсах батарей - пока ничего нового, таких схем двенадцать на дюжину, см рис.1.

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

И что было дальше ?
Всего голосов 39: ↑39 и ↓0+56
Комментарии29

Методы расчета волнового сопротивления линий передач на печатных платах

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

В.А. Ухин, В.С. Кухарук, Д.С. Коломенский, О.В. Смирнова

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

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

Значения импеданса, к которым необходимо стремиться, для разработчика не является секретом. Чаще всего для одиночных линий оно составляет 50 Ом, а для дифференциальных 100 Ом. Кроме того, практически на любой стандарт или интерфейс  передачи данных легко можно найти требования к значению импеданса. В таблице 1 представлен их пример для USB 3.0 [1, 2].

Таблица 1. Требования к трассировки USB 3.0

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

Стратегии оптимизации HDL-кода и синтезатора нетлиста для FPGA

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

В статье будет рассмотрена работа синтезатора нетлиста, его возможности по оптимизации кода и трудности, с которыми он может столкнуться. Показаны две техники написания кода логических схем на Verilog в зависимости от преследуемых целей оптимизации проекта на этапе синтеза. А также разбор некоторых настроек синтезатора Xilinx Vivado, которые призваны пытаться оптимизировать логическую схему за разработчика. В конце мы возьмём модуль, который попробуем привести к рабочему состоянию исключительно за счёт возможностей синтезатора.

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

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

Магистратура в 35. Шлюз интернета-вещей

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

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

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

Конрад Цузе — программист, обогнавший время

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


Сегодня исполняется 114 лет со дня рождения Конрада Цузе, пионера создания вычислительной техники, человека, которому сама судьба пыталась помешать двигать прогресс, но не помешала создать первый язык программирования высокого уровня, один из первых компьютеров и первую книгу по цифровой физике.
Читать дальше →
Всего голосов 90: ↑86 и ↓4+108
Комментарии29
1
23 ...

Информация

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