Date | Title | Description |
02.11.2024 | Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам | Самостоятельное обучение для разработчика — процесс, который не кончается никогда. Это касается не только джунов, но и намного более опытных мидлов и сеньоров. Однако возникает вопрос: все ли мы умеем учиться правильно? Как преодолеть свою ... |
01.11.2024 | Say goodbye to Microsoft Windows 11: Nitrux Linux 3.7.1 is the operating system you need! | If you’re tired of Windows 11 and ready for a fresh start, Nitrux 3.7.1 is absolutely worth exploring. This Linux-based distribution has just rolled out its latest update (build 311024.sp), featuring Linux 6.11.5-1 (Liquorix), a setup that ... |
31.10.2024 | Асинхронный Rust в трех частях. Часть третья: IO | Асинхронный Rust в трех частях
Введение
Часть первая: Futures
Часть вторая: Tasks
Часть третья: IO
Конечно, async/await были придуманы не для сна. Нашей целью с самого начала был ввод‑вывод (I/O), а в особенности сетевой ввод‑вывод. Вооружи... |
24.10.2024 | Пошаговое повышение производительности алгоритма | Недавно мне довелось работать над новым алгоритмом приближённого поиска ближайших соседей, который называется RaBitQ. Автор этого алгоритма уже предоставил достаточно скоростную реализацию на C++. Я попытался переписать этот алгоритм на Rus... |
24.10.2024 | Про qemu и протокол 802.1p | Наткнулся на днях на довольно забавный артефакт, и решил поделиться. Потому что в гугле по этому поводу — чуть лучше "белого шума".
В общем, довелось поднимать "playground" на платформе Cisco UCS. Немного б/у и не без ст... |
19.10.2024 | Rust 1.82.0: A New Dawn for Developers | The world of programming is ever-evolving. In this landscape, Rust stands out like a lighthouse guiding developers through the fog. The recent release of Rust 1.82.0 brings with it a treasure trove of features and improvements. This update ... |
18.10.2024 | Rust 1.82.0: cargo info, AArch64 для macOS в tier1, use, небезопасные указатели и другое | Команда Rust рада сообщить о новой версии языка — 1.82.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то... |
11.10.2024 | Hacking Hardware with a Lighter: A Journey into Electromagnetic Fault Injection | In the world of hacking, creativity is key. The tools of the trade can be as simple as a lighter. Yes, a common barbecue lighter can become a powerful weapon in the hands of a skilled hacker. This article explores the fascinating realm of e... |
11.10.2024 | The Art of Hacking: From a Lighter to a Laptop Exploit | In the world of hacking, creativity is the key. Imagine a simple lighter, often overlooked, transformed into a powerful tool for exploiting vulnerabilities in technology. This is not just a whimsical thought; it’s a reality that some hacker... |
09.10.2024 | Можно ли получить рут при помощи одной зажигалки? | Спойлер: ДА.
Элитный инструмент для хакинга; от вас скрывают, что он уже у вас есть
Прежде чем писать эксплойт, нам нужен баг. А если багов нет, то приходится быть изобретательными — тут нам на помощь приходит внесение неисправностей. Внесе... |
05.10.2024 | Древний язык программирования обновился спустя 27 лет. Что нового в Tcl/Tk 9.0? | Несколько дней назад был представлен релиз Tcl/Tk 9.0, динамического языка программирования. Он распространяется вместе с кроссплатформенной библиотекой базовых элементов графического интерфейса Tk. Релиз стал первым крупным обновлением с 1... |
28.09.2024 | Високосные секунды и трагедия упрямых дураков | Все мы пользуемся шкалой времени UTC в том или ином виде, ибо именно по ней выставляется время в каждом часовом поясе. В её основе лежит время TAI (усреднённое время 450 атомных часов, расположенных по всему миру), что по сути делает эту шк... |
16.09.2024 | Почему я предпочитаю исключения, а не значения ошибок | Качественная обработка ошибок — это ключ к созданию надёжных программ; но программистов она часто пугает, ведь всегда найдётся ещё один пограничный случай.
В традиционных объектно-ориентированных языках программирования используются специал... |
14.09.2024 | Mastering PostgreSQL Administration: A Beginner's Guide | PostgreSQL is a powerful database management system. It’s like a well-oiled machine, but only if you know how to operate it. For beginners, the journey into PostgreSQL administration can feel overwhelming. However, with the right approach, ... |
14.09.2024 | Администрирование PostgreSQL для начинающих (часть 4) | Хранилище БД
Все БД кластера хранятся в одной директории:
/var/lib/postgresql//
Это расположение по умолчанию. Оно может быть изменено путем редактирования параметра data_directory. Перед изменением директории не забывайте останавливать сер... |
14.09.2024 | Администрирование PostgreSQL для начинающих (часть 1) | Требования к читателям
Знание компьютерного аппаратного обеспечения (в особенности CPU, RAM и дисковой подсистемы).
Знание компьютерных сетей на базовом уровне.
Умение работать с ОС семейства Linux со всеми вытекающими:
Сам дистрибутив и ос... |
11.09.2024 | Руководство по межпроцессному взаимодействию (IPC) в Linux — Часть 2 | Представляю вашему вниманию вторую часть перевода статьи A guide to inter-process communication in Linux.
Первая часть перевода была посвящена общему введению в курс дела и механизму разделяемого хранилища (shared storage). В этой части буд... |
07.09.2024 | Как Linux создаёт и подсчитывает сокеты | Привет!
Если у вас уже есть некоторый опыт работы с веб-серверами, то вам наверняка доводилось попадать в классическую ситуацию «адрес уже используется» (EADDRINUSE).
В этой статье будут подробно разобраны не только предпосылки, позволяющи... |
01.09.2024 | The Evolution of Software Portability: A Journey Through POSIX | In the early days of computing, programmers faced a daunting challenge. They were shackled to the machine code of each specific architecture. Writing software was akin to crafting a unique key for every door. Each program was tied to its ha... |
01.09.2024 | The Hidden Depths of macOS: A Developer's Playground Without Admin Rights | In the world of technology, macOS stands as a fortress. Its walls are high, built to protect the secrets within. But what if you find yourself on the other side, staring at a pristine iMac without the keys to the kingdom? This article explo... |
31.08.2024 | История POSIX: путь к портируемому ПО | Как мы к этому пришли?
В ранние годы развития компьютеров программисты могли лишь мечтать о портируемости. Все программы писались непосредственно в машинном коде для каждой компьютерной архитектуры, на которой они должны были работать. Язык... |
23.08.2024 | Безопасность контейнерных сред: как отбить атаки киберпиратов | Введение в контейнеризацию
В современном мире практически ни одна разработка программного обеспечения не обходится без использования средств контейнеризации. Это связано с тем, что контейнерные среды очень удобны для хранения артефактов и з... |
22.08.2024 | K8s best practices или что будет если их не соблюдать? | Всем привет! В данной статье хотелось бы рассказать о небольшом исследовании Kubernetes ограничений и рекомендаций, а так же что будет если их нарушить и о том что это может быть в некоторых случаях полезно и даже экономически выгодно. Буде... |
04.08.2024 | Unleashing SSD Performance: The PCIe Version Dilemma | In the world of technology, speed is king. When it comes to solid-state drives (SSDs), performance hinges on many factors. One of the most debated topics is the impact of PCIe versions on Input/Output Operations Per Second (IOPS). Many beli... |
04.08.2024 | Почему новый процесс в Node порождается так медленно? | Мы в Val Town выполняем ваш код в процессах Deno. Недавно мы заметили, что под нагрузкой отдельно взятый Node-сервер Val Town не может породить более 40 процессов. На протяжении 30% процессорного времени главный поток остаётся заблокирован ... |
02.08.2024 | Тестируем SSD. Чтобы выросли IOPS, нужно всего лишь… сменить версию PCIe? | Привет, Хабр! Сегодня мы снова будем экспериментировать, но уже не с FFmpeg, как до этого, а с твердотельными накопителями. Относительно бенчмарков и их производительности принято считать, что показатель IOPS с разными версиями PCIe интерфе... |
27.07.2024 | The Power of Metrics: Safeguarding Your .NET Applications with OpenTelemetry and Prometheus | In the fast-paced world of software development, every second counts. When an application goes live, the stakes are high. Bugs can lurk in the shadows, waiting to pounce. But fear not; there are tools that can shine a light on these hidden ... |
22.07.2024 | Реверс алгоритма поиска устройств в сети | При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по оче... |
18.07.2024 | Строим свой PAM на основе Teleport | На связи команда Безопасности Wildberries — сегодня расскажем, как построить PAM на основе Teleport. Эту статью по мотивам нашего доклада на PHDays для вас подготовили руководитель департамента информационной безопасности и противодействия ... |
14.07.2024 | Как генерируется PID-ы в Linux | Обзор
Вы когда-нибудь интересовались, что происходит за кулисами, когда мы запускаем или завершаем процесс? В этом уроке мы узнаем, как Linux генерирует PID для процессов.Таблица процессов в Linux
Ядро Linux использует структуру данных, наз... |
02.07.2024 | Работаем с PyTorch на CPU | В этой статье мы рассмотрим железо, настройки, подводные камни и неочевидные вещи, которые позволят выжать всё из вашего процессора для как можно более комфортной работы PyTorch на CPU. Даже если у вас есть видеокарта, поддерживаемая PyTorc... |
26.06.2024 | Универсальный запуск | Разработка кроссплатформенных приложений давно стала обыденностью и уже не вызывает особых восторгов, но как насчет.. универсального запуска?
Представьте себе исполняемый файл, который без изменений и пересборки самостоятельно запускается в... |
21.06.2024 | Реверс-инжиниринг eBPF-программы на примере сокет-фильтра и уязвимости CVE-2018-18445 | Привет! Меня зовут Евгений Биричевский, в Positive Technologies я работаю в отделе обнаружения вредоносного ПО экспертного центра безопасности (PT ESC). Я занимаюсь исследованием различных вредоносных техник и образцов ВПО, написанием стати... |
20.06.2024 | FUSE: как написать свою файловую систему | Меня зовут Максим, я ведущий разработчик в VK. Занимаюсь инфраструктурой доставки электронной почты в проекте Mail.ru. Наша команда разработала и довела до эксплуатации файловую систему (ФС) на FUSE в рамках проекта распределённой почтовой ... |
14.06.2024 | Настройка iScsi в L3-сети для эффективной утилизации возможностей канала и СХД | После тестирования NVME over TCP, описанной тут https://habr.com/ru/companies/beeline_tech/articles/770174/, решили проверить, насколько хорошо iScsi в L3-сети работает по сравнение со специализированным решение на FC.
Настройки iScsiTL/DR
... |
12.06.2024 | Ubuntu Core 24: что нового в ОС для интернета вещей? Подробности о релизе | Несколько дней назад компания Canonical представила новый релиз одного из своих дистрибутивов. Речь идет об операционной системе Ubuntu Core 24, которая предназначена для IoT-устройств. Это LTS-дистрибутив со сроком поддержки в 12 лет. В не... |
21.05.2024 | Безопасность первична: сетевое взаимодействие и привилегии контейнеров в Docker | Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Продолжаю рассказывать о безопасности в Docker. В новой статье поговорим о сетевом взаимодействии контейнеров, правильном управлении привилегиями и огр... |
16.05.2024 | История: Redis и его создатель antirez | antirez за работой (думаем, что за работой, прим. переводчика)
В мире баз данных Redis занимает особое место. Вместо обычных таблиц или документов, являющихся главным элементом большинства баз данных, в Redis вы работаете напрямую с низкоур... |
02.05.2024 | Нельзя предполагать, что все используют UTF-8 | Как вычислять кодировку при помощи статистики
Люди говорят на бесчисленном количестве разных языков. Эти языки не только несовместимы между собой, но и представляют огромную трудность при транспиляции в среде исполнения. К сожалению, все по... |
01.05.2024 | Суслик и пингвин: кодим на Go под Linux
Заключение
Читайте также: | Язык ядра Linux, его модулей и утилит написаны на языке C. Хоть он и является старым языком и прародителем многих других, но его до сих пор используют. В экосистему линукса постепенно проникают и более молодые языки — например, Rust. Но сег... |
26.04.2024 | Как правильно передавать секреты запускаемым программам? | Эта статья о том, как правильно передавать секреты запускаемым программам.
Бывает встречаются Unix-системы, на которых некоторые администраторы передают процессам пароли в открытом виде, совершенно не заботясь о том, что их видят все пользо... |
22.04.2024 | Устройство памяти процессов в ОС Linux. Сбор дампов при помощи гипервизора | Всем привет! Я Евгений Биричевский, занимаюсь в Positive Technologies обнаружением вредоносного ПО.
Иногда для анализа ВПО или, например, для отладки какого-либо процесса может потребоваться дамп памяти процесса. Но как его собрать без отла... |
22.04.2024 | Docker — не то, чем кажется | Привет, Хабр! Меня зовут Матвей Мочалов, я — компьютерный инженер и один из авторов корпоративного блога cdnnow! Мы с вами познакомились в этом посте про историю DRM для видеоконтента. Сегодня я хочу поговорить с вами про Docker, а точнее п... |
05.04.2024 | Go-like каналы на C++ | Каналы (channels, pipes) – это удобная абстракция для построения приложений, работающих в многопоточной среде. Они используются для передачи сообщений между потоками и, одновременно с этим, как средство синхронизации потоков. Я буду ссылать... |
28.03.2024 | Как работает multiprocessing в Python под капотом | Я довольно давно пишу на Python и во многих проектах использовал multiprocessing — пакет стандартной библиотеки языка Python, который предоставляет интерфейс для работы с процессами, очередями, пулами процессов и многими другими удобными ин... |
28.03.2024 | А в чем проблема работать с файлами? | Приветствую.
Год назад меня сильно увлекла тема отказоустойчивости приложений. Я начал изучать различные аспекты ее реализации в программах и больше всего меня заинтересовал процесс работы с диском. Ресурсов для изучения много, но они все р... |
20.03.2024 | Практическое руководство по Rust. 4/4 | Hello world!
Представляю вашему вниманию четвертую и последнюю часть практического руководства по Rust.
Первая часть
Вторая часть
Третья часть
Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и ра... |
13.02.2024 | Как работает сеть в контейнерах: Docker Bridge с нуля | Временами работа с контейнерами может казаться волшебством. В хорошем смысле для тех, кто понимает как устроено внутри, и в ужасающем - для тех, кто этого не понимает. К счастью, мы уже довольно давно изучаем технологию контейнеризации, и н... |
06.02.2024 | Как я уменьшил размер образа docker на 40% | Ежедневно по работе я сталкиваюсь с Dockerfile, написал несколько из них самостоятельно, создавал контейнеры и всё такое. Но я никогда не публиковал их в реестре docker hub. Мне хотелось создать ugit — инструмент для отмены команд git (напи... |
02.02.2024 | Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные | Привет, Хабр! Я Виктор, техлид продукта CI/CD в Samokat.tech. А это, :(){ :|:& };: fork-бомба, которая создаёт свои дочерние процессы бесконечно. Запуск такой штуки в контейнере без ограничений роняет всю ноду. Не используйте в проде! Е... |
29.01.2024 | Учимся понимать события подсистемы аудита Linux | Приветствую всех любителей изучать новое. Меня зовут Рома, и я занимаюсь исследованием безопасности ОС Linux в экспертной лаборатории PT Expert Security Center.
В рамках инициативы нашей компании по обмену экспертными знаниями с сообществом... |
26.01.2024 | От винта! Смотрим движок War Thunder и говорим с его создателями | Как говорил Юрий Гагарин: "В будущем мы будем летать, много летать". В определённой мере игровой движок Dagor Engine от Gaijin Entertainment позволяет это сделать. Давайте посмотрим, как он сделан, и поговорим с его создателями!
Э... |
13.12.2023 | Запускаем Matlab внутри Docker-контейнера с поддержкой GUI в ОС GNU/Linux | Содержание
Введение
Предварительные сведения
Немного «теории» о том, как работают «иксы»
О системе безопасности / авторизации пользователей на X-сервере
«Практическая часть»
Создание изолированной Docker-сети
Включение поддержки /etc/rc.loc... |
19.11.2023 | Настройка ядра Linux с помощью ИИ, согласно ByteDance (Перевод) | Linux хорошо подходит для большинства задач, но для того, чтобы справлялся еще лучше ‑требуется настройка ядра, а это всегда непросто. У ByteDance есть предложение сделать это проще.
Ричмонд, Вирджиния: На «Linux Plumbers Conference» — встр... |
16.11.2023 | Детектирование атак на контейнеры с помощью eBPF | Привет, Хабр!
Меня зовут Илья Зимин, я аналитик-исследователь угроз в компании R-Vision. Сегодня в статье я расскажу о возможностях обнаружения атак на контейнеризированные приложения с помощью такого инструмента, как eBPF, на примере прием... |
16.11.2023 | Решаем задачу асинхронного ввода-вывода с библиотекой Asio | Привет, Хабр! Меня зовут Илья Казаков, я C++ разработчик в команде систем хранения данных компании YADRO, одна из моих задач — реализация эффективных IO-bound программ под Linux.
На одном из проектов мы с командой использовали Asio — библио... |
02.11.2023 | Доклад Алексея Старовойтова на Linux Security Summit Europe 2023: BPF и безопасность | Виртуальная машина eBPF, работающая в ядре Linux, приближается к десятилетнему юбилею своего включения в состав Linux; за это время она успела превратиться в инструмент, имеющий целое множество применений в этой экосистеме. Алексей Старовой... |
12.10.2023 | Сборка мусора: как это делается в системном программировании | Давайте поговорим об одной из наиболее критичных по производительности программ, которой вы пользуетесь ежедневно: о вашей операционной системе. Поскольку при каждом разгоне железа вы получаете дополнительную вычислительную мощность, операц... |
05.10.2023 | Выделение регионов памяти в C++: советы и приёмы | Эта статья обсуждалась на Hacker News.
В течение минувшего года я шлифовал мой подход к выделению регионов. Практика показывает, что это эффективный, простой и быстрый подход; обычно его используют в качестве средства для сборки мусора без ... |
13.09.2023 | Магия степеней двойки, или Запуск кучи docker контейнеров | Праздник «день программиста» отмечается в 256-й день года, а это 2⁸, т.е. два в степени восемь. Это не просто так — на степенях двойки многое завязано в компьютерах и программировании, они повсюду. Настолько повсюду, что иногда даже слишком... |
21.08.2023 | Как работает компьютер: глубокое погружение (на примере Linux) | Введение
Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины.... |
09.08.2023 | Что происходит, когда запускаешь «Hello World» в Linux | Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.
print("hello world")
Вот как это выглядит в командной строке:
$ python3 hello.py hello world
Но внутри происходит гора... |
08.08.2023 | Seastar как платформа для опорной сети 5G и краткое сравнение с Boost.Asio, userver и другими | Я исследовал некоторые open-source фреймворки — кандидаты на платформу для опорной сети пятого поколения операторского уровня, и хочу поделиться своими выводами. Я сравню Seastar, mTCP, Boost.Asio, userver и ACE, расскажу, почему примитивы ... |
08.08.2023 | Высокодоступные кластеры PostgreSQL с Patroni: Ваша очередь протестировать сценарии отказов | Пару недель назад (перевод статьи от 2021 г.) мы с Джобином (Jobin) сделали небольшую презентацию в рамках Percona Live Online с названием, подобным теме этой статьи: "PostgreSQL HA с Patroni: Сценарии отказов и способы восстановления ... |
01.08.2023 | Диск — это просто куча битов | Доводилось ли вам слышать утверждение, что диск или память — это «просто куча битов?»
Не знаю точно, откуда эта идея пошла, но она вполне разумна и в некоторой степени рассеивает таинственный ореол вокруг компьютеров. Например, она опроверг... |
20.07.2023 | Одноплатный компьютер с 3G «за косарь». Что Orange Pi предлагает по цене ящика пива? | Каждый год выпускается с десяток новых моделей одноплатных компьютеров. Свежие девайсы представляют как старые и уважаемые фирмы по типу Raspberry Pi, Orange Pi или Banana Pi, так и относительные новички на рынке — Repka Pi, или, например, ... |
22.06.2023 | Оптимизация производительности запросов в ClickHouse: как ускорить неускоряемое | Привет, Хабр! Меня зовут Максим Кита, я разработчик баз данных, специализируюсь на анализе, планировании и выполнении запросов, а также на оптимизации производительности.
Статья была подготовлена в начале года, когда я еще работал в ClickHo... |
19.06.2023 | Дерево Киви для поиска шаблонов по тексту | Киви - это не только птица.
История этого эксперимента началась где-то в 2022 году с желания фильтровать поступающую из разнородных каналов информацию. В современном мире люди вынуждены находиться в бурном потоке всевозможных новостей, публ... |
16.06.2023 | 60 антипаттернов для С++ программиста, часть 6 (совет 26 — 30) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
09.06.2023 | 60 антипаттернов для С++ программиста, часть 3 (совет 11 — 15) | Перед вами обновлённая коллекция вредных советов для C++ программистов, которая превратилась в целую электронную книгу. Всего их 60, и каждый сопровождается пояснением, почему на самом деле ему не стоит следовать. Всё будет одновременно и в... |
09.06.2023 | Простым языком о простом NGINX UNIT | Содержание
Введение
Что такое Nginx Unit?
Установка
Конфигурация
Слушатели
Маршрутизация
Приложения и языковые модули
Простое приложение
Сбор логов
Установка сертификатов
Возможные проблемы при работе
ЗаключениеВведение
Доброго времени суто... |
07.06.2023 | Разбор и обнаружение уязвимости OverlayFS (CVE-2023-0386) | Привет, Хабр!
Я Алексей, исследователь‑аналитик киберугроз в компании R‑Vision. Сегодня я продолжу выявление вредоносных активностей в Linux-системах и рассмотрю новую критичную уязвимость, получившую идентификатор CVE-2023-0386. Уязвимость... |
31.05.2023 | Трассировка стека вызовов в среде кооперативной многозадачности: стектрейсы, файберы, два ствола | Персонаж с картинки — Трейсер из игры Overwatch
Привет, Хабр! Для отладки и анализа производительности часто используется трассировка (сбор) стека вызовов aka стектрейс. И если для трассировки стека различных потоков выполнения есть системн... |
28.05.2023 | Что для вас Linux? Или как устроен запуск процессов | Как бы вы ответили на вопрос, что такое операционная система?
Скорее всего, вы легко сможете ответить на этот вопрос человеку далекому от IT, но подобный вопрос вам может задать, например, HR - в попытке переманить вас в какой-нибудь Facebo... |
24.05.2023 | eBPF в руках атакующего: обнаружение вредоносных модулей | Привет, Хабр!
Меня зовут Алексей, я занимаюсь исследованием и анализом киберугроз в R-Vision. Сегодня я хочу поговорить об eBPF (extended Berkeley Packet Filter) - технологии, с помощью которой можно запускать различные программы внутри ядр... |
21.05.2023 | Расследуем фантомные чтения с диска в Linux | Не так давно один из наших пользователей сообщил нам о случае странного использования оборудования. Он при помощи нашего клиента ILP (InfluxDB Line Protocol) вставлял строки в свою базу данных QuestDB, но вместе с операциями записи на диск ... |
18.05.2023 | Зачем рассказывать про контейнеризацию в 2023 году | Техножрец DevOps бережно описывает документацию по проекту
Опытные специалисты с характерным оттенком глаз могут справедливо возмутиться, что это всё уже давным-давно разжёвано и вообще RTFM. И будут отчасти правы. Тем не менее приходят нов... |
28.04.2023 | Полезен ли сегодня быстрый обратный квадратный корень из Quake III? | В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень лю... |
28.04.2023 | Тренды Kubernetes и контейнеризации в 2023 году | Какие вызовы стоят перед Kubernetes? Каким будет текущий, 2023 год? Что ждет Kubernetes в будущем? Мы проанализировали различные профильные исследования и постарались выделить все самое интересное, чтобы ответить на эти и другие вопросы. Ра... |
25.04.2023 | Учим домашний сервер Linux засыпать при простое и просыпаться по запросу
Как я этого добился | Всё началось с, казалось бы, обыденного изменения в моём домашнем сервере для хостинга бэкапов Time Machine: я хотел, чтобы он уходил в сон, когда находился в состоянии простоя, и пробуждался при необходимости. Уход в сон при простое — каже... |
13.04.2023 | Postgres под капотом. Часть 5. Простой SELECT запрос | Приветствую!
На прошлом шаге мы изучили цикл бэкэнда в общих черта. В этой части рассмотрим какой путь проход простой SELECT запрос. Представим у нас есть таблица users
create table users( id integer generated always as identity, email varc... |
12.04.2023 | Kubernetes 1.27: обзор нововведений | Этой ночью вышла новая версия Kubernetes — 1.27. Среди главных изменений — переход на собственный полноценный реестр registry.k8s.io, обновление запросов и лимитов пода «на месте» — т.е. без необходимости перезапускать под или его контейнер... |
29.03.2023 | Анализ и обнаружение Dirty Pipe | Привет, Хабр!
Меня зовут Алексей, в компании R-Vision я занимаюсь исследованием и анализом киберугроз. И сегодня я бы хотел поговорить с вами о Dirty Pipe (CVE-2022-084) – одной из критичных уязвимостей Linux ядра для повышения привилегий.Т... |
29.03.2023 | Анализ и обнаружение Dirty Pipe | Привет, Хабр!
Меня зовут Алексей, в компании R-Vision я занимаюсь исследованием и анализом киберугроз. И сегодня я бы хотел поговорить с вами о Dirty Pipe (CVE-2022-084) – одной из критичных уязвимостей Linux ядра, которая позволяет злоумыш... |
27.03.2023 | Когда один TCP-порт может быть поделён | Вы замечали, как простые вопросы иногда приводят к сложным вопросам? Сегодня мы попытаемся подступиться к одному из таких вопросов. Категория – наша любимая: сетевые аспекты Linux. Когда два TCP-сокета могут разделять локальный адрес?
Если ... |
27.03.2023 | Когда один TCP-порт может быть поделён | Вы замечали, как простые вопросы иногда приводят к сложным вопросам? Сегодня мы попытаемся подступиться к одному из таких вопросов. Категория — наша любимая: сетевые аспекты Linux. Когда два TCP-сокета могут разделять локальный адрес?
Если ... |
22.03.2023 | DevSecOps гайд: от новичка до эксперта | DevOps подразумевает автоматизацию процессов сборки, настройки и развертывания ПО. Плюс — помогает наладить работу айтишников с другими подразделениями в компании: сократить time-to-market при запуске новых продуктов, снизить время разрешен... |
17.03.2023 | Node.JS: заменили модуль SSH2 на OpenSSH и снизили задержки eventloop в 15 раз | Почему SSH ?
Нам нужно выполнять shell и sql команды на серверах с PostgreSQL, например чтение файла лога, снятие статистики, поиск блокировок. Консольный доступ на большинстве серверов уже реализован через SSH, а с доступом к экземплярам P... |
15.03.2023 | Защитите свои рабочие нагрузки Kubernetes с помощью gVisor | Все мы знакомы с контейнерами и любим их. Контейнеры используют одно и то же ядро хоста (host kernel), что делает их довольно мобильным и лёгким решением. С другой стороны, мы бы предпочли снизить риск причинения вреда хост‑машине или опера... |
10.03.2023 | Как я заставил работать Netflix на Asahi Linux | Год назад я купил макбук. Полгода назад macOS на нем сказала "ой, все", и он окирпичился. Я решил не переустанавливать систему, а попробовать Asahi Linux, и пока что не пожалел об этом. Хотя одна вещь все же раздражала — не работа... |
04.03.2023 | Взаимодействие между процессами на С++ и PHP. Сокеты, семафоры и разделяемая память | Доброго всем дня!
Хочу рассказать о своём практическом опыте реализации взаимодействия между процессами в среде Linux и попытках сделать обмен максимально возможно эффективным. Сравним разные виды сокетов, задействуем примитивы синхронизаци... |
02.03.2023 | PostgreSQL под капотом. Часть 4. Цикл бэкэнда | Приветствую.
Продолжаем изучать работу PostgreSQL под капотом. Сегодня рассмотрим работу главного цикла бэкэнда. Продолжаем с места где остановились — прямо перед главным циклом. Файл входной точки располагается в src/backend/tcop/postgres.... |
28.02.2023 | Как работает Docker Desktop Networking | Современные приложения активно используют сети. Обычное дело, когда во время сборки apt-get/dnf/yum/apk install устанавливает пакет из репозитория пакетов дистрибутива Linux. При выполнении команды приложение может захотеть подключиться к в... |
14.02.2023 | Стеклянная луковица dns внутри k8s | Бесспорно, тема резолвинга dns запросов внутри k8s неоднократно поднималась на хабре и вставала ребром перед многими инженерами поддерживающими k8s кластера. Снимая слой за слоем, попытаемся разобраться как резолвятся dns записи внутри k8s.... |
31.01.2023 | Архитектура PostgreSQL. Часть 3. Инициализация бэкэнда | Приветствую!
Продолжаем изучение работы PostgreSQL. Мы остановились на моменте общей инициализации процесса. Сегодня мы рассмотрим процесс инициализации Postgres — входную точку до основного цикла.
PostgresMain — точка входа для процесса бэ... |
26.01.2023 | eBPF в production-условиях | У технологии eBPF много поклонников. Она предлагает множество плюсов, но в работе с ней есть и некоторые минусы, сложности и ограничения. Давайте разберемся со всем этим.
Данный материал подготовлен на базе выступления “eBPF в production-ус... |
24.01.2023 | Как построить WaitGroup на основе 32-разрядного целого числа | В Go есть приятная утилита для синхронизации, именуемая WaitGroup, которую могут ожидать одна или несколько горутин. Это требуется для конкурентного завершения задач. В других языках обычно действует следующее соглашение по завершению задач... |
27.12.2022 | Методы обеспечения безопасности контейнеров Docker | Сегодня Docker является одним из самых популярных инструментов в области контейнеризации. В основе Docker заложена концепция использования контейнеров. С технической точки зрения контейнер — это процесс, наподобие тех, которые запускаются в... |
16.12.2022 | Может ли Java-приложение использовать больше памяти, чем размер кучи | 1. Введение
Возможно, вы замечали, что Java-приложение может превышать лимит памяти, указанный в параметре -Xmx (максимальный размер кучи). Дело в том, что JVM помимо кучи использует и другие области памяти.
Давайте начнем со структуры памя... |
12.12.2022 | PVS-Studio и RPCS3: лучшие предупреждения в один клик | Best Warnings — режим анализатора, оставляющий в окне вывода 10 лучших предупреждений. Мы предлагаем вам ознакомиться с обновлённым режимом Best Warnings на примере проверки проекта RPCS3.
Best Warnings — это специальный механизм для первог... |