Как стать автором
Обновить
30
0
Сергей Сахно @Punk_Joker

Software engineer

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

Фантастические миры, где люди зависят от искусственных интеллектов

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

Писатели-фантасты на протяжении многих лет регулярно обращаются к сюжетам про «восстания машин», но по актуальности они, кажется, сейчас отходят на второй план. Зато можно рассмотреть другую интересную сторону этой медали: историю о том, как люди сами отдают контроль над своими жизнями в руки искусственных интеллектов и алгоритмов. Просто потому что они точнее, надежнее и не думают о собственной выгоде. Если мы уже можем читать реальные новости про цифрового прокурора в Шанхае и выпускников, которые готовы доверить искусственным интеллектам выбор своей профессии, то почему бы фантастам не рассмотреть возможные изъяны и риски? И они действительно уже делали это не раз! Вот несколько ярких примеров от классики и до наших дней.

Читать далее
Всего голосов 28: ↑26 и ↓2+31
Комментарии23

Стартуем RISCV Sipeed LicheeRV — Nezha CM C906 без официального SDK

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

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

В принципе, я никогда не интересовался продуктами вроде Banana Pi или Orange Pi от Allwinner, взглянув на официальное чудо, я понял почему от этих продуктов все так воротят нос:

— Прошивки для не китайцев "заботливо" лежат на MEGA (хочешь качать - плати деньги...)

— Для прошивки карт используется "замечательный" инструмент под названием PhoenixCard (судя по китайским форумам он не слушается даже китайцев), который работает под Windows (что всегда хорошо!)

— Официальный "SDK" обернут вместе c rootfs и разбит на архивы общей суммой >10 Gb (да-да и лежит на MEGA - то есть все равно заплатишь)

— И изюминка - все образы в комплекте расчитаны на карты ёмкостью больше 16 Gib (у наших друзей написано 16 GB - card_needs_≥16GB.txt)

Квест про реверс (он в конечном счете не понадобился) и печальное ковыряние палкой данного продукта жизнедеятельности (то что я собрал с помощью SDK, так и не заработало...) мы опустим, так как, я наконец наткнулся на гайд для Sipeed Nezha от дяди Samuel'a Holland'a спасибо ему за это огромное...

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

FIFO для самых маленьких (вместе с вопросами на интервью)

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

"Напишите на доске код на верилоге для FIFO" - это популярный вопрос во время интервью в компании типа Apple и AMD, причем у него есть вариации для всех уровней инженеров, так как существуют десятки типа реализаций FIFO: на D-триггерах, встроенной SRAM памяти или на массиве D-защелок; с одном или двумя тактовыми сигналами; с одним, двумя или N вталкиваниями / выталкиваниями в одном такте; с разделяемой несколькими FIFO общей памятью; с парой указателей для записи/чтения и с хранением элементов в виде связанного списка; FIFO позволяющее undo; FIFO позволяющие потери данных; всякая экзотика типа FIFO шириной ноль итд.

Если человек не в теме или не понял вопроса, он может начать "запускаем GUI от Xilinx, вносим параметры и инстанциируем сгенерированный код". Это вызывает реакцию, как если бы школьная учительница геометрии спросила "найдите гипотенузу" и школьник бы ткнул пальцем в гипотенузу и с улыбкой ответил "вот она!"

Читать далее
Всего голосов 27: ↑24 и ↓3+23
Комментарии25

Функции в скриптах Роутер ОС Микротик. Интересные решения и недокументированные возможности

Время на прочтение32 мин
Количество просмотров21K
Роутер ОС Микротик, как известно, имеет мощнейший LUA-подобный встроенный скриптовый язык, позволяющий осуществлять исполнение сценариев, в том числе при наступлении каких-либо событий в сети или по расписанию. Скрипты могут состоять из одной строки кода или иметь внушительные размеры, при передаче управления друг другу формируя сложные программы. Встроенный скриптовый язык существенно расширяет возможности системы, практически не ограничивая полет фантазии программиста. Существующее официальное руководство по скриптам написано кратко и, разумеется, не может охватить все особенности программирования для Роутер ОС.

В этой статье, не претендующей на полное руководство к разделу, мы рассмотрим одну из интересных и важных рубрик «скриптинга», а именно — функции.

Перед прочтением статьи, пользователям, начинающим изучать скрипты, рекомендую ознакомиться с официальным руководством Микротик по скриптам по ссылке выше, либо с его переводом (например, здесь). Следует знать типы переменных в скриптах Микротик, иметь понятие об областях видимости, окружении переменных и т.д… Также будет весьма полезна статья habr.com/ru/post/270719, в которой автор подробно разбирает типы переменных LUA Микротик и варианты их объявления и использования.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии0

Python в металлургической промышленности

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

