Как стать автором
Обновить
0
Карма
0
Рейтинг
Гевейлер Григорий @DoubleG

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

  • Подписчики 17
  • Подписки 26
  • Публикации
  • Комментарии

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Информационная безопасностьСистемное программирование
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →
Всего голосов 113: ↑112 и ↓1+111
Просмотры79K
Комментарии 77

Как мы делали аркадный автомат

ГаджетыСтарое железоDIY или Сделай самИгры и игровые приставки
Почти два года назад мой друг ellanorsh написал статью «Жизнь самодельного аркадного автомата». И я хотел бы рассказать продолжение нашей истории.

Ведь рассказать есть о чем. Мы побывали на ряде мероприятий, попробовали собрать денег на постройку автомата через краудфандинг и, наконец, договорились с авторами игры Shovel Knight и сделали собственный аркадный автомат с нашим дизайном.

image
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Просмотры36K
Комментарии 19

Вы неправильно пишете животных

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


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Всего голосов 442: ↑438 и ↓4+434
Просмотры330K
Комментарии 347

Ушел из жизни еще один талантливый российский ученый

Научно-популярноеФизикаМозгЛазеры
image27 февраля 2015 в 23:31 в Москве на Васильевском спуске трагически ушел из жизни Борис Ефимович Немцов — один из известных российских ученых-физиков.

Краткая биография


Учился в Горьком, школу окончил с золотой медалью, университет с отличием. В 1976 году поступил на радиофизический факультет Горьковского государственного университета им. Н. И. Лобачевского. Двоюродный брат Немцова, сын Вилена Эйдмана — Игорь Эйдман — также учился в Горьковском университете. В 1997 году переехал в Москву.
Затем работал в научно-исследовательских институтах. Занимался проблемами физики плазмы, акустики и гидродинамики. В 1985 году, работая в НИРФИ вместе со своим дядей по матери, доктором физико-математических наук Виленом Яковлевичем Эйдманом, был соавтором В. В. Курина в статье «Предвестник и боковые волны при отражении импульсов от границы раздела двух сред». В 1985 году защитил диссертацию и получил степень кандидата физико-математических наук (тема: «Когерентные эффекты взаимодействия движущихся источников с излучением»). Автор более 60 научных работ по квантовой физике, термодинамике, акустике… Среди изобретений Немцова — акустический лазер (перегретый пар сильно охлаждается, возникает мощный инфразвук) и некоторые параметры антенны для космического корабля (при вхождении корабля в земную атмосферу из-за её нагревания связь с кораблём теряется — изобретение Немцова снимало помехи связи). Подрабатывал репетитором по физике, математике и английскому языку.

Академик В. Л. Гинзбург говорил о нём в 1997 году :
Он учился на кафедре распространения радиоволн, организованной мной на радиофаке, был аспирантом двух моих аспирантов: Эйдмана, своего дяди, и Денисова. Он по-настоящему талантливый физик, у него много хороших работ.


Внимание, это топик об ученом, лазерах и когерентности, но не о политике.
Читать дальше →
Всего голосов 273: ↑191 и ↓82+109
Просмотры46K
Комментарии 100

Искусственный рассвет

DIY или Сделай сам
Из песочницы
Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



— А, что ж так темно-то, Господи? © День радио.

Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Что же делать?
Всего голосов 187: ↑185 и ↓2+183
Просмотры119K
Комментарии 87

Набор Ruby библиотек для CMS и сайта медиа издания

Разработка веб-сайтовRubyRuby on Rails


Набор библиотек для разработки CMS медиа издания практически ничем не отличается от любого другого приложения. На примере приложения для Ленты и Ведомостей мы решили прокомментировать выбор каждой библиотеки. Описание составлено в формате обсуждения каждого гема.
Стенограмма
Всего голосов 56: ↑51 и ↓5+46
Просмотры29K
Комментарии 84

Задача об определении принадлежности точки многоугольнику

