Pull to refresh
0
0
Aleksey Baulin @keshonok

kernel geek

Send message

Фокусы оптимизации размера исполняемых файлов ELF. Поддержка 4 ОС в 400 байт единственного бинарника

Reading time29 min
Views6.9K

В этом посте я расскажу о некоторых уловках, которыми я воспользовалась, чтобы уменьшить двоичные файлы С/С++/Python с помощью ассемблера для x86. Здесь всё крутится вокруг кодовой базы Cosmopolitan. Дело в том, что из недавнего отзыва по проекту ELKS я узнала, что мой код там всем понравился и они хотят узнать больше о том, что трюки cosmo могут дать проектам вроде «Linux-порта i8086». Я почувствовала, что мы с ребятами проекта ELKS «одной крови», ведь первое, что я написала при создании Cosmopolitan, — это загрузчик i8086, который назывался Actually Portable Executable. А ещё мне было приятно узнать, что людям, которые погрузились в эту проблему гораздо раньше меня, нравятся мои наработки в Cosmopolitan. И тогда я решила, что неплохо было бы поделиться ими с более широкой аудиторией.


[Shinmyoumaru Sukuna]

Читать дальше →
Total votes 31: ↑30 and ↓1+38
Comments17

Тенденции DDoS-атак в 4-м квартале 2021 года

Reading time10 min
Views2.7K

Помните сентябрьскую DDoS-атаку на Хабр? К старту курса по этичному хакерству делимся отчётом Cloudflare за последний квартал прошлого года, чтобы лучше понимать, к чему готовиться сегодня.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments1

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views168K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Total votes 336: ↑324 and ↓12+411
Comments300

Как получить онлайн магистратуру по CS от американского университета по цене кофе

Reading time9 min
Views36K


Поговорим о: 1) том как я попал в магистратуру по Computer Science от Georgia Tech пока жил и работал в Воронеже, 2) требованиях к поступлению, 3) стоимости, 4) моих впечатлениях от курсов, которые мне читают, 5) почему я все еще продолжаю учиться после того, как начал работать в FAANG и переехал в UK.

Читать дальше →
Total votes 41: ↑40 and ↓1+50
Comments21

HTB Horizontall или как достучаться до небес? #для самых маленьких

Reading time3 min
Views4.3K

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0

Реализации машины в qemu

Reading time5 min
Views7.2K

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

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

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments0

Уязвимости в Linux допускают возможность атаки «в один клик»

Reading time11 min
Views10K

Группа исследователей CrowdStrike Intelligence обнаружила несколько уязвимостей, влияющих на LibVNCClient в Linux. В некоторых широко используемых средах рабочего стола (например, Gnome) эти уязвимости можно эксплуатировать одним кликом мыши. Детали под катом.

Читать далее
Total votes 21: ↑18 and ↓3+17
Comments4

Перейти с Linux на macOS и не сойти с ума

Reading time9 min
Views82K

Ноутбук — главный девайс в моей жизни, я провожу за ним бо́льшую часть суток. Он должен быть лёгким, компактным и мощным. Долгое время лидером по этим параметрам был Dell XPS 13, но всё поменялось с выходом MacBook Air на процессоре M1.

Air всего на 100 граммов тяжелее XPS 13, но примерно в три раза мощнее, автономнее и не нуждается в активном охлаждении. Никогда не думал, что скажу подобное про технику Apple, но MacBook Air — самое крутое устройство в своей весовой категории на рынке, оставившее конкурентов далеко позади.

Я фанат Линукса, эта операционная система для меня больше, чем просто окружение. Это философия, новостная повестка и постоянный предмет обсуждения. Поэтому сама идея отказа от Linux в пользу другой ОС меня всегда отталкивала. Да и тот эпизодический опыт, когда приходилось что-то делать в macOS, был эмоционально неприятным.

Но появление M1 посеяло во мне зерно сомнений: мой ноутбук больше не был самым крутым и навязчивой мыслью было то, что я отказываю себе в чём-то большем. Это зерно прорастало и проросло: я купил MacBook Air с 16GB ОЗУ и 512GB SSD, с удивлением обнаружив, что он ещё и стоит дешевле моего XPS. Впереди меня ожидали настройка окружения, борьба с Docker, грусть от отсутствия привычного автодополнения в консоли и много чего ещё.

Читать далее
Total votes 106: ↑101 and ↓5+126
Comments382

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

Reading time8 min
Views68K

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

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

Читать далее
Total votes 109: ↑109 and ↓0+109
Comments27

Минимизация файла ELF – попробуем в 2021?

Reading time18 min
Views10K

Экспериментальный проект по максимальному уменьшению ELF-файла с программой Hello, World! под целевую систему Linux x64 с помощью NASM. В предыдущем опыте начала 2000-х удалось добиться размера рабочего файла в 45 байтов, но с тех пор ядро сильно изменилось. Каков же будет минимальный жизнеспособный ELF в 2021?
Читать дальше →
Total votes 51: ↑50 and ↓1+77
Comments10

Как мы лажали, открывая очередное юрлицо — на этот раз в США

Reading time11 min
Views18K


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

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

Но нет. Переходим к мякотке.
Читать дальше →
Total votes 61: ↑59 and ↓2+79
Comments11

Пошаговый запуск программы в Linux x86, или как добраться до main()?

Reading time18 min
Views24K


Статья предназначена для тех, кто хочет понять процесс загрузки программ в Linux. В частности, здесь пойдет речь о динамической загрузке файлов ELF x86. На основе изложенной информации вы сможете лучше понять, как устранять проблемы, возникающие в программе еще до запуска main.
Читать дальше →
Total votes 39: ↑38 and ↓1+58
Comments10

