Обновить
66.18

*nix *

Хаб про UNIX-подобные операционные системы

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

Аморальный патч для Intel DRM

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

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

А значит снова пришло время карать и патчить!

Читать далее

Новости

systemd-nspawn: продолжаем знакомство

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.4K

Привет, это снова Егор Гаврилов. И я сегодня и дальше познакомлю аудиторию с systemd-nspawn.

Это продолжение предыдущей моей статьи про systemd-nspawn.

Читать далее

PPP-over-HTTP/2: развлекаемся с dumbproxy и pppd

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

В этой статье рассказано как подружить pppd и dumbproxy, получив в итоге PPP-тоннель внутри HTTP/2. Её можно одновременно рассматривать как руководство по настройке, журнал эксперимента, демо возможностей dumbproxy и просто пищу для удовлетворения любопытства.

Читать далее

Альтернативный raycast

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

Всем привет. Недавно я занялся нахождением возможности бросить луч не используя классический метод с перемножением обратных матриц. Меня эта идея зацепила и я стал исследовать, возможно ли как-то сделать то же самое, но без обратных матриц. И вот что получилось. Есть видео и также описание код приложу в туториал.

Читать далее

Заводной абрикос

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров3.3K

Помимо всем известной Apple, на свете существовала еще одна «фруктовая» компания, выпускавшая очень популярные компьютеры.

И сейчас мы цинично оживим и запустим эмулятор этих замечательных машин.

Читать далее

Как я бросил луч на сцену

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров996

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

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

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

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

Я бы хотел рассказать как я бросил луч в сцену, на создание которого, а он ещё не доделан, я потратил 4 дня. Движок мой на C и поэтому думаю, что будет понятен каждому.

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

Нейросеть мне подсказала, что можно перемножить обратные (матрицу камеры и проекции) и умножить это на вектор и потом получается что-то, с чем я не понимал как работать и пошёл дальше своим путём.

Читать далее

Запуск приложений в Linux c использованием политик планирования «реального» времени

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.7K

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

Договорились о том, что я напишу небольшой гайд, рассказывающий что и как можно сделать, чтобы оптимизировать время отклика. Отдельно отмечу, что задачу доказать, что Linux с патчем PREEMPT_RT является операционной системой жёсткого реального времени перед собой не ставлю. На мой взгляд, она такой не является, так сказать by designe, в отличие от тех же QNX , VxWorks и ThreadX.

Читать далее

Пошаговая настройка вывода логов из .NET-автотестов в ELK (Filebeat → Logstash → Elasticsearch → Kibana)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров691

Всем привет, с вами Юрий Ковальчук, backend разработчик в ВебРайз. В этой статье разберем процесс вывода логов из приложения c автотестами на .NET в ELK с последующей визуализаций в Kibana.

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

Читать далее

Как я заставил свой новый ноутбук работать под Linux'ом…

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

Привет, это снова Егор Гаврилов. И сегодня я расскажу историю про то, как мне пришлось повозиться со своим Gigabyte Gaming A16 3VH, чтобы управлять ноутбуком без виндового GiMATE, под своим Arch Linux'ом.

Читать далее

Парсим XML и JSON на ассемблере

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.9K

Отобрал для вас несколько крайне интересных, но малоизвестных проектов, реализующих работу с XML и JSON. Кроссплатформенных и без зависимостей. На чистом С и ассемблере.

Читать далее

Эволюция подходов к написанию корутин от Си до С++20. Часть 2. Переходим от бесстековых сопрограмм к стековым

Уровень сложностиСложный
Время на прочтение25 мин
Количество просмотров4.4K

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

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

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

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

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

Читать далее

По следам AerynOS: как выглядит современный дистрибутив

Время на прочтение5 мин
Количество просмотров4.3K

Дорогие читатели, вы, наверное, не слышали об AerynOS. Это — новый дистрибутив, который его автор — Ikey Doherty — спроектировал прямо с нуля, используя свой богатый опыт с Solus Linux и ClearLinux. Хорошая новость — в том, что всё получилось, и дистрибутив сейчас в стадии твёрдой альфы, плохая — что автор снова отошёл от дел на неопределённое время.

Но, прежде чем взять долгую паузу в разработке, Ikey Doherty написал длинный пост о технической стороне вопроса — какие идеи были заложены в AerynOS и как они воплощались на практике. Несмотря на то, что всё удалось реализовать, как задумывалось, в некоторых вопросах, всё‑таки, выяснилось, что «зашли не в тот подъезд». Но в целом, после прочтения этого поста складывается некоторая картина - как должен выглядеть современный дистрибутив — чем и хочу с вами поделиться.