Когда речь заходит о тяжелой промышленности и технологиях в ней, в большинстве случаев мы ожидаем услышать Java, а может быть и Java EE, или наоборот что-то очень низкоуровневое. Именно такие предположения я чаще всего слышу от друзей, когда рассказываю, где работаю. Однако, в реальности всё немного иначе и на практике мои коллеги используют множество технологий.

В этой статье я расскажу о том, зачем на металлургическом комбинате Python и с какими проблемами я столкнулся при работе над задачами.

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

Архитектура первой PlayStation: центральный процессор

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

Краткое введение


Sony знала, что разработка для 3D-оборудования может становиться очень сложной. Поэтому в дизайне своей первой консоли она стремилась к простоте и практичности… Однако всё имеет свою цену!



CPU


В этом разделе мы проанализируем Sony CXD8530BQ — один из двух больших чипов, содержащихся в консоли. Сегодня мы бы назвали его «System-on-Chip».

Происхождение


Сюжет о создании процессора в виде «X спроектирован компанией Y на основе Z при поддержке W» сложно будет рассказать в нескольких предложениях, поэтому почему бы начать с исторического контекста?
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии1

Изучаем протоколы со Scapy

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

Статья расскажет, как можно использовать Scapy для создания пакетов UDP и TCP протокола, так же попробуем реализовать взаимодействие по сети, отправив короткое сообщение с использованием каждого из протоколов.

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

Matrix Resurrections. Воскрешение франшизы?

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

Вокруг этого фильма создалось неоднозначное мнение. Нет это точно не провал, как последний «терминатор». Вопросов тут теперь больше чем ответов, а теорий еще больше.

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

Но начать стоит с… «Аниматрицы», а точнее ее лжи (явных странностей сюжета).

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

Поэтому верить в описанные причины и следствия можно с определенной долей сомнения.

Читать далее
Всего голосов 22: ↑11 и ↓11+5
Комментарии75

Статическое константное дерево на шаблонах C++

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

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

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

Читать далее
Всего голосов 18: ↑16 и ↓2+22
Комментарии45

Мой новый домашний сервер, часть 2: выбор софта

Время на прочтение10 мин
Количество просмотров74K
Вторая часть истории про мой новый домашний сервер — о выборе софта на замену старой системе. Что было, что хотелось получить и что было выбрано в итоге.


Картинка же повествует о том, что любое облако — это чужой компьютер. Это к вопросу о том, что «не нужны никакие домашние сервера, давайте всё хранить в облаках».

Было

Стоял простой Windows Server. В целом, не было ничего такого, для чего нужен был бы конкретно сервер — вполне подошла бы и десктопная Windows. Но у меня была свободная лицензия сперва на 2008, потом на 2012 обломилась — так что грех было не использовать. Потом, правда, поставил 2019 потестировать — и до сих пор тестировал. Хотя вполне мог бы и обратно на 2012 откатиться, ничего не потерял бы. А новые возможности 2019 можно было бы и в виртуалке смотреть. Ну или вообще на работе, благо он есть в продакшне.
Читать дальше →
Всего голосов 29: ↑25 и ↓4+27
Комментарии193

Аллокаторы внутри

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

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

Выделить знания
Всего голосов 11: ↑11 и ↓0+11
Комментарии7

А все ли врут? Продолжаем издеваться над NVME

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

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

Для многих из нас nvme означает, что мы купили новый компьютер или ультрабук. Жёсткий диск, подключённый напрямую к шине PCIE, позволяет существенно снизить задержки передачи данных и ускорить любую систему. NVME — это ключ к загрузке любой системы за 3 секунды.

Но, на самом деле сам по себе NVME — это не стандарт для жёстких дисков. NVME расшифровывается как NVM Express. NVM, в свою очередь, означает Non-volatile memory, И в первую очередь — это спецификация протокола, который позволяет производить эффективный доступ к данным, хранящимся в энергонезависимой памяти.

А как мы хорошо знаем, протоколы можно запускать на разных носителях. В этой статье мы будем издеваться над моим лэптопом с Ubuntu Linux 21 на борту, подключая его жёсткий диск к разным серверам. Вы можете посетовать, что всё это игрушки, но хороший администратор со свитчем, позволяющим поддерживать скорости более 10 гигабит в секунду, должен взять это на заметку. Вы можете получить удалённый доступ к вашим nvme жёстким дискам через tcp/ip без уловок и мошенства.

Поехали.
Читать дальше →
Всего голосов 113: ↑113 и ↓0+113
Комментарии90

Кунг-фу стиля Linux: делиться — это плохо