Как я «напрограммировал» себе скилл рисования диаграмм в скетч-стиле

Reading time5 min
Views26K

По работе мне часто приходится рисовать разные схемы, диаграммы процессов и графики, в том числе и те, которые потом используются в качестве иллюстраций для сайта, статей и презентаций. Всё бы ничего, но есть у диаграмм и графиков, сделанных в популярных онлайн-сервисах наподобие draw.io или lucidcharts одна беда — они выглядят как-то слишком уныло и «олдскульно», в духе «90-х». Всю эту инфографику хотелось бы сделать более заметной, привлекательной и душевной (и, желательно, без привлечения дизайнера).

Так у меня возникла идея создания инструмента для отрисовки диаграмм и графиков в стиле «нарисовано от руки». Об истории создания сервиса и «подводных камнях» я расскажу в этой заметке.

Читать далее
Total votes 157: ↑157 and ↓0+157
Comments38

Верю — не верю: скриншоты как доказательство в суде

Reading time3 min
Views21K

Интернет-доказательства все чаще используются в судебных спорах. Согласно ч. 3 ст. 75 АПК РФ, ст. 71 ГПК, документы, которые были получены с использованием электронных устройств, являются письменными доказательствами и могут применяться в суде. Предлагаю разобраться, как предоставить суду цифровые доказательства.

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

если человеку угрожают или его оклеветали;

в случае с фактическими договорными отношениями;

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

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

в иных ситуациях, когда доказательства находятся в Интернете.

Применение скриншотов в качестве доказательства при рассмотрении гражданских, административных и уголовных дел постоянно расширяется. Так, соответствующие изменения внесены в ГПК РФ (ст. 71), АПК РФ (ст. 75), КоАП (ст. 70), УПК РФ (ст. 81, 84). 

Читать далее
Total votes 16: ↑11 and ↓5+13
Comments59

Ontol: самые полезные материалы про визы О-1 и грин-карты

Reading time4 min
Views20K
image

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

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

Если рядом с вашим домом участились молнии, разумно запастись молниеотводом.

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

Политические риски


В нашей стране политические риски — риски, что поменяются правила игры и вы потеряете вообще всё — ровно в два раза больше чем в среднем в мире.

Из 100% уголовных дел против бизнеса :

  • 43% — личный интерес сотрудников правоохранительных органов или органов власти
  • 32% — ваш конкурент нашел силовиков и органы власти и «заказал» уголовное дело
  • 7% — действительно нарушение закона

(из доклада 2017 года Бориса Титова, уполномоченного при Президенте России по защите прав предпринимателей, пруф)

Недавний (пару недель назад) опрос 2423 ИТишников (50% Senior, 30% Middle, 10% Junior):

  • 23% в ближайшие 5 лет точно уеду (563)
  • 18% уже уехал (443)
  • 37% колеблюсь (900)
  • 21% не собираюсь уезжать в принципе (517)


Под катом подборка личных историй получения визы О-1 и грин-карты, а также полезные каналы. (За дополнения буду признателен, присылайте самые полезные материалы про США и другие страны.)
Читать дальше →
Total votes 36: ↑25 and ↓11+24
Comments33

Как в восемь раз уменьшить количество DNS-запросов в Go

Reading time6 min
Views13K

Привет, Хабр. Меня зовут Рустам. Я работаю в Ozon: админю Kubernetes и пишу на Go.

У нас очень много сервисов на Go — их количество исчисляется тысячами. Запускаются они внутри кластеров Kubernetes. А я плотно работаю с Kubernetes и заметил, что при запуске кода внутри Kubernetes для резолва одного адреса делается до десяти DNS-запросов. Это, конечно, влияет на производительность.

Я решил разобраться, как Go делает DNS-запросы. В результате мне удалось уменьшить их количество в наших проектах до одного-двух. Как у меня это получилось и можно ли использовать мой опыт в вашем проекте, я расскажу в статье.

Узнать больше про Go+DNS
Total votes 75: ↑55 and ↓20+51
Comments9

Мастера облачного криптомайнинга: тактики группы TeamTNT

Reading time8 min
Views2.5K

Киберпреступники выбирают разные способы заработка: одни идут по пути шантажа и вымогательства, как операторы шифровальщиков-вымогателей, другие зарабатывают на человеческих слабостях, «продавая» компенсации за пандемию или предлагая вложиться в новейшую перспективную криптовалюту. Есть и те, кто не стремится к попаданию в заголовки СМИ, скрытно внедряя майнеры криптовалют в системы, до которых получается добраться. В этом посте мы расскажем о TeamTNT — группировке, которая зарабатывает на нелегальном криптомайнинге в облачных Linux-системах.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments2

Как мы оптимизировали сетевой шейпер Linux в облаке с помощью eBPF

Reading time18 min
Views15K

Меня зовут Леонид Талалаев, я занимаюсь разработкой внутреннего облака Одноклассников one-cloud, про которое уже рассказывали на Хабре. 

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

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

Для управления сетевым трафиком до недавнего времени мы использовали решение на основе дисциплины Hierarchical Fair Service Queue из Linux Traffic Control. Сегодня пойдет речь про проблему масштабирования в Linux Traffic Control, известную как root qdisc locking. И про то, как нам удалось ее решить, переделав управление сетевым трафиком с использованием eBPF.

Читать далее
Total votes 50: ↑50 and ↓0+50
Comments18

Information

Rating
5,575-th
Location
Ярославль, Ярославская обл., Россия
Registered
Activity