🐧 Microsoft представила WSL 3.0 с поддержкой запуска Linux-контейнеров в Windows
Microsoft представила WSL 3.0: подсистема перешла на ядро Linux 6.18 и получила встроенный инструментарий WSL Containers для создания, сборки и запуска Linux-контейнеров.
Новая утилита
Исходный код компонентов WSL опубликован на GitHub под лицензией MIT.
Читать подробности на Хабре →
@usr_bin_linux
Microsoft представила WSL 3.0: подсистема перешла на ядро Linux 6.18 и получила встроенный инструментарий WSL Containers для создания, сборки и запуска Linux-контейнеров.
Новая утилита
wslc умеет управлять жизненным циклом контейнеров и образов, ограничивать потребление CPU и памяти, настраивать виртуальные сети и проброс портов, работать с VHD и предоставлять контейнерам доступ к GPU. Для автоматизации предусмотрен API для C++ и C#, а для разработки — интеграции с MSBuild, CMake, VS Code Dev Containers и Aspire.Исходный код компонентов WSL опубликован на GitHub под лицензией MIT.
Читать подробности на Хабре →
@usr_bin_linux
🔥14👍4⚡2
Address already in use: как найти, кто занял порт, и почему он не всегда освобождается сразу
Сервис не запускается, потому что порт занят. Кажется, решение очевидно: найти PID и завершить процесс. Но иногда процесса уже нет, а порт всё ещё остаётся недоступен из-за состояния
В статье разбираются основные сценарии этой ошибки и способы диагностики в Linux, macOS и Windows: как найти владельца порта через
Отдельная часть посвящена профилактике:
Читать дальше на Хабре →
Сервис не запускается, потому что порт занят. Кажется, решение очевидно: найти PID и завершить процесс. Но иногда процесса уже нет, а порт всё ещё остаётся недоступен из-за состояния
TIME_WAIT. В случае с Docker его может удерживать контейнер через docker-proxy.В статье разбираются основные сценарии этой ошибки и способы диагностики в Linux, macOS и Windows: как найти владельца порта через
ss, lsof, netstat или PowerShell, правильно остановить systemd-сервис либо контейнер и отличить живой процесс от TCP-соединения, ожидающего завершения.Отдельная часть посвящена профилактике:
SO_REUSEADDR, различиям его поведения в Linux и Windows, а также тому, почему его не следует путать с SO_REUSEPORT.Читать дальше на Хабре →
👍6🔥4⚡3
⏱️ Почему Unix-время начинается с 1970 года и при чём здесь электрическая розетка
В первых версиях Unix время отсчитывалось не в секундах, а в шестидесятых долях секунды: системные часы PDP-11 получали импульсы от американской электросети с частотой 60 Гц. Такой 32-битный счётчик заканчивался всего за несколько лет, поэтому разработчики перешли на секунды и выбрали удобную точку отсчёта — 1 января 1970 года.
Но и это решение не вечно. 19 января 2038 года знаковый 32-битный счётчик переполнится и отправит уязвимые системы в декабрь 1901-го. Проблема касается не только старых компьютеров: она может скрываться в
В статье — история Unix-времени, наглядные эксперименты с C, JavaScript и ext4, а также разбор того, где искать проблему 2038 года уже сейчас.
Читать дальше на Хабре →
@usr_bin_linux
В первых версиях Unix время отсчитывалось не в секундах, а в шестидесятых долях секунды: системные часы PDP-11 получали импульсы от американской электросети с частотой 60 Гц. Такой 32-битный счётчик заканчивался всего за несколько лет, поэтому разработчики перешли на секунды и выбрали удобную точку отсчёта — 1 января 1970 года.
Но и это решение не вечно. 19 января 2038 года знаковый 32-битный счётчик переполнится и отправит уязвимые системы в декабрь 1901-го. Проблема касается не только старых компьютеров: она может скрываться в
INT-полях баз данных, бинарных форматах, JavaScript-операциях, MySQL TIMESTAMP, файловых системах и прошивках устройств.В статье — история Unix-времени, наглядные эксперименты с C, JavaScript и ext4, а также разбор того, где искать проблему 2038 года уже сейчас.
Читать дальше на Хабре →
@usr_bin_linux
🔥11👍3⚡1
🖥 NeoHtop — альтернатива htop с графическим интерфейсом
Кроссплатформенный системный монитор показывает процессы и загрузку CPU и памяти в реальном времени. Процессы можно сортировать, закреплять, завершать, а также фильтровать по имени, команде или PID — поддерживаются регулярные выражения и поиск сразу по нескольким условиям.
Утилита построена на Rust, Tauri и Svelte, работает в Linux, macOS и Windows, поддерживает светлую и тёмную темы. Для любителей терминала авторы также выпустили отдельный NeoHtop CLI с деревом процессов, графиками и фильтрами.
Репыч на Гитхаб
@usr_bin_linux
Кроссплатформенный системный монитор показывает процессы и загрузку CPU и памяти в реальном времени. Процессы можно сортировать, закреплять, завершать, а также фильтровать по имени, команде или PID — поддерживаются регулярные выражения и поиск сразу по нескольким условиям.
Утилита построена на Rust, Tauri и Svelte, работает в Linux, macOS и Windows, поддерживает светлую и тёмную темы. Для любителей терминала авторы также выпустили отдельный NeoHtop CLI с деревом процессов, графиками и фильтрами.
Репыч на Гитхаб
@usr_bin_linux
🔥9⚡3👍2
MinIO Is Deprecated: Best Alternatives for S3-Compatible Storage
Долгие годы MinIO считался стандартным выбором для развёртывания S3-совместимого хранилища в собственной инфраструктуре. После архивации upstream-репозитория и прекращения привычной модели лицензирования неплохо было бы задуматься о будущем своих инсталляций.
В статье разбираются три возможные альтернативы — Garage, RustFS и SeaweedFS — и объясняется, для каких архитектур и нагрузок подходит каждая из них.
Читать статью на Medium
@usr_bin_linux
Долгие годы MinIO считался стандартным выбором для развёртывания S3-совместимого хранилища в собственной инфраструктуре. После архивации upstream-репозитория и прекращения привычной модели лицензирования неплохо было бы задуматься о будущем своих инсталляций.
В статье разбираются три возможные альтернативы — Garage, RustFS и SeaweedFS — и объясняется, для каких архитектур и нагрузок подходит каждая из них.
Читать статью на Medium
@usr_bin_linux
🔥8👍2❤1
А что, если Kubernetes — это не готовая платформа, а только ядро?
В статье описан любопытный инженерный эксперимент: автор предлагает относиться к Kubernetes так же, как мы относимся к ядру Linux. Сам Kubernetes остаётся общей основой, а поверх него собираются специализированные дистрибутивы — для виртуализации, ИИ, промышленного оборудования, мониторинга или сетевых задач.
Чтобы проверить идею на практике, автор разработал kuberoot — аналог Buildroot для сборки дистрибутивов Kubernetes, а также пакетный менеджер kubepkg и репозиторий пакетов.
В результате получается единый загрузочный образ, включающий ядро Linux, минимальную неизменяемую ОС и Kubernetes. Без SSH, shell и привычного пакетного менеджера. Узлами, системными службами, дисками, обновлениями и резервными копиями можно управлять через Kubernetes API и
Интересно, что на этом тулките собрали восемь очень разных систем: обычный кластер, маршрутизатор без контейнеров, гипервизор, платформу для LLM, промышленный узел реального времени и внешний кластер мониторинга.
Читать дальше на Хабре
@usr_bin_linux
В статье описан любопытный инженерный эксперимент: автор предлагает относиться к Kubernetes так же, как мы относимся к ядру Linux. Сам Kubernetes остаётся общей основой, а поверх него собираются специализированные дистрибутивы — для виртуализации, ИИ, промышленного оборудования, мониторинга или сетевых задач.
Чтобы проверить идею на практике, автор разработал kuberoot — аналог Buildroot для сборки дистрибутивов Kubernetes, а также пакетный менеджер kubepkg и репозиторий пакетов.
В результате получается единый загрузочный образ, включающий ядро Linux, минимальную неизменяемую ОС и Kubernetes. Без SSH, shell и привычного пакетного менеджера. Узлами, системными службами, дисками, обновлениями и резервными копиями можно управлять через Kubernetes API и
kubectl. Обновления устанавливаются в неактивный слот, проверяются после перезагрузки и автоматически откатываются при проблемах.Интересно, что на этом тулките собрали восемь очень разных систем: обычный кластер, маршрутизатор без контейнеров, гипервизор, платформу для LLM, промышленный узел реального времени и внешний кластер мониторинга.
Читать дальше на Хабре
@usr_bin_linux
🔥7⚡2❤2👍2
Когда один
В статье разобран инженерный разбор ошибки, в которой
Автор прошел весь путь управляющего символа: хостовый терминал → Java → виртуальный UART → KVM → TTY-подсистема Linux → процесс. Виновником в итоге оказался не KVM и не обработка IRQ, а фоновый запуск BusyBox shell: процесс унаследовал игнорирование
Любопытный пример того, как диагностировать сложные проблемы на границах нескольких систем: проверять каждый слой отдельно и прямыми экспериментами исключать исправные участки цепочки.
Читать на Хабре
@usr_bin_linux
& ломает Ctrl+CВ статье разобран инженерный разбор ошибки, в которой
Ctrl+C сначала выключал виртуальную машину, а после исправления перестал прерывать даже обычный sleep.Автор прошел весь путь управляющего символа: хостовый терминал → Java → виртуальный UART → KVM → TTY-подсистема Linux → процесс. Виновником в итоге оказался не KVM и не обработка IRQ, а фоновый запуск BusyBox shell: процесс унаследовал игнорирование
SIGINT.Любопытный пример того, как диагностировать сложные проблемы на границах нескольких систем: проверять каждый слой отдельно и прямыми экспериментами исключать исправные участки цепочки.
Читать на Хабре
@usr_bin_linux
🔥8👍5⚡2
Как превратить Python-скрипт на VPS в нормальный сервис
В статье разобраны:
🚀 запуск и автоматический перезапуск через systemd;
🚀 хранение секретов и ограничение прав процесса;
🚀 сбор и ротация логов с помощью journald;
уведомления о сбоях в Telegram вместе с фрагментом журнала;
🚀 запуск задач по расписанию через systemd timers вместо cron.
Читать на Хабре
@usr_bin_linux
nohup, screen и надежда на то, что скрипт никогда не упадёт, — не лучший вариант для эксплуатации. В этой статье рассказывается, как организовать запуск небольших Python-приложений средствами самого Linux — без Docker, Supervisor и отдельной системы мониторинга.В статье разобраны:
🚀 запуск и автоматический перезапуск через systemd;
🚀 хранение секретов и ограничение прав процесса;
🚀 сбор и ротация логов с помощью journald;
уведомления о сбоях в Telegram вместе с фрагментом журнала;
🚀 запуск задач по расписанию через systemd timers вместо cron.
Читать на Хабре
@usr_bin_linux
🔥12👍4⚡2❤1
🎮 Чтиво на выходные: как Марио покорял ZX Spectrum
На выходные предлагаю немного отвлечься от консолей и инфраструктуры — и погрузиться в историю восьмибитных игр.
Статья рассказывает, как Марио пытался добраться до ZX Spectrum: от ранних портов Donkey Kong и Mario Bros. до клонов, отменённой The Great Giana Sisters и проектов отечественных энтузиастов. Попытки создать собственного Марио продолжались более 20 лет и породили немало любопытных игр.
В статье вы найдете большую, богато иллюстрированную ретроспективу о временах, когда ограничения железа компенсировали изобретательностью, а любимые игры переносили на доступные платформы своими силами.
Наливайте чай — впереди 22 минуты приятной ностальгии.
Как Марио ZX Spectrum покорял
@usr_bin_linux
На выходные предлагаю немного отвлечься от консолей и инфраструктуры — и погрузиться в историю восьмибитных игр.
Статья рассказывает, как Марио пытался добраться до ZX Spectrum: от ранних портов Donkey Kong и Mario Bros. до клонов, отменённой The Great Giana Sisters и проектов отечественных энтузиастов. Попытки создать собственного Марио продолжались более 20 лет и породили немало любопытных игр.
В статье вы найдете большую, богато иллюстрированную ретроспективу о временах, когда ограничения железа компенсировали изобретательностью, а любимые игры переносили на доступные платформы своими силами.
Наливайте чай — впереди 22 минуты приятной ностальгии.
Как Марио ZX Spectrum покорял
@usr_bin_linux
🔥6👍3❤2
Имиджборда в терминале: возвращение к интернету без лент и алгоритмов
Автор создал Bord — открытую анонимную площадку, основной клиент которой работает прямо в терминале. Интерфейс напоминает Midnight Commander: слева расположены доски, справа — треды и сообщения. Поддерживаются клавиатура, мышь, поиск, цветовые темы и даже изображения.
За ретро-интерфейсом скрывается современная архитектура:
— клиент и сервер написаны на Go;
— TUI построен на Bubble Tea, Bubbles и Lip Gloss;
— HTTP используется как источник данных, а SSE — для уведомлений об изменениях;
— SQLite работает в режиме WAL;
— API описан через OpenAPI;
— предусмотрены идемпотентность, аудит, защита загрузки файлов и продуманная модель анонимности без обязательных аккаунтов.
Проект для тех, кто скучает по форумам, IRC и старому интернету.
Читать статью на Хабре
Репыч на Гитхаб
@usr_bin_linux
Автор создал Bord — открытую анонимную площадку, основной клиент которой работает прямо в терминале. Интерфейс напоминает Midnight Commander: слева расположены доски, справа — треды и сообщения. Поддерживаются клавиатура, мышь, поиск, цветовые темы и даже изображения.
За ретро-интерфейсом скрывается современная архитектура:
— клиент и сервер написаны на Go;
— TUI построен на Bubble Tea, Bubbles и Lip Gloss;
— HTTP используется как источник данных, а SSE — для уведомлений об изменениях;
— SQLite работает в режиме WAL;
— API описан через OpenAPI;
— предусмотрены идемпотентность, аудит, защита загрузки файлов и продуманная модель анонимности без обязательных аккаунтов.
Проект для тех, кто скучает по форумам, IRC и старому интернету.
Читать статью на Хабре
Репыч на Гитхаб
@usr_bin_linux
🔥10👍3❤2
Как защитить Linux-сервер и не потерять к нему доступ в процессе настройки?
В репозитории How To Secure A Linux Server собраны способы базового усиления безопасности Linux. Также объясняются назначения настроек и возможные последствия их применения.
В руководстве разобраны:
🚀 защита SSH, вход по ключам и двухфакторная аутентификация;
🚀 ограничение доступа к
🚀 настройка межсетевого экрана UFW;
🚀 защита от атак с помощью Fail2Ban, CrowdSec и PSAD;
🚀 автоматическая установка обновлений безопасности;
🚀 аудит системы, контроль целостности файлов и поиск руткитов;
🚀 мониторинг открытых портов, журналов и подозрительной активности;
усиление параметров ядра Linux.
Есть и вариант автоматизации с помощью Ansible.
Репыч на Гитхаб
@usr_bin_linux
В репозитории How To Secure A Linux Server собраны способы базового усиления безопасности Linux. Также объясняются назначения настроек и возможные последствия их применения.
В руководстве разобраны:
🚀 защита SSH, вход по ключам и двухфакторная аутентификация;
🚀 ограничение доступа к
sudo и su;🚀 настройка межсетевого экрана UFW;
🚀 защита от атак с помощью Fail2Ban, CrowdSec и PSAD;
🚀 автоматическая установка обновлений безопасности;
🚀 аудит системы, контроль целостности файлов и поиск руткитов;
🚀 мониторинг открытых портов, журналов и подозрительной активности;
усиление параметров ядра Linux.
Есть и вариант автоматизации с помощью Ansible.
Репыч на Гитхаб
@usr_bin_linux
🔥14❤4⚡1👎1
Зачем нужен Ansible, если серверов всего два и есть SSH?
Пока инфраструктура небольшая, кажется, что проще подключиться к каждой машине и выполнить нужные команды вручную. Но со временем настройки начинают расходиться: где-то забыли включить автозапуск сервиса, где-то вручную изменили конфигурацию — и одинаковые серверы внезапно становятся разными.
В статье на простом примере с двумя Ubuntu-серверами и Nginx показано:
— чем декларативное описание состояния отличается от набора SSH-команд;
— как устроены Control Node, Inventory и Playbook;
— почему Ansible не требует установки постоянного агента;
— как развернуть одинаковую конфигурацию сразу на нескольких серверах;
— что такое идемпотентность и почему повторный запуск Playbook не ломает уже настроенную систему.
Читать на Хабре
UPD: статья, к сожалению, скрыта и прочитать ее не получится. Но, возможно, ее доработают и откроют позднее.
@usr_bin_linux
Пока инфраструктура небольшая, кажется, что проще подключиться к каждой машине и выполнить нужные команды вручную. Но со временем настройки начинают расходиться: где-то забыли включить автозапуск сервиса, где-то вручную изменили конфигурацию — и одинаковые серверы внезапно становятся разными.
В статье на простом примере с двумя Ubuntu-серверами и Nginx показано:
— чем декларативное описание состояния отличается от набора SSH-команд;
— как устроены Control Node, Inventory и Playbook;
— почему Ansible не требует установки постоянного агента;
— как развернуть одинаковую конфигурацию сразу на нескольких серверах;
— что такое идемпотентность и почему повторный запуск Playbook не ломает уже настроенную систему.
Читать на Хабре
UPD: статья, к сожалению, скрыта и прочитать ее не получится. Но, возможно, ее доработают и откроют позднее.
@usr_bin_linux
🔥6👍1
Kube API не отвечает, LoadBalancer не пропускает трафик, DNS не резолвит, исходящие запросы не уходят. Причина обычно кроется на стыке облачной сети и кластера, и найти её без понимания всей цепочки сложно.
3 ноября в 12:00 Роман Ерема, разработчик в команде Managed Kubernetes MWS Cloud Platform, на практике покажет:
⏺️ как взаимодействуют сеть облака, CNI и сеть Kubernetes
⏺️ как работают SNAT и Source IP
⏺️ когда нужен externalTrafficPolicy: Local и почему при нём может не проходить health check
⏺️ как диагностировать проблемы на реальных кейсах (live-demo)
Все участники получат чек-лист для проверки доступности.
Полезно инженерам, разработчикам и специалистам по сетям и облачной инфраструктуре.
🗓 3 ноября в 12:00
Регистрируйтесь по ссылке
3 ноября в 12:00 Роман Ерема, разработчик в команде Managed Kubernetes MWS Cloud Platform, на практике покажет:
Все участники получат чек-лист для проверки доступности.
Полезно инженерам, разработчикам и специалистам по сетям и облачной инфраструктуре.
🗓 3 ноября в 12:00
Регистрируйтесь по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👎2
SSH-клиент — без Chromium и с собственным UI-движком
EvertySSH — open source SSH-клиент, написанный на Rust. Проект появился из желания собрать в одном приложении всё необходимое для повседневной работы с серверами:
— несколько SSH-сессий во вкладках и разделение экрана;
— сохранённые подключения и генерация ключей;
— история команд с привязкой к серверу и сессии;
— библиотека часто используемых сниппетов;
— восстановление рабочего контекста после сетевых ошибок;
— поддержка полноэкранных консольных приложений.
Вместо Chromium или WebView автор использует собственный интерфейсный движок EvertyUI, а терминальный экран реализует как отдельную машину состояний с поддержкой ANSI-последовательностей, курсора, цветов и альтернативного буфера.
Есть ограничение: клиент пока не проверяет ключ сервера через
Читать на Хабре
Репыч на Гитхаб
@usr_bin_linux
EvertySSH — open source SSH-клиент, написанный на Rust. Проект появился из желания собрать в одном приложении всё необходимое для повседневной работы с серверами:
— несколько SSH-сессий во вкладках и разделение экрана;
— сохранённые подключения и генерация ключей;
— история команд с привязкой к серверу и сессии;
— библиотека часто используемых сниппетов;
— восстановление рабочего контекста после сетевых ошибок;
— поддержка полноэкранных консольных приложений.
Вместо Chromium или WebView автор использует собственный интерфейсный движок EvertyUI, а терминальный экран реализует как отдельную машину состояний с поддержкой ANSI-последовательностей, курсора, цветов и альтернативного буфера.
Есть ограничение: клиент пока не проверяет ключ сервера через
known_hosts, поэтому использовать его в критической инфраструктуре преждевременно. Ну, может еще добавят.Читать на Хабре
Репыч на Гитхаб
@usr_bin_linux
🔥5👍3⚡2❤1
Что делают боты, когда всё-таки подбирают пароль к SSH?
Автор развернул honeypot на базе Cowrie и замаскировал его под мощный сервер для обучения нейросетей: 128 ядер, терабайт памяти и четыре NVIDIA H100. Затем намеренно позволил автоматическим ботам подобрать пароль.
Всего за 12,5 часа ловушка получила 1846 подключений, 1524 команды и 219 попыток скачать файлы. После входа боты добавляли свои SSH-ключи, меняли пароль root, удаляли конкурирующие майнеры, закреплялись через cron и загружали вредоносное ПО.
Получился живой разбор автоматизированных атак на публичные серверы — от разведки до превращения взломанной машины в часть ботнета. В конце есть практический чек-лист по защите SSH и поиску следов компрометации.
Читать на Хабре
@usr_bin_linux
Автор развернул honeypot на базе Cowrie и замаскировал его под мощный сервер для обучения нейросетей: 128 ядер, терабайт памяти и четыре NVIDIA H100. Затем намеренно позволил автоматическим ботам подобрать пароль.
Всего за 12,5 часа ловушка получила 1846 подключений, 1524 команды и 219 попыток скачать файлы. После входа боты добавляли свои SSH-ключи, меняли пароль root, удаляли конкурирующие майнеры, закреплялись через cron и загружали вредоносное ПО.
Получился живой разбор автоматизированных атак на публичные серверы — от разведки до превращения взломанной машины в часть ботнета. В конце есть практический чек-лист по защите SSH и поиску следов компрометации.
Читать на Хабре
@usr_bin_linux
👍8🔥8⚡1👎1
Ubuntu готовится к большим переменам
Вышла Ubuntu 26.10 Stonking Stingray, и это обновление интересно не только новым GNOME и косметическими изменениями. Canonical продолжает серьёзно перестраивать системные компоненты и постепенно формирует облик будущей Ubuntu 28.04 LTS.
Среди нововведений:
🚀 локальный голосовой ввод Myna без отправки аудио в облако;
🚀 ядро Linux 7.3 и поддержка будущих Intel Nova Lake и AMD Zen 6;
🚀 завершение перехода стандартных файловых утилит на Rust;
🚀 замена
🚀 Sequoia PGP для проверки подписей APT-пакетов;
🚀 улучшения шифрования, аутентификации и корпоративного управления.
Читать статью на Хабре
@usr_bin_linux
Вышла Ubuntu 26.10 Stonking Stingray, и это обновление интересно не только новым GNOME и косметическими изменениями. Canonical продолжает серьёзно перестраивать системные компоненты и постепенно формирует облик будущей Ubuntu 28.04 LTS.
Среди нововведений:
🚀 локальный голосовой ввод Myna без отправки аудио в облако;
🚀 ядро Linux 7.3 и поддержка будущих Intel Nova Lake и AMD Zen 6;
🚀 завершение перехода стандартных файловых утилит на Rust;
🚀 замена
dbus-daemon на dbus-broker;🚀 Sequoia PGP для проверки подписей APT-пакетов;
🚀 улучшения шифрования, аутентификации и корпоративного управления.
Читать статью на Хабре
@usr_bin_linux
🔥7⚡1👍1👎1
LSD — привычный
LSD — написанная на Rust альтернатива стандартной команде
Проект работает в Linux, macOS и Windows, устанавливается через пакетные менеджеры и при желании полностью заменяет обычный
Репыч на Гитхаб
@usr_bin_linux
ls, только современнееLSD — написанная на Rust альтернатива стандартной команде
ls. Она делает просмотр файлов в терминале нагляднее: добавляет цвета и иконки, древовидное представление каталогов, расширенное форматирование и гибкую настройку оформления.Проект работает в Linux, macOS и Windows, устанавливается через пакетные менеджеры и при желании полностью заменяет обычный
ls с помощью alias. Для корректного отображения иконок потребуется Nerd Font.Репыч на Гитхаб
@usr_bin_linux
🔥8👍6❤4👎1
Можно ли навайбкодить операционную систему как Linux, только быструю?
Я давно подозревал, что фраза «давайте быстро навайбкодим» однажды доберётся от лендингов и SaaS'ов до ядра операционной системы. Дождались.
Автор этой статьи решил проверить, можно ли с помощью Claude Code создать собственную low-latency ОС — как Linux, только быстрее и без лишних микросекунд. Внутри: Rust, C++, планировщик, файловая система, борьба с задержками и тесты PostgreSQL и MariaDB.
Интересно было узнать, где ИИ действительно ускоряет разработку, а где без инженерного опыта он способен уверенно и по-быстрому навайбкодить kernel panic.
Читать статью на Хабре
@usr_bin_linux
Я давно подозревал, что фраза «давайте быстро навайбкодим» однажды доберётся от лендингов и SaaS'ов до ядра операционной системы. Дождались.
Автор этой статьи решил проверить, можно ли с помощью Claude Code создать собственную low-latency ОС — как Linux, только быстрее и без лишних микросекунд. Внутри: Rust, C++, планировщик, файловая система, борьба с задержками и тесты PostgreSQL и MariaDB.
Интересно было узнать, где ИИ действительно ускоряет разработку, а где без инженерного опыта он способен уверенно и по-быстрому навайбкодить kernel panic.
Читать статью на Хабре
@usr_bin_linux
🔥7👍3⚡1
Свой игровой сервер на Linux: от systemd до Docker на примере Minecraft и Valheim
Рано или поздно любой администратор сталкивается с действительно критичной задачей: поднять Minecraft-сервер для друзей так, чтобы он пережил даже перезагрузку Linux.
В статье разбираются два подхода к запуску игровых серверов — классическая установка с
Читать статью на Хабре
@usr_bin_linux
Рано или поздно любой администратор сталкивается с действительно критичной задачей: поднять Minecraft-сервер для друзей так, чтобы он пережил даже перезагрузку Linux.
В статье разбираются два подхода к запуску игровых серверов — классическая установка с
systemd и контейнеризация через Docker. В качестве подопытных выступают Minecraft и Valheim: от выбора ресурсов и настройки сети до обновлений, безопасности и стабильной работы.Читать статью на Хабре
@usr_bin_linux
🔥9👍3⚡2
Лог пустой, а диск заканчивается: что logrotate делает с файлами, которые приложение не закрывает
Классическая загадка Linux-администратора: свежий лог почти пустой,
Спойлер:
В статье разбирается, как ротация логов связана с inode и открытыми файловыми дескрипторами, чем отличаются стратегии
Дополнительно рассказывают, как искать удалённые, но всё ещё открытые файлы с помощью:
А также что учитывать при работе с systemd, Docker и приложениями, которые не умеют самостоятельно переоткрывать лог после ротации.
Читать на Хабре
@usr_bin_linux
Классическая загадка Linux-администратора: свежий лог почти пустой,
logrotate отрабатывает без ошибок, старые файлы удалены — а свободного места на диске почему-то становится всё меньше.Спойлер:
rm не всегда означает, что данные действительно исчезли. Если приложение продолжает держать файловый дескриптор открытым, оно может писать в уже удалённый файл. В каталоге его больше не видно, но место на диске всё ещё занято. Получается своеобразный «лог-призрак»: глазами его не увидеть, зато файловая система прекрасно чувствует его присутствие.В статье разбирается, как ротация логов связана с inode и открытыми файловыми дескрипторами, чем отличаются стратегии
create и copytruncate, зачем отправлять приложению HUP или USR1 и почему неправильно настроенный postrotate способен привести к потере записей.Дополнительно рассказывают, как искать удалённые, но всё ещё открытые файлы с помощью:
lsof +L1
А также что учитывать при работе с systemd, Docker и приложениями, которые не умеют самостоятельно переоткрывать лог после ротации.
Читать на Хабре
@usr_bin_linux
👍6🔥6⚡3
Как ограничения научили нас ставить Kubernetes поверх любой операционной системы
Kubernetes хорошо абстрагирует приложения от инфраструктуры, но у каждого worker-узла всё равно остаётся операционная система. Её необходимо устанавливать, обновлять, защищать, настраивать и каким-то образом поддерживать в одинаковом состоянии на десятках или сотнях серверов.
Долгое время Kubernetes разворачивали поверх обычных серверных дистрибутивов Linux. Подход понятный и гибкий, но постепенно каждый узел обрастает пакетами, конфигурационными файлами, systemd-юнитами и изменениями, о происхождении которых через год уже никто не помнит. Так появились специализированные операционные системы для Kubernetes: CoreOS, Flatcar, Bottlerocket, K3OS и Talos OS.
В статье разбирается, чем такие дистрибутивы отличаются от классического Linux и какие идеи делают их удобными для Kubernetes:
🚀 минимальное количество компонентов
🚀 иммутабельная файловая система
🚀 атомарные обновления
🚀 отсутствие пакетного менеджера
🚀 управление через API
🚀 минимизация или полный отказ от SSH-доступа
🚀 декларативная настройка узлов
Отдельная часть посвящена Talos OS — системе, в которой Kubernetes является не дополнительным приложением, а основной причиной существования всей ОС. Никакого привычного SSH, ручного редактирования конфигурации и установки пакетов: управление выполняется через API, а обновление происходит целиком и атомарно.
Читать на Хабре
@usr_bin_linux
Kubernetes хорошо абстрагирует приложения от инфраструктуры, но у каждого worker-узла всё равно остаётся операционная система. Её необходимо устанавливать, обновлять, защищать, настраивать и каким-то образом поддерживать в одинаковом состоянии на десятках или сотнях серверов.
Долгое время Kubernetes разворачивали поверх обычных серверных дистрибутивов Linux. Подход понятный и гибкий, но постепенно каждый узел обрастает пакетами, конфигурационными файлами, systemd-юнитами и изменениями, о происхождении которых через год уже никто не помнит. Так появились специализированные операционные системы для Kubernetes: CoreOS, Flatcar, Bottlerocket, K3OS и Talos OS.
В статье разбирается, чем такие дистрибутивы отличаются от классического Linux и какие идеи делают их удобными для Kubernetes:
🚀 минимальное количество компонентов
🚀 иммутабельная файловая система
🚀 атомарные обновления
🚀 отсутствие пакетного менеджера
🚀 управление через API
🚀 минимизация или полный отказ от SSH-доступа
🚀 декларативная настройка узлов
Отдельная часть посвящена Talos OS — системе, в которой Kubernetes является не дополнительным приложением, а основной причиной существования всей ОС. Никакого привычного SSH, ручного редактирования конфигурации и установки пакетов: управление выполняется через API, а обновление происходит целиком и атомарно.
Читать на Хабре
@usr_bin_linux
👍7🔥6⚡2❤1