Обновить
256K+

Linux *

Пишем под *nix

414,96
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности
Формат публикации

FUSE: как написать свою файловую систему

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

Меня зовут Максим, я ведущий разработчик в VK. Занимаюсь инфраструктурой доставки электронной почты в проекте Mail.ru. Наша команда разработала и довела до эксплуатации файловую систему (ФС) на FUSE в рамках проекта распределённой почтовой очереди. В проекте требовалось реализовать сетевую ФС, которая сохраняет данные в трёх копиях, в разных ЦОДах. Цель — повысить отказоустойчивость, чтобы даже полный выход из строя одного ЦОДа не приводил к нарушениям SLA. Эта статья для всех, кто интересуется файловыми системами и хранением данных. Мы обсудим:

- зачем писать свою ФС;

- как написать свою ФС с помощью фреймворка FUSE;

- какие подводные камни есть у эксплуатации FUSE в production.

Эта статья — результат трёх лет разработки ФС. Сейчас самое время заварить чай, рассказ будет долгим. 

Заварить чай и читать

Разработчики Debian 10 напомнили пользователям о необходимости обновления до конца месяца

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

Пользователям Debian 10 необходимо обновить систему до 30 июня. Как напоминают разработчики, в этот день закончится долгосрочная поддержка продукта.

У пользователей есть два варианта: перейти на Debian 11, и в этом случае следующее обновление нужно будет сделать через два года, либо на Debian 12 и обновиться в 2028 году.

Читать далее

Проект инструментария по управлению каталогами Active Directory, Samba DC и FreeIPA. Часть 1: Постановка задачи

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

Привет, Хабр! Наша инициативная группа приступила к работе над интересным проектом, который претендует на определенную значимость в масштабе отечественной ИТ-индустрии. Речь идет об универсальном веб-инструментарии для централизованного управления разнородными службами каталогов для крупных холдингов и корпораций, будь то Microsoft Active Directory (MS AD), либо службы каталогов, основанные на Samba DC или FreeIPA. Разрабатываемое решение позволит осуществлять управление наиболее востребованными функциями из единой точки доступа вне зависимости от типа используемых в доменах служб каталогов.

Читать далее

В systemd 256.1 исправлена проблема в systemd-tmpfiles, приводившая к удалению всех домашних каталогов раздела /home

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

19 июня 2024 года вышла подсистема инициализации и управления службами в Linux systemd 256.1, где исправлена проблема в systemd-tmpfiles --purge, приводившая к удалению всех домашних каталогов раздела /home при выполнении команды systemd-tmpfiles --purge, добавленной в systemd 256 для удаления всех файлов и каталогов, созданных через настройки в tmpfiles.d. Релиз стабильной версии systemd 256 состоялся 11 июня.

Читать далее

Представлен выпуск дистрибутива SysLinuxOS 12.4, построенного на пакетной базе Debian 12 и нацеленного на...

Время на прочтение1 мин
Охват и читатели29

Представлен выпуск дистрибутива SysLinuxOS 12.4, построенного на пакетной базе Debian 12 и нацеленного на предоставление загрузочного live-окружения, оптимизированного для системных интеграторов и администраторов.

Читать дальше →

Представлен новый способ использования Linux на устройствах на базе Android — проект Lindroid

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

Разработчик Эрфан Абди под ником Khode_Erfan представил новый способ использования Linux на мобильных устройствах на базе Android в рамках проекта Lindroid.

Читать далее

Релиз Thunderbird 127.0

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

Опубликована новая версия Mozilla Thunderbird — бесплатного кроссплатформенного приложения для управления электронной почтой и новостными лентами. 

Читать далее

«Роса» выпустила новую версию платформы оркестрации ОС и ПО с возможностью миграции с Windows на российские системы

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

Компания «Роса» представляет новую версию платформы для управления IT‑инфраструктурой «Роса Центр управления 1.2». По словам разработчиков, в новом релизе добавлена возможность проводить автоматизированную миграцию рабочих мест пользователей с операционной системы (ОС) Windows на российские Linux‑подобные система, например, «Роса Хром», «РедОС», Astra Linux или «АльтЛинукс».

Читать далее

Дроиды и питоны: работаем с ADB на Python

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

Однажды, в одну из бессонных ночей, я думал, как можно автоматизировать рутинные действия на андроид-смартфоне. Ну вы же знаете программистов - их хлебом не корми, дай только что-то автоматизировать. Будь это просто создание каких-то отчетов или сортировка файлов.

И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.

В этой статье я рассмотрю как работать с ADB через python.

Если вы - разработчик или тестировщик приложений для Android, просто обычный программист или юзер - то вы попали по адресу.

Читать далее

Начинаем утреннюю зарядку для тех, кто смотрит нас вечером, или основы сбора логов в ОС Astra Linux Special Edition

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

Всем привет! Меня зовут Михаил, я разработчик в команде, которая создает ОС Astra Linux.

Тема логирования в дистрибутивах Linux всегда живо обсуждается как среди наших клиентов и партнёров, так и внутри компании.

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

