Обновить
352.41

Linux *

Пишем под *nix

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

Больше Linux-устройств, хороших и разных: портативный «наладонник» из Китая, док-станция для Librem 5 и кое-что еще

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


Linux продолжает развиваться, эта ОС каждый год становится все более востребованной. Чаще всего разные дистрибутивы Linux работают в корпоративной среде, но есть, конечно, и пользовательские устройства. Их не так мало, хотя и гораздо меньше, чем девайсов на Windows, Android, iOS и т.п.

Тем не менее, производители из разных стран стараются выпускать новые модели Linux-систем для обычных пользователей. Сегодня как раз и поговорим о паре новинок, которые заслуживают внимания.
Читать дальше →

Carbonyl — графический веб-браузер для Linux-консолей

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

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

Большинство основных дистрибутивов Linux поставляются с предустановленными Firefox или Falkon. И идея текстового браузера для консоли Linux может показаться абсурдной. В конце концов, первые браузеры были основаны на графическом интерфейсе, а современный Интернет так вообще состоит из графики и JavaScript — элементов, с которыми консольным браузерам трудно или даже невозможно работать. Но именно эта несовместимость с современной Сетью делает консольные браузеры такими привлекательными для некоторых пользователей. Для этого есть несколько причин. Интерфейсы таких браузеров чрезвычайно просты в компоновке и работают очень быстро. Текстовые браузеры требуют меньше пропускной способности для работы, и загружают страницы намного быстрее, чем графические. Кроме того, графические браузеры потребляют больше ресурсов ЦП для Javascript, CSS и т. д. Также изображения, автоматически воспроизводимые видео и звуковые эффекты могут отвлекать внимание пользователя.

Но как можно сохранить малое потребление ресурсов ЦП текстовых браузеров, при этом отображая графику через консоль?

Через Carbonyl.
Читать дальше →

Нужен ли такой одноплатник?

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

Привет Хабр!

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

Если коротко — У меня есть Самсунг А5 (2015) и я могу на него установить MongoDB на Docker, накатить nodeJS и использовать как сервер разработки.

Под капотом Alpine Linux и в отличии от UbPorts — установка приложений из консоли это найтивный путь.

Целью поста является обзор альтернативного направления развития мобильных устройств под свободными Осями (И не является обзором PostmarketOS, но в целом для хабра не мешало бы).

На данный момент в мире пользовательских мобильных устройств царит парадигма — моно девайсов. Не последним вкладом в стоимость которых они обязаны дисплею.

Читать далее

Очень странные дела: разработчики обсуждают итоги года и осторожно заглядывают в будущее

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

Вот уже почти год, как российский ИТ-рынок вошел в затянувшуюся зону турбулентности. Иногда казалось, что над сценариями развития ситуации работали профессиональные фантасты, прогнозирующие варианты по всей длине шкалы — от полного прекращения поставок «железа» и схлопывания рынка из-за отсутствия доступа к инструментам разработки до нового ИТ-ренессанса в связи с уходом международных компаний, прежде занимавших ведущие позиции.

Эксперты Content AI, наблюдавшие за ситуацией внутри воронки смерча, поговорили «за ИТ» уже из дня сегодняшнего: с чем в итоге подошел отечественный рынок к 2023 году, какие тренды наметились в области разработки ПО и в какую сторону дальше будет двигаться российская сфера ИТ. 

Как говорится, запомните этот твит. 

Читать далее

Просто о RCU (Read–Copy-Update). Часть 2

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

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

Читать далее

Как поиграть в Quake для DOS по сети в 2023 году

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

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

  • не на всех компьютерах можно поиграть со звуком;
  • необходимо заменять файл в дистрибутиве Quake;
  • невозможно поиграть по сети.

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

Среда разработки VS Code на ТВ-приставке

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

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

Кратко оно выглядит так:

Мультимедиа-приставка (была с Андроидом), в ней запущен Линукс, в нем развернута IDE Visual Studio Code, в ней установлено расширение PlatfformIO. Все это удаленно доступно по SSH и RDP. К этому мини-компьютеру подключена плата STM32F4 discovery через ST-Link на борту, через него работает загрузка и отладчик, а через переходник USB-UART отображаются диагностические сообщения. Тестовая программа для демонстрации использует фреймворк Ардуино.

Читать далее

Зеркалирование GitHub-проектов в 2023 году

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

По ряду причин я решил зеркалировать свои открытые GitHub-проекты на другие платформы совместной разработки. Сделать это оказалось не так просто. В этой короткой статье описаны трудности, с которыми мне пришлось столкнуться, и итоговое рабочее решение.

Читать далее

Добрый вечер, здравствуйте

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

Если вы программист, тестировщик или другой обитатель мира IT, то, возможно, ранее вы следили за деятельностью компании ABBYY, ведущего мирового разработчика решений в области интеллектуальной обработки информации и анализа бизнес-процессов. Весной 2022 года ABBYY приняла решение уйти из России, а мы — команда разработки и менеджмента бывшего российского офиса ABBYY — создали новую компанию Content AI. Мы посчитали важным сохранить многолетний архив этого блога, ведь в нем отражается путь не только одной компании, но и всей сферы AI российского IT.

И мы начинаем новую главу этой истории. 

Читать далее

Wine 8.0: что «выросло» в новой версии? Возможности и совместимость с ПО

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

