Обновить
256K+

Linux *

Пишем под *nix

360,99
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Торвальдс рассказал, как превратил Linux из проекта одного человека в коллективную работу с помощью друзей и коллег

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели16K

Линус Торвальдс и его друзья рассказали журналисту The Register Стивену Дж. Вогану-Николсу, как сольный проект на Linux превратился в «глобальный джем-сейшен».

Читать далее

Intel 440BX: из Linux 7.0 исчезает последний след старого чипсета

Время на прочтение5 мин
Охват и читатели13K

Платы на базе Intel 440BX появились в конце девяностых и быстро стали популярными. Чип официально поддерживал шину 100 МГц, но многие платы работали и на 133, что особенно ценили любители разгона. AGP 2x, до 1 ГБ SDRAM и южный мост PIIX4E делали его вполне универсальной платформой для своего времени. Такие системы до сих пор можно запустить, если повезет с комплектующими и состоянием платы. Они остались на руках энтузиастов, а также на промышленных предприятиях, где часто не нужны рекордные мощности. Работает, и ладно.

Но статья не о материнках, а о самом процессоре, вернее, его исходе из Linux. Дело в том, что этот этап истории закончился. В текущей ветке ядра Linux, из которой будет собрана версия 7.0, удален драйвер EDAC для 440BX. Это был последний специализированный модуль, связанный с этим чипсетом. Он давно не работал корректно и годами не обновлялся, но формально оставался в дереве исходников. В Linux 7.0 этой поддержки уже не будет. Давайте вспомним, что за чипсет, а также посмотрим, почему его удаляют из ядра. Поехали!

Читать далее

Шпаргалка по поиску узких мест в Linux: топ утилит на все случаи жизни

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели40K

Многие уже видели старенькую схему Брендана Грегга, где каждой подсистеме сопоставлены CLI-утилиты. Она правда полезная, но когда «горит», мы бежим в интернет, а не выискиваем систему и команду. В статье я собрал тулзы с картинки, а также добавил опенсорсных утилит, которые пригодятся для мониторинга. 

Читать

Я пишу свой терминал с нуля, чтобы понять как работает компьютер

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.4K

Что происходит, когда вы вводите ls в терминале? Как 2 буквы превращаются в список файлов на экране? Я решил разобраться и написал свой терминал с нуля на C++.

В этой статье я объясняю через метафору ресторана, как работают три магических системных вызова — fork(), exec() и wait() — которые лежат в основе любого терминала. Вы узнаете, почему cd нельзя сделать обычной программой, как работает перенаправление >, и какой коварный баг я поймал из-за непонимания процессов. Без сложной теории — только практика и понятные объяснения.

Читать далее

Небезопасный Linux и как с ним бороться

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Когда говорят о безопасности операционных систем, Linux почти всегда фигурирует в качестве выбора по умолчанию. Это представление основано на реальных свойствах платформы: открытый исходный код, развитая модель прав доступа, сильные инструменты изоляции процессов и развитая культура обновлений. Но реальность — сложнее теории. Безопасность Linux — это не встроенное свойство системы, а результат правильной настройки, регулярного обслуживания и глубокого понимания того, как система устроена изнутри.

А вот тут есть нюансы

Контроль целостности с помощью inotify, недостатки инструмента

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.2K

Привет, Хабр! Если интересно проанализировать недостатки инструмента inotify с позиции решения ИБ-задачи контроля целостности (именно самого инструмента в его первозданном виде), то добро пожаловать под кат!

Введение

Давайте поговорим о такой задаче информационной безопасности, как контроль целостности объектов файловой системы.

Какие инструменты контроля целостности в Linux приходят сразу на ум?

AIDE (Advanced Intrusion Detection Environment)
AFICK (Another File Integrity Checker)
tripwire
wazuh
OSSEC

Из перечисленных инструментов aide, afick и tripwire работают по принципу «редкого» мониторинга, а wazuh, ossec — постоянного (более подробно эти понятия раскроются дальше).

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

Мы не будем досконально рассматривать сам механизм ядра Linux, хорошего материала на эту тему достаточно, в том числе и на Хабре. Также не станем проводить глубокий анализ работы прекрасных утилит inotify-tools или incron. Речь пойдет именно про сам inotify в его первозданном виде без каких-либо обвязок и библиотек. Нам важно понять, с какими проблемами можно столкнуться в случае проектирования ПО, использующего сам inotify. Что касается inotify-tools, то здесь мы посмотрим на то, закрывают ли утилиты данного пакета описанные проблемы.

Читать далее

Тетрис в ядре Linux

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели19K

Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра.

Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос — да, возможна, но использовать такие возможности в конечном продукте не стоит.

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

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

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

Читать далее

Как работают руткиты и можно ли им противодействовать на примере Singularity

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели11K

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

Читать далее

Как обновлять антивирусные базы и базы СОВ в Secret Net Studio 8.10 и 8.13

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели9.8K

В Secret Net Studio 8.10 и 8.13 обновление антивирусных баз и баз СОВ через локальный источник часто вызывает сложности: при малейшей ошибке в структуре каталогов базы просто не применяются.

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

Материал основан на практическом опыте эксплуатации СЗИ и будет полезен администраторам, работающим в изолированных и защищенных контурах.

Читать далее

Настраиваем безопасный DNS: приватность, DNSSEC и DoT на практике

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели16K

DNS — один из самых недооценённых компонентов инфраструктуры. Он есть везде, но по умолчанию почти всегда небезопасен: запросы ходят в открытом виде, легко подменяются, логируются провайдерами и могут использоваться для атак.