Время на прочтение7 мин
Количество просмотров29K
В детском саду вы узнали о том, что делиться — это хорошо. Но, если речь заходит о компьютерной безопасности, часто оказывается, что не всё так однозначно. Концепция пространств имён (namespaces) появилась в ядре Linux начиная с версии 2.6.24. Это случилось много лет назад, но использование пространств имён не стало массовым явлением, несмотря на то, что существуют инструменты для работы с ними. Разумеется, задумываться о пространствах имён нужно далеко не всегда. Но это одна из тех вещей, которые, если в них возникает необходимость, дают нам просто бесценные возможности. Если описать эти возможности в двух словах, то получится, что пространства имён позволяют предоставить процессу его собственные, приватные ресурсы, и, что важнее, запретить процессу доступ к ресурсам из других пространств имён.



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

Поговорим о том, как в Linux организована работа с пространствами имён, и о том, что они скрывают.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+44
Комментарии4

Как простой баг повреждения памяти ядра Linux может привести к полной компрометации системы

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

Введение


В этом посте описывается простой в реализации баг блокировки ядра Linux и то, как я использовал его против ядра Debian Buster 4.19.0-13-amd64. В посте рассматриваются варианты устранения бага, препятствующие или усложняющие использование подобных проблем злоумышленниками.

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

Многие описанные здесь отдельные техники эксплойтов и варианты их устранения не новы. Однако я считаю, что стоит объединить их в одну статью, чтобы показать, как различные способы устранения взаимодействуют друг с другом на примере достаточно стандартного эксплойта с использованием освобождённой памяти.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Сборка объектов в IBM i: от ручного набора команд до инкрементной системы TMKMAKE

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

Всем привет! Вот уже почти 3 года я занимаюсь разработкой и поддержкой программ для такой платформы как IBM i (краткое описание что это такое есть, например, тут и здесь). Как вы понимаете, данный вид деятельности неразрывно связан с тем, что тексты исходного кода надо преобразовывать в исполняемые файлы или, как будет правильнее для IBM i, в объекты системы. И вот тут начинается самое интересное...

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

Самые громкие кибервзломы и утечки 2021 года

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

2021 год стремительно подходит к концу. Мы решили не обходить стороной новогоднюю традицию и подвести его итоги. Для нас 2021 год прошел еще насыщеннее, чем предыдущий: мы выпустили новые продукты (PT XDR, MaxPatrol O2, MaxPatrol VM), засекли активность парочки новых для России АРТ-группировок и не пропустили ни одной известной, нашли и помогли устранить несколько десятков уязвимостей, мало того —  под конец года мы еще и вышли на биржу в режиме прямого листинга…?

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

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

Узнать больше
Всего голосов 9: ↑8 и ↓1+8
Комментарии1

SPDK: ускорение работы с NVMe-дисками

Время на прочтение8 мин
Количество просмотров11K
SPDK (Storage Performance Developer Kit) – это набор инструментов и библиотек с открытым исходным кодом, которые призваны содействовать разработке высокопроизводительных масштабируемых приложений, ориентированных на взаимодействие с дисковыми накопителями. В этом материале мы сосредоточимся на имеющемся в SPDK NVMe-драйвере, работающем в пользовательском пространстве Linux, а также рассмотрим реализацию приложения-примера «Hello World» на платформе Intel.


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

Предиктивная аналитика: нефтегазовая промышленность, энергетика, далее – везде

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

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

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

Читать далее
Всего голосов 6: ↑5 и ↓1+12
Комментарии4

Первые эксперименты со смешанным Litex+Verilog проектом для ПЛИС

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

В предыдущей статье мы начали осваивать построение шинно-ориентированных систем на базе среды Litex (которая всё делает на Питоне) с внедрением собственных модулей на Верилоге. Статья так разрослась, что практические опыты мы оставили на потом. Пришла пора провести их. Сегодня мы подключимся к VGA-монитору и поуправляем изображением, которое выдаёт модуль gpu, описанный в файле gpu.v, то есть, реализованный на языке Verilog. Управлять мы им будем через регистр команд, расположенный в блоке CSR, спроецированном на шину Wishbone. Все эти сущности, в свою очередь относятся к среде Litex. Инструменты для опытов мы тоже будем использовать штатные, Litex-овские. Приступаем!

Читать далее
Всего голосов 15: ↑13 и ↓2+21
Комментарии4

Хакаем CAN шину авто. VAG диагностический бортовой компьютер

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

С огромным увлечением исследую протоколы CAN шины и разрабатываю устройства взаимодействующие с автомобилем. У меня уже есть голосовое управление центральным замком, виртуальная панель приборов и даже мобильное приложение для моей Skoda Octavia A5.

Теперь я решил разработать диагностический бортовой компьютер для автомобилей группы VAG (VW, Audi, Skoda, Seat). Моими техническими требованиями было: OLED дисплей, лёгкая установка и подключение, множество диагностических параметров. В качестве компонентной базы выбрал:
Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии41

Информация

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