Обновить
43.14

*nix *

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

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

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

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

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

Читать далее

Новости

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

Punto Switcher для Linux

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

На днях вышла 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.

Читать далее

Балансировка и проксирование L4-трафика в Angie

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

Возможности Angie в качестве веб‑сервера и обратного прокси довольно известны. Но кроме работы на уровне L7 (HTTP), мы можем применять его на L4 (TCP и UDP) в качестве балансировщика и прокси‑сервера. Именно об этой функциональности мы и поговорим в сегодняшней статье.

Читать далее

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

Как работает система владений и ссылок в Rust на низком уровне

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

Привет Хабр! В этой статье я хотел поговорить о теме вечных конфликтов разработчиков на C++ и Rust. Стоит ли того система управления памятью в Rust или все-же это бестолковый механизм стремящийся составить конкуренцию родному методу?

Систему управления памятью я разберу, а вот выводы остаются уже за вами.

Читать далее

OpenBSD: интервью с Вячеславом Воронцовым

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

Не в то время и не в том формате, но мы это сделали! Если хотя-бы слышали слово «OpenBSD» — стоит прочитать и посмотреть.

Читать далее

WiFi, который не ловил

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

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

Читать далее

Цифровая зависимость: почему проприетарный софт — тупик для человечества?

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

Главной темой и проблемой IT является, необходимость набора софта для осуществления тех или иных целей. Например - графический редактор, редактор/читалка документов, локальный DNS-сервер, система мониторинга, почтовый сервер или вовсе доменный контроллер - зачастую с этого всё и начинается. Всё это вероятнее всего, имеет закрытый код - проприетарный.

В дополнение, многие делают очень весёлую ошибку, пытаясь используя знания и/или специфичную терминологию NT-мира (Windows*) полноценно работать/судить в/о *nix среде. Естественно, ничего не получается, но некоторые особенно упёртые, пытаются заставить работать, например AD (Active Directory) в Linux. В итоге сохраняется базовая функциональность в лице пароль+логин+сертификаты/билеты и не более, потому что закрытый остров Windows, сильно отличается от открытого света.

Собственно, а почему так? А потому что “удобно”, "быстро", "красиво", "едино" и ещё сотня подобных слов, где будет оправдываться монополия Microsoft, а так же зависимости, проприетарность, закрытость и невозможности внесений изменений. Всё это и так же отсутствие стандартизации между проприетарными проектами (Не только в Microsoft), без установки дополнительного софта или даже костылей - не решается. Ну и ещё цена неадекватно большая была примерно... Всегда, за лицензию Windows и уж тем более серверного издания.

Читать подробнее...

FreeBSD и крепкий сон ноутбука

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

Собрал в одной статье весь практический опыт настройки засыпания этой системы на разных ноутбуках. Если хотите попробовать FreeBSD на ноутбуке — точно стоит прочитать.

Читать далее

Интеграция онлайн-кассы Атол с Битрикс24: облачное решение на .NET

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

В современном бизнесе интеграция фискальных регистраторов с CRM-системами перестала быть опцией — это необходимость для эффективного ведения дел. Однако существующие решения часто требуют дорогостоящего оборудования или привязывают к конкретным платформам. Мы решили эту проблему, разработав 1ОС.Касса — облачную кассу, которая объединяет преимущества онлайн и оффлайн касс.

Читать далее

K8S для самых маленьких или как поднять отказаустойчивый кластер k8s. Часть 1

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

Еще до открытия для себя практик Dev-ops я использовал Docker для упаковки и быстрой доставки кода на сервера (всё делалось ручками, я еще не знал про CI/CD xD). Со временем мои приложения становились больше, появлялись микросервисы, убирался монолит. И управлять ручками или через Portainer всей архитектурой было слегка сложновато. Простой, куча вопросов, падение контейнеров, рост нагрузки и все в этом духе. Тогда-то я и открыл для себя кубер.

Познать кубер
1
23 ...

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