Чулан
Из песочницы
Здравствуйте, уважаемые хабравчане!
В процессе разработки приложения под Android, которое предполагает взаимодействие пользователя с графическими примитивами (точками, линиями, эллипсами, прямоугольниками и т.д.), возникла довольно неприятная ситуация: пользователь может задать произвольный многоугольник и сделать его неактивным, однако чтобы в будущем была возможность активировать данный многоугольник и продолжить с ним работь (например, переместить в другое место или добавить/удалить вершины) необходимо для неактивного объекта определить, коснулся ли пользователь данного объекта, т.е. потребовалось решить вопрос о принадлежности точки многоугольнику.

Данная задача широко известна в вычислительной геометриии и я предлагаю вашему вниманию результаты моего исследования данной темы.
Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Просмотры8K
Комментарии 13

Вторая волна коворкинг-центров: Зона действия, Flacon Coworking, Циферблат

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

Зона действия (Санкт-Петербург)


Читать дальше →
Всего голосов 54: ↑45 и ↓9+36
Просмотры12K
Комментарии 25

Обзор мозгокомпьютерного интерфейса Emotiv Epoc

Гаджеты
Вот тут давно сокрушались, что нет героя в отечестве, который бы купил какой-нибудь нейрокомпьютерный интерфейс, помучил бы его на благо сообщества и поделился с окружающими результатами мучений. Собственно есть. Я его купил и попытался использовать. Подробности с картинками под катом.

Читать дальше →
Всего голосов 159: ↑159 и ↓0+159
Просмотры54K
Комментарии 172

История одного «нарушения» авторских прав. Часть 1

Копирайт
В этом посте я расскажу про реальный случай уголовного преследования по статье 146 УК РФ, а заодно и по 273 (нарушение авторских прав и создание/распространение/использование вредоносного ПО). Я был непосредственным участником этой истории, сначала в качестве обвиняемого, а затем и подсудимого.
Читать дальше →
Всего голосов 269: ↑257 и ↓12+245
Просмотры27K
Комментарии 172

Как не стать спамером со своей уютной рассылочкой

IT-компании
image
Пользователь когда-то подписался на рассылку, но уже забыл когда, и главное зачем. Теперь ежедневно к нему падает спам, а по собственному опыту он знает, для того чтобы отписаться нужно зайти по ссылке свой профиль, найти и снять там какую-то галку а главное, помнить свой логин и пароль на давно забытом им сайте.
Его действия? «В спам!»

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

И вот, с десяток таких «отписок» и гугл будет удобно отсортировывать ваши рассылки в папочку Спам (584), у ВСЕХ ваших подписчиков.

Однако многие из нас уже успели заметить: некоторые письма в Gmail при попытке отметить их «В спам!» САМИ предлагают отписаться от рассылки в один клик.

Эта фича была введена google более года назад, но лишь единицы рассылок научились ей пользоваться. И не удивительно. В рекомендациях по осуществлению массовых рассылок, лишь косвенно упоминается о том, что Вам нужно сделать.
А сделать нужно не многое.
Читать дальше →
Всего голосов 238: ↑230 и ↓8+222
Просмотры43K
Комментарии 60

Госнаркоконтроль преследует Ализара

Законодательство в IT
Сравнительно недавно — 14 октября 2011 года — alizar перевёл и выложил на Хабрахабре статью Гленна Гринуолда «Стив Джобс и политика в отношении оборота наркотиков», автор которой завершил свой труд следующим умозаключением:

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

(Конец цитаты.)

Я не уверен, возможна ли лучшая иллюстрация осуждаемой Гринуолдом суровости, нежели та, которая последовала в реальности. Не штатовская, а вполне российская Федеральная служба по контролю за оборотом наркотиков связалась с администрацией Хабрахабра и запросила все данные на Ализара, обвиняя его в пропаганде распространения наркотиков — об этом вчера поведал в Твиттере Денис Крючков (@deniskin, создатель Хабрахабра), а Владислав Михеев пересказал в «Вебпланете».

Читать дальше →
Всего голосов 551: ↑527 и ↓24+503
Просмотры25K
Комментарии 618

