Как стать автором
Обновить
2
0
Kirill Frolov @fk0

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

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

Как научить операционную систему «выбрасывать» С++ исключения из системных вызовов и как это можно применять

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

Эта статья написана по мотивам дипломной работы, выполненной в ВУЗе. Мне показалось, что она могла бы быть интересна и другим людям, поэтому выкладываю пересказ. В этой работе я кратко рассмотрю, как вообще работают исключения в С++, опишу, как я добавил их поддержку в простую ОС, написанную для преподавания АКОСа, какой способ передачи исключений из ядра в программы я написал. А в конце посмотрим, в каких ещё случаях ОС может бросать пользователям С++ исключения.

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

Встраиваем вирусный exe в файл *.reg

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

Недавно я выпустил экспериментальный проект под названием «EmbedExeLnk» — этот инструмент генерировал файл .lnk, содержащий встроенную полезную нагрузку EXE. Я развил эту концепцию дальше и создал инструмент, который создаёт файл реестра Windows (.reg), содержащий полезную нагрузку EXE. Интересно? Подробности ниже.

Читать далее
Всего голосов 32: ↑30 и ↓2+31
Комментарии6

ОС с нуля: Глава 2, Часть 1 — Да зачем нам этот Legacy

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

Пару месяцев назад я решил начать серию статей про написание своей ОС с нуля. Описал написание Legacy MBR загрузчика и переход в защищенный режим (без прерываний) и ещё пару мелочей. Сегодня я решил, что попытаюсь "перезапустить" эту серию (сохранив нумерацию частей). Суть в том, что теперь будут использоваться актуальные на август 2022 года материалы, и разработанное ПО можно будет легко протестировать на своей (U)EFI-машине.

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

NORVI IIOT (не Kincony единым)

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


У нас тут уже образовался клуб любителей контроллеров и их программирования, мы познакомились с устройством и назначением DIY контроллеров компании Kincony серии KC868 (A4, A6, A8, Uair, AG, A16, A32, Server) и значительно продвинулись в этой теме, но мир контроллеров не заканчивается на продукции Kincony, есть много не менее достойных и интересных производителей, и в моём распоряжении оказался целый набор устройств от компании Iconic Devices (Norvi): NORVI IIOT (AE01-T), NORVI ENET (AE06-T), NORVI Cema (M1), NORVI Agent 1 (AT01-BM1), NORVI Agent 2 (AP01-BC1).

Как вы догадываетесь, я не могу отказать себе в удовольствии разобрать по косточкам и препарировать всё это великолепие и не могу не поделиться с вами результатами своих изысканий. Эта первая статья цикла о девайсах Norvi будет посвящена модели NORVI IIOT — базовой для всего семейства контроллеров этой компании.

Итак, приступим…
Читать дальше →
Всего голосов 13: ↑10 и ↓3+10
Комментарии10

Kincony KC868-A6: A4 на стероидах (по заявкам с Хабра)

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


Компания Kincony отличается завидной плодовитостью и «выпекает» новые контроллеры как горячие пирожки — каждый месяц у неё появляются всё новые и новые модели. И, судя по всему, останавливаться она не собирается, в её собственной интерпретации это называется:

“Continuously developing new products.”

То есть она и дальше собирается радовать нас своими новыми девайсами для автоматизации. Это отличная новость, но есть новость ещё лучше: Kincony реагирует на пожелания пользователей по улучшению своих изделий. А в наше время это очень редкое качество — увидеть в железе свои «хотелки» — что-то я вообще не припомню прецедентов, чтобы по моим пожеланиям выпускали серийные контроллеры.

Разработчики Kincony знакомы с моими статьями, а также с комментами Хабро-юзеров под ними, то есть у нас есть реальный шанс (механизм) влияния на начинку новых изделий Kincony. В частности, среди моих пожеланий были добавление в контроллер дисплея, возможность подключения беспроводных модулей LoRa и nRF24, вывод на плату отдельных Serial, I2C и SPI разъёмов, добавление часов реального времени (RTC) — и вот передо мной лежит KC868-A6, в котором все эти пожелания учтены. Вот так просто — заказывали? — получите!

Разумеется, не все наши пожелания учтены в KC868-A6, но сама тенденция радует, а что и как устроено внутри A6 мы с вами разберём дальше…
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии10

Изучаем, как собрать свой двигатель — на случай «Большого ПЭ» и не только

Время на прочтение17 мин
Количество просмотров45K
Картинка Freepik и Flickr

Энергия в современном мире — это всё, и чем дальше, тем больше: экзоскелеты, роботы, разнообразные электрические виды транспортных средств. Всё это базируется на необходимости доступа к соответствующим источникам питания и, в то же время, ограничивается их отсутствием. Однако всё может стать ещё хуже, если традиционные источники питания станут вдруг недоступны, по тем или иным причинам. Либо же, потребуется создать собственный источник питания (например, для электропитания далеко расположенного лесного домика и т.д.). Ещё одним интересным вариантом может быть изготовление альтернативного источника питания для уже существующих устройств, — например, для дронов. Да, в этой статье мы поговорим об устройстве и возможности изготовления собственных двигателей внутреннего сгорания различных типов. Кроме того, для этих целей можно даже применить технологии машинного обучения!

Читать дальше →
Всего голосов 70: ↑69 и ↓1+98
Комментарии129

Энергетический расчёт и выбор на этой основе исполнительных двигателей

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

Блог компании Специальный Технологический Центр , туториал

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

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

CJDNS мертв, да здравствует Yggdrasil

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


Что такое Yggdrasil?
Yggdrasil — это распределённая Mesh сеть, которая работет в Overlay режиме, позволяя сделать интернет поверх интернета.