В этой статье покажу, как настроить безопасный и приватный DNS-резолвер на базе Unbound:

Читать далее

Как я сделал рабочий pgAdmin4 Desktop для Arch Linux и почему это оказалось сложнее, чем кажется

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели9.6K

pgAdmin4 - де-факто стандартный GUI для PostgreSQL.
И при этом на Arch Linux его Desktop-версия годами находится в полурабочем состоянии.

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

Если вам тоже надоело чинить pgAdmin после каждого обновления Python или Electron - это для вас.

Читать далее

Физик проанализировала более 100 000 «исправленных» багов ядра Linux

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели31K

В вашем ядре сейчас есть баги, которые не найдут в течение многих лет. Я знаю это, потому что проанализировала 125 183 из них, каждый в 20-летней git-истории ядра Linux помечен прослеживаемым тегом Fixes:.

Средний баг ядра существует 2,1 года. А некоторые подсистемы намного хуже: драйверы CAN‑шины [шины сети контроллеров] — в среднем 4,2 года, работа с сетью SCTP4,0 года. Самый долгоживущий баг в моём наборе данных — переполнение буфера в ethtool — сохранялся в ядре 20,7 лет. Подробно остановлюсь на утечке памяти из‑за подсчёта ссылок в netfilter, существовавшей 19 лет.

Я создала инструмент, который выявляет 92% исторических багов в отложенном тестовом наборе данных о времени коммита. Вот что я узнала.

Читать далее

Почему системные вызовы обходятся дорого: углубляемся в дебри Linux

Время на прочтение20 мин
Охват и читатели14K

Здесь рассказано, как именно Linux обрабатывает системные вызовы в архитектуре x86-64, и почему при профилировании они выглядят как дорогостоящие операции.

Читать далее

Ближайшие события

Практическое применение eBPF: serverless-платформа с поддержкой TCP-приложений

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.2K

Привет! Меня зовут Дима Веселов, уже три года я развиваю облачные технологии в команде Evolution App Services как техлид. Мой путь начинался с классической backend-разработки на Python, но со временем я все глубже погружался в то, как работает инфраструктура, сетевые протоколы, Kubernetes. Сегодня я хочу рассказать, как eBPF буквально в два присеста позволяет делать то, что раньше требовало невероятных усилий.

Кому будет полезен этот материал? В первую очередь разработчикам PaaS-платформ, DevOps-инженерам и архитекторам, которым тесно в рамках классического HTTP-only serverless. Расскажу, как обеспечить масштабирование с нуля для любых TCP-приложений без переписывания их кода.

Читать далее

Защита для домашнего сервера — настраиваем защиту через VPN-доступ за один вечер

Уровень сложностиПростой
Время на прочтение25 мин
Охват и читатели23K

Показываю, как за один вечер настроить WireGuard VPN с Nginx и закрыть сервисы от всего интернета, без сложной сетевой инженерии.

Читать далее

Продолжение темы доступа к ресурсам сети интернет из домашней сети Tor + Privoxy + Squid: HTTP и SOCKS5 proxy

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели1.8K

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

Со времени публикации статьи, благодаря, в том числе, комментариям к статье, техническое решение получило развитие.

Дополнительно потребовалось:

Читать далее

Linux 6.19: итоги шестой ветки и переход к 7.0. Что нового и что изменилось?

Время на прочтение6 мин
Охват и читатели9.9K

Итак, спустя два месяца работы вышел релиз ядра Linux 6.19. В него вошло больше 15 тысяч исправлений от 2000 разработчиков. Патч получился солидным — больше 50 мегабайт, изменения затронули почти 14 тысяч файлов. Основная часть работы традиционно пришлась на драйверы устройств, архитектурный код и сетевой стек. А еще появилось несколько заметных изменений, которые касаются серверных нагрузок, виртуальных сред, сетей и встроенных девайсов. 

Кстати, сразу после этого анонса Линус Торвальдс объявил о переходе к ветке 7.0. Почему и зачем? Давайте разбираться. 

Читать далее

Пошаговое руководство: Установка отказоустойчивого кластера Kubernetes 1.35 с помощью kubeadm на Ubuntu 24.04

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели7.2K

Полное руководство по развертыванию высокодоступного кластера Kubernetes 1.35 на Ubuntu 24.04

Эта подробная техническая статья представляет собой пошаговое руководство по созданию отказоустойчивого кластера Kubernetes версии 1.35 с использованием утилиты kubeadm. В руководстве рассматривается развертывание производственного кластера с тремя master-нодами и тремя worker-нодами, что обеспечивает высокую доступность и отказоустойчивость.

Читать далее

ОС linux на btrfs subvolume. Изобретаем велосипед вместо дистрибьюторов

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.4K

Не все инсталляторы linux могут установить систему на btrfs subvolume. Ни один инсталлятор не может установить систему с применением nocow и compress только для определенных subvolume.

На примере Astra linux 1.8.4 с максимальным уровнем защищенности (включен МКЦ и МРД) и написанных мною скриптов для автоматизации я покажу, как перенести установленную систему на btrfs subvolume, а также установить nocow только у необходимых subvolume. Дополнительно будет описан второй скрипт для создания и восстановления снимков.

Читать далее

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

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели288K

Привет, Хабр!

Это продолжение серии про обход блокировок Telegram. В первой части мы подняли MTProxy на nineseconds/mtg с Fake TLS. Работает, подключаешь и забываешь. Но есть нюанс.

Fake TLS маскирует протокол. DPI смотрит на пакеты и видит обычный TLS к 1c. Всё красиво, пока к вашему серверу не придёт краулер и не попробует на него зайти.

Читать далее