Читать далее

Code Anywhere по-настоящему

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

Настоящий комбайн для разработки:

доступ с любого устройства через браузер или SSH;

работа в контейнере исключает влияние на хостовую ОС;

лёгкость развёртывания на любом сервере с Docker;

поддержка отладки, терминала и Docker‑CLI внутри среды;

HTTPS‑шифрование и контролируемый доступ.

Это интересно

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

Личное облако на Proxmox: сеть

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров13K

Как‑то я писал статью «Личное облако на Proxmox» где описывал как установить Proxmox разными способами и в целом, что это такое, обещал, что когда то, под настроение опишу продолжение про сетевую часть домашнего облака с сервисами, доступными из интернет на домашнем сервере, вот, пожалуйста

Прошлая статья была посвящена базовой настройке. Что сейчас я имею в итоге, немного изменив то, что делал я получил:

Читать далее

systemd-nspawn: запускаем FidoIP на Arch Linux

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.5K

Привет, это снова Егор Гаврилов. Сегодня расскажу про то, как настроить FidoIP на Arch Linux, используя инструмент, входящий в состав systemd, под названием systemd-nspawn.

Читать далее

Punto Switcher для Linux

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

https://alternativeto.net/software/punto-switcher-for-linux/about/

Что умеет Punto Switcher для Linux?

1) Конвертировать последнее слово перед курсором.

2) Конвертировать выделенное.

3) Конвертировать последнее слово в строке терминала Gnome.

4) Конвертировать выделенное в строке терминала Gnome.

Читать далее

Файловые дескрипторы 0, 1, 2: полное руководство по работе с потоками

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

Привет, Хабр! Конструкции вроде 2>&1 и &> встречаются повсюду — в мануалах, скриптах, инструкциях. Их используют постоянно, но редко понимают до конца. Почему ошибки продолжают появляться в терминале, хотя, казалось бы, должны уходить в файл? Почему конвейер передаёт только часть вывода?

В статье разберём всё от базового синтаксиса до работы с tee и /dev/null - каждая часть будет разобрана и показана на практических примерах.

Читать далее

Новый релиз OpenBSD 7.8 с поддержкой Pi 5 и многопоточным TCP

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

На днях вышла OpenBSD 7.8, продолжая традицию регулярных обновлений каждые полгода. С 1995 команда держит фокус на безопасности, переносимости и простоте кода. Размер базового ISO-образа — около 597 МБ. Скачать его можно с зеркал — например, ftp.openbsd.org. В отличие от более громоздких дистрибутивов, OpenBSD предпочитает минимализм: система собирается из исходников, а пакеты портов обновляются параллельно.

За тридцать лет в стандартной установке нашлось всего лишь две уязвимости, что делает OpenBSD эталоном для других ОС. Если предыдущая версия 7.7 вышла в апреле, то этот релиз накопил изменения, ориентированные на современное железо и сетевые нагрузки. Разработчики подчеркивают, что улучшения касаются почти всех компонентов, от ядра до утилит, без лишней мишуры. В целом, обновление подойдет администраторам, работающим с виртуализацией или embedded-устройствами, где стабильность важнее новизны. Что ж, давайте посмотрим, что нам тут приготовили.

Читать далее

История одного патча II: приключения в FreeBSD

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

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

Читать далее

ULID, UUIDv4 и UUIDv7 в логах nginx: как сделать поиск по ID быстрым и удобным в ClickHouse

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

Когда вы работаете с распределённой системой — будь то микросервисы, фронтенд + бэкенд или nginx + приложение — жизненно важно иметь возможность «протянуть» один и тот же идентификатор запроса через все её компоненты. Это позволяет сопоставлять логи из разных источников, быстро находить ошибки и проводить корреляционный анализ.

В nginx для этого из коробки есть переменная $request_id — 32-символьный hex-идентификатор (например, a1b2c3d4e5f678901234567890abcdef). Его можно передать бэкенду через proxy_set_header X-Request-ID $request_id; или fastcgi_param HTTP_X_REQUEST_ID $request_id;, а также сохранить в access-логах.

Однако стандартный $request_id — это просто случайная строка без временной привязки и без структуры, удобной для аналитики. В этой статье мы рассмотрим, как улучшить ситуацию с помощью ULID и UUIDv7.

Читать далее
1
23 ...

Вклад авторов