Причем, сеть может одновременно работать в двух режимах — через интернет и без интернета, соединяясь напрямую с физически соседними пирами (через Ethernet, Wi-Fi или Bluetooth) работая на 3-ем уровне модели OSI.

На Apple устройствах использован протокол AWDL.
Последние новости о сети cjdns датируются 2017 годом, может показатся, что сеть умерла и разработка остановлена (на самом деле — да), однако появился самозванец — Yggdrasil, который практически полностью копирует cjdns однако делает это намного лучше.

В посте рассмотрим:

  • Что такое Yggdrasil
  • Зачем это нужно
  • Откуда он взялся
  • Можно ли ему доверять
  • В чем отличее от cjdns
  • Почему его стоит установить прямо сейчас
  • Поддержка iOS (Да!)
  • Что в планах
  • Как настроить

Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии71

Коммуникации в store-and-forward режиме, UUCP

Время на прочтение7 мин
Количество просмотров11K
Сейчас в мире Интернета преобладающее количество всех служб работают в режиме online: то есть постоянное соединение с Интернетом и серверами. Если HTTP, FTP или IRC сервер недоступен, то вам об этом сразу же явно сообщат. Не всегда есть возможность иметь такую роскошь как постоянный online. Иногда это дорого, иногда просто технически невозможно. Есть опасность что появится Великий Российский Firewall который будет разрешать только whitelist доступ к ресурсам и доступность «полноценного» Интернета, в лучшем случае, будет только от места к месту. Режим работы при котором данные для отправки сохраняются и ожидают пока появится связь называется store-and-forward. Именно этот режим удобно позволяет работать в условиях непостоянного online.

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

Как собрать зловредный компилятор

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

А вы знали, что бывает такая атака на компилятор через бэкдор, защититься от которой невозможно? В этом посте я покажу вам, как реализовать такую атаку менее чем в 100 строках кода. Кен Томпсон, создатель операционной системы Unix, рассказывал о такой атаке еще в 1984 году в своей лекции по поводу присуждения Премии Тьюринга. Такая атака по-настоящему опасна и сегодня, причем, не известно решений, которые обеспечивали бы полную неуязвимость от нее. Вирус  XcodeGhost, открытый в 2015 году, проводит атаку через бэкдор по методу, предложенному именно Томпсоном. Я покажу здесь атаку Томпсона на языке   C++, но этот пример легко адаптировать для любого другого языка. Дочитав эту статью, вы крепко задумаетесь, а осталось ли у вас вообще какое-то доверие компилятору.

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

Читать далее
Всего голосов 46: ↑44 и ↓2+59
Комментарии26

Настроить программный модем — поможет minimodem

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

Можно сказать, что модемы перешли в разряд ретротехнологий. Но чтобы поработать с ними сегодня, необязательно приобретать физический девайс. Для установки соединения по аудиоканалу достаточно звуковой карты и open source утилиты minimodem.

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

Как написать калькулятор на HTML и CSS без JavaScript

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

Материалом о разработке калькулятора на CSS и HTML, без файла JS, тега script и обработчиков событий в HTML делимся к старту курса по Fullstack-разработке на Python. За подробностями приглашаем под кат.

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

Ссылки и ссылочные типы в C++

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

Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.


Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.



В C роль ссылок играют указатели, но работать с ними не очень удобно и в C++ появилась отдельная сущность — ссылка (reference). В C++11 ссылки получили дальнейшее развитие, появились rvalue-ссылки, универсальные (передаваемые) ссылки, которые играют ключевую роль в реализации семантики перемещения — одном из самых значительных нововведений C++11.



Итак, попробуем рассказать о ссылках в C++ максимально подробно.


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

«Кастомные» клавиши для механической клавиатуры

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

Здравствуйте, товарищи!
В новогодние каникулы дошли руки доделать кастомный набор клавиш для моей механической клавиатуры. Нанесение легенд на клавиши делалось по технологии сублимационной печати (анг. Dye-sublimation, dye-sub) и цель этой заметки - поделиться полученным опытом.

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

Chaos Constructions HackAround 2007

Время на прочтение1 мин
Количество просмотров649
<img src=«habrastorage.org/getpro/habr/post_images/c1d/247/51a/c1d24751a04c6efa06c55600c76de6c6.gif» align=«left» / hspace=«10» vspace=«10»>С 29 ноября по 2е декабря (включительно) в Санкт-Петербурге, на втором этаже ЦВЗ «Манеж» в рамках выставки "HiT 2007" пройдёт "Chaos Constructions Hack Around 2007" — фестиваль, объединяющий высококвалифицированных и весьма любознательных специалистов способных к нетривиальным, но конструктивным решениям, в просторечие называемых хакерами.

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

Фестиваль тематически посвящён:
  • Аспектам информационной безопасности;
  • Операционным системам и ПО с открытым исходным кодом;
  • Нетривиальным программно-аппаратным и сетевым решениям;
  • Мнемотехнике и методологии решения задач (LifeHack).


Адрес проведения фестиваля: ЦВЗ «Манеж», Санкт-Петербург, Исаакиевская пл., 1. Метро «Садовая» или «Невский проспект»). Карта. От Московского вокзала (ст. м. Площадь Восстания / Маяковская) до ЦВЗ «Манеж» можно добраться на троллейбусе № 5, 22, автобусе № 3, 22, 27, маршрутном такси № 180, 190.

Время проведения: с 11 до 18 часов.

Стоимость посещения всех четырёх дней фестиваля: 200 рублей.
Всего голосов 23: ↑20 и ↓3+17
Комментарии37
2

Информация

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