На Хабре публиковалась новость о Wine 8.0, новый релиз был представлен спустя целый год разработки и трех десятков тестовых версий для «обкатки». Наконец, несколько дней назад разработчики представили стабильный релиз Wine 8.0. Работа действительно очень объемная — команда внесла почти 9 000 изменений.

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

Создаём и расширяем образы Docker с функциями middleware

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

Для переноса IT-среды в облако используют технологии контейнеризации, в первую очередь Docker. Такой подход помогает оптимизировать потребление ресурсов и ещё больше автоматизировать операционные процессы. Однако для поддержки энтерпрайз-приложений требуются дополнительные службы, которые называют функциями промежуточной обработки (middleware functions). Такие службы применяют для интеграции, обмена сообщениями, размещения приложений в контролируемой серверной среде и др. В статье рассказываем, как создавать и расширять образы Docker, содержащие функции промежуточной обработки. 

Читать далее

Просто о RCU (Read–Copy-Update)

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

Lock-free структуры данных в общем и целом неплохо описаны в различной литературе, но на мой взгляд порог вхождения в эту тему высок. Приведу простой кейс использования одной из разновидностей данной технологии под названием RCU (Read–Copy-Update). В двух словах, это механизм неблокирующего обновления структуры данных у которой много читателей и всего один писатель. Wikipedia.

Читать далее

Как построить WaitGroup на основе 32-разрядного целого числа

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

В Go есть приятная утилита для синхронизации, именуемая WaitGroup, которую могут ожидать одна или несколько горутин. Это требуется для конкурентного завершения задач. В других языках обычно действует следующее соглашение по завершению задач: нужно объединять потоки, выполняющие работу. В Go горутины не имеют ни значений, ни дескрипторов, поэтому WaitGroup применяется вместо объединений. Собирание WaitGroup на основе типичных портируемых примитивов – путаное дело, в которое вовлечены конструкторы и деструкторы; также в процессе этой работы приходится управлять временами жизни. Однако, как минимум, под Linux и под Windows, можно построить WaitGroup из целого числа (инициализируемого в значении), во многом как при создании 32-разрядной очереди и 32-разрядного барьера.
Читать дальше →

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

Управляем модулем ядра Linux

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

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

Читать далее

Домашняя лаборатория

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

Угадай данную статью написал ChatGPT или нет?

Хотите потестировать приложение, или опробовать в работе инструмент? В этой статье опишу то, как организовал тестовый стенд на Linux. Стенд поддерживает работу с доменами, умеет генерировать TLS сертификаты, легко масштабируется, окружение строится по принципе IaaC, не требует много ресурсов, легко разворачивается скриптами или SCM, есть UI, не зависит от внешних сервисов.

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

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

Читать далее

5 советов, которые помогут при переносе кода на платформы, отличные от х86

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

Легко написать код, который компилируется, компонуется и нормально работает на x86, но не работает на других процессорах, например Power. Обычно причина в том, что такой код изначально не был предназначен для платформ, отличных от x86. В статье разбираем отличия x86 и Power, которые могут нарушить сборку или снизить производительность. Делимся инструментами, которые помогут выявить и устранить проблемы.

Читать далее

Volvo SCT / part 1 — как проникнуть в чужое ядро

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

Я являюсь обладателем одной интересной железки - SCT unit touch. Это медиа система с Android, которую ставили в виде дополнительного аксессуара в автомобили Volvo. Проблема в том, что ее оставили без поддержки, зато на ней можно легко получить root, а значит остальное можно допилить.

Читать далее

Видеозаписи докладов CyberCamp. Разбираем вопросы безопасности Linux

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

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

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

  Безопасность ядра Linux: в теории и на практике / Александр Попов, Positive Technologies

 Повышение привилегий на Linux / Владимир Ротанов, «Инфосистемы Джет»

 Анализ взлома общедоступных экземпляров баз данных / Александр Матвиенко, «Инфосистемы Джет»

 Особенности вредоносного ПО под Linux-системы / Ярослав Шмелёв, «Лаборатория Касперского»

 Анализ логов в Unix-системах / Артём Крикунов, «Инфосистемы Джет»

Харденинг Linux / Антон Велижанинов, «Инфосистемы Джет»

Читать далее

Пишем драйвер ядра Linux для неизвестного USB-устройства

Время на прочтение15 мин
Охват и читатели22K
image

В этой статье объяснен весь процесс, на выходе которого получается рабочий драйвер ядра Linux для недокументированного USB-устройства. Выполнив обратную разработку коммуникационного протокола USB, я покажу архитектуру драйвера ядра для USB. Кроме драйвера ядра в этой статье будет рассказано о простом инструменте для пользовательского пространства; при помощи этого инструмента можно управлять таким устройством. Конечно, придется углубиться в подробности, касающиеся конкретного прибора, но не сомневайтесь – описанный процесс с тем же успехом применим и к другим USB-устройствам.
Читать дальше →

Админка для Private Docker Registry (Registry Admin)

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

Концепция контейнеризации на базе Docker, и ему подобных технологий, для многих разработчиков стала незаменимым инструментом доставки своих продуктов в виде образов. В большинстве случаев для распространения используются бесплатные реестры такие как Docker Hub или GitHub Container Registry. Но иногда требуется развернуть свой собственный registry и управлять доступом к нему. Вариантов для развертывания своего собственного container registry предостаточно, но я решил сделать свой вариант админки для управления Private Docker Registry.

Читать далее