Описанные выше пробелы в знаниях сообщества побудили меня подумать над тем, как помочь коллегам сориентироваться в непростом хитросплетении путей, по которым запись лога проходит от исходной программы до конечного файла. Так мне пришла идея написать цикл статей, посвященный логированию в операционной системе Astra Linux Special Edition.

Читать далее

«Базальт СПО» создала открытую библиотеку libdomain для управления службами каталогов

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

«Базальт СПО» разработала и развивает открытую библиотеку libdomain, предназначенную для создания и применения инструментов администрирования доменов с различной организацией: Samba, FreeIPA, Active Directory, OpenLDAP. Это упрощает выполнение проектов по переводу ИТ-инфраструктуры на российское ПО.

Библиотека включена в независимый открытый репозиторий проекта «Сизиф» и в 11 программную платформу (p11).

В libdomain 0.9.13 реализованы:

Читать далее

Ubuntu Core 24: что нового в ОС для интернета вещей? Подробности о релизе

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

Несколько дней назад компания Canonical представила новый релиз одного из своих дистрибутивов. Речь идет об операционной системе Ubuntu Core 24, которая предназначена для IoT-устройств. Это LTS-дистрибутив со сроком поддержки в 12 лет. В нем немало важных нововведений, изменений, о которых многим читателям Хабра будет полезно узнать. Подробности — под катом.

Читать далее

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

Торвальдс в роли великодушного пожизненного диктатора Linux решил перенести код sched_ext в ветку Linux 6.11

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

Линус Торвальдс воспользовался ролью великодушного пожизненного диктатора Linux и объявил о своём решении перенести код расширяемого планировщика (extensible scheduler) sched_ext (патчи sched_ext v6) в рабочую ветку Linux 6.11 (находится в разработке, текущий релиз Linux 6.9), хотя против этого действия были некоторые мейнтейнеры проекта. Торвальдс считает, что код sched_ext достаточно готов и представляет реальную ценность для основного ядра Linux. По его мнению, не стоит тянуть с sched_ext, продолжая работать с этим компонентом вне рабочей ветки будущей версии ядра Linux.

Читать далее

Вышла стабильная версия systemd 256

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

11 июня 2024 года состоялся релиз стабильной версии подсистемы инициализации и управления службами в Linux systemd 256 с run0 (на замену sudo), systemd-vpick, importctl и другими новыми функциями.

Читать далее

Релиз Winlator 7.0, окружения для запуска Windows-приложений в Android

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

Состоялся релиз открытого проекта окружения для запуска Windows-приложений в Android под названием Winlator 7.0. Исходный код проекта написан на языках C и Java и опубликован на GitHub под лицензией MIT. Версия Winlator 6.0 вышла в марте этого года.

Читать далее

Ещё о красоте в простой формуле

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

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

Читать далее

Selectel выходит на рынок инфраструктурного ПО 🖥 Мы начали разработку собственной серверной операционной системы на...

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

Selectel выходит на рынок инфраструктурного ПО 🖥

Читать дальше →

Профилирование: что использовать для сбора информации о работе программы под Linux

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

Представим ситуацию: вы молодой и перспективный специалист инжиниринга производительности, который устроился в крупную IT-компанию. Ваша задача — выполнить оптимизацию определенного продукта, который должен заработать быстрее. Вы почитали об этом проекте, поняли, в чем основная суть, и даже запустили нагрузочные тесты, показывающие потенциал роста. Какой будет ваш первый шаг для поиска узких мест? Конечно, сперва стоит заняться профилированием приложения, чтобы обнаружить код, исполнение которого занимает больше всего времени. Но какой профилировщик использовать для первого осмотра? Давайте попробуем в этом разобраться.

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

Больше

Почему MMAP не лучший выход

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

Доступ к файлам через отображение-в-память (mmap) — это способность некоторых операционных систем отобразить содержимое какого-либо файла в адресное пространство программы. Сама программа получает доступ к содержимому файла через указатели, как если бы сам файл был бы целиком загружен в оперативную память. Операционная система прозрачно загружает части файла в оперативную память, и автоматически выгружает их, когда памяти не хватает.


MMAP захватила умы программистов СУБД на многие десятилетия, как альтернатива буферу данных. И вот здесь следует отметить, что в mmap имеются серьёзные проблемы с корректностью и скоростью работы с данными в современных СУБД. В реальности, некоторые известные СУБД сперва использовали mmap для работы с "больше-чем-вмещается-в-память" базами данных, но вскоре обнаружили эти скрытые ограничения, которые принудили их к самостоятельному управлению файловым вводом/выводом, после заметных трат на инженерные исследования. В этом смысле mmap и СУБД подобны сочетанию кофе и острой пищи: неудачное сочетание, которое не очевидно, пока сам не попробуешь.


Покуда разработчики по прежнему пытаются использовать mmap в новых СУБД, мы написали эту статью, чтобы предупредить остальных, что mmap это не подходящая замена привычному буферу. Далее мы обсудим основные недостатки mmap, а также покажем явные ограничения производительности, которые мы обнаружили в наших экспериментах. На основании этих находок мы поделимся рецептами, когда разработчикам СУБД следует избегать mmap для реализации файлового ввода/вывода.

Читать дальше →