© В. И. Пупкин, 2008

Типографика
Ещё одна мелочь, на которую не вредно обращать внимание — оформление знака охраны авторского права (который часто неграмотно называют «копирайтом»). К сожалению, на сайтах этот элемент подвала страницы зачастую ставят «чтобы был», и оформляют кто во что горазд. Однако, на сей счёт есть не просто сложившиеся правила, а целый ГОСТ Р 7.0.1—2003 (PDF, 652 КБ).

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

Читать дальше →
Всего голосов 91: ↑85 и ↓6+79
Просмотры65K
Комментарии 138

Памятка пользователям ssh

Настройка LinuxСистемное администрированиеСерверное администрирование
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Просмотры1.2M
Комментарии 135

Что такое grep и с чем его едят

Настройка LinuxСистемное администрирование*nix
Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
Небольшое лирическое отступление:
Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
— поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
— распечатать из файла /var/run/dmesg.boot информацию о процессоре.

К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

image

Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.
Читать дальше →
Всего голосов 188: ↑174 и ↓14+160
Просмотры489K
Комментарии 144

Блоку-НЕТ! Отступать некуда — позади оффлайн

Я пиарюсь
Bloku.NET! Запрещено Запрещать

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

Читать дальше →
Всего голосов 127: ↑112 и ↓15+97
Просмотры34K
Комментарии 210

Как отправлять push уведомления из Вашего Rails приложения

Разработка под iOSRuby on Rails
Перевод
Один из наиболее популярных способов связи мобильного приложения с сервером — отправка push уведомлений пользователю. Если Вы уже сталкивались с реализацией push уведомлений, то для Вас открытия Америки не произойдет, однако, новичкам в данной теме приходиться туго — это связанно с огромной путаницей в информации (от переводчика: действительно довольно много противоречивой, а зачастую и вовсе бесполезной информации). Именно эта путаница стала причиной написания данной статьи для WellWithMe, где я опишу разработку серверной части push уведомлений.

Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Просмотры15K
Комментарии 2

7 трюков при работе с массивами в Ruby

Ruby
Перевод
Tutorial
ruby arrays

В данной статье описаны некоторые интересные трюки как можно эффективно использовать и работать с массивами в Ruby. Конечно же, есть РубиДок и множество других ресурсов, где подробно описаны все доступные методы, но здесь я хочу поделиться именно способами использования.
Читать дальше →
Всего голосов 39: ↑28 и ↓11+17
Просмотры26K
Комментарии 6

Устанавливаем Linux-программы на смартфон под управлением Android

Блог компании Журнал Хакер


Многие владельцы Android-фонов испытывают трудности с запуском настоящего Linux-софта на своих девайсах. По всем законам он вроде должен здесь работать, да вот только для его установки почему-то нужны права root, сам он распространяется в каких-то самодельных инсталляторах, а выбор программ сильно ограничен. Эта статья предложит ответ на вопрос, почему так получилось, и подскажет решение — удобный способ установки и запуска почти любого Linux-софта в Android.
Подробности
Всего голосов 110: ↑93 и ↓17+76
Просмотры164K
Комментарии 41

Chrome extension за выходные

JavaScriptПрограммированиеGoogle Chrome
Из песочницы
image

Проблема

Как обычно поздней ночью, садясь в автобус, я достал телефон, и пока набирал “habr…” он отрубился. Я вслух подумал: “А раньше не мог сказать?”, немного пожалел, что телефоны редко пищат, пока разряжаются. А потом…

Потом мы с приятелем решили подойти к вопросу по-мужски. Он написал программулину для андроида, а я расширил Хром. О последнем и пойдёт речь.

Задача

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

Таким образом, выбор подхода к задаче оказался даже важнее скорости десятипальцевой печати.
Ну я и взялся за дело
Всего голосов 96: ↑84 и ↓12+72
Просмотры56K
Комментарии 66

Информация

В рейтинге
Не участвует
Откуда
Bogotá, Cundinamarca, Колумбия
Зарегистрирован
Активность