Обновить
256K+

Linux *

Пишем под *nix

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

Релиз открытого проекта Ventoy 1.1.00 для создания мультизагрузочной флешки

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

22 января 2025 года состоялся релиз открытого проекта Ventoy 1.1.00, который позволяет создавать загрузочные USB‑носители с несколькими операционными системами. Код проекта написан на языке программирования C и опубликован на GitHub под лицензией GNU General Public License v3.0. Предыдущая стабильная версия проекта вышла в июне 2024 года.

Читать далее

Представлен открытый проект astroterm — карта звёздного неба в терминале

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

Разработчик Далтон Люс представил открытый проект astroterm. Это карта звёздного неба в терминале. Исходный код решения написан на C и Python и опубликован на GitHub под лицензией MIT.

Читать далее

Вышла система виртуализации VirtualBox 7.1.6

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

21 января 2025 года состоялся релиз системы виртуализации Oracle VirtualBox 7.1.6. Выпуск стабильной версии VirtualBox 7.1 состоялся в сентябре 2024 года.

Читать далее

Как перенести Linux Device Drivers на современные ядра

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

Наверное, каждый разработчик рано или поздно задумывается о том, что же происходит в операционной системе на уровне ядра. Для ОС на базе ядра Linux относительно простой точкой входа является написание своих модулей. Модули по своей сути — это драйверы устройств (символьные char device, блочные block device, сетевые network device и другие).

В книге Linux Device Drivers (LDD) подробно описано, как создать свой модуль ядра для интересующего класса устройств. Однако эта книга очень устарела, поскольку в ней рассматриваются случаи, справедливые для ядра версии 2.X.X. А в 2025 году третьему изданию Linux Device Drivers исполняется 20 лет!

На сегодняшний день большинство устройств используют ядра 5.X.X или 6.X.X, в которых многое изменилось. Так и появилась идея этой статьи — адаптировать информацию из LDD под современные ядра.

Под катом рассмотрим следующие классы устройств: char device, block device и network device.

Читать далее

Релиз Wine 10.0

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

21 января 2025 года вышла новая стабильная версия открытой реализации программного интерфейса Windows Win32 API для ОС Linux Wine 10.0. С прошлогоднего релиза Wine 9.0 в проект внесено около 6 тыс. изменений от 1950 контрибуторов.

Читать далее

Релиз открытого инструментария для загрузки прошивок Fwupd 2.0.4

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

20 января 2025 года состоялся релиз открытого инструментария для загрузки прошивок Fwupd 2.0.4. Исходный код проекта написан на C и Python и опубликован на GitHub под лицензией GNU Lesser General Public License v2.1. Выпуск стабильной версии Fwupd 2.0 с поддержкой больших разделов в томах EFI FFS3 и возможностью стабильной работы с большинством типов CRC-32 и CRC-16 произошёл в октябре 2024 года.

Читать далее

Релиз Linux 6.13

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

19 января 2025 года Линус Торвальдс представил первый стабильный релиз ядра Linux 6.13. Выпуск новой версии ядра Linux вышел в соответствии с графиком, спустя два месяца после выхода предыдущей стабильной версии Linux 6.12 в середине ноября 2024 года (это версия ядра с долгосрочной поддержкой — LTS).

Читать далее

Вышел открытый медиацентр Kodi 21.2

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

19 января 2025 года состоялся релиз открытого кросс‑платформенного медиацентра Kodi 21.2. Исходный код проекта опубликован на GitHub под лицензией GPLv2+. Предыдущая мажорная версия Kodi 21.1 вышла в сентябре 2024 года. Релиз решения Kodi 21.0 Omega состоялся в апреле прошлого года.

Читать далее

Внутрипроцессная трассировка системных вызовов с использованием цепочного загрузчика

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

В этой статье мы разберём небольшой инструмент для трассировки системных вызовов. В отличие от strace и аналогов, здесь трассировка будет происходить внутри процесса, без применения ptrace() или эквивалентных вещей. Должен добавить, что это всего лишь демонстрационный пример, поэтому на практике он и близко не сравнится с strace. В частности, он пока не может точно выводить в консоль аргументы для большинства системных вызовов.

Именно на примере системных вызовов удобно продемонстрировать цепочную загрузку, и на то есть три причины...

Читать далее

Проект DIY FOSS-киборга позволяет работать с Linux, включая Guix и Emacs, в режиме передвижения

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

В сети популяризировался проект DIY FOSS-киборга (использует открытое и свободное ПО), который не живёт в чрезмерно насыщенной трёхмерной графической среде. Но зато он может постоянно работать с Linux, включая Guix и Emacs, с помощью небольшого дисплея поверх очков на базе Xreal Air (с разрешением 1920x1080), а также клавиатуры и дополнительных гаджетов на специальном поясе.

Читать далее

В Intel выяснили, что принятый без проверки в код ядра Linux 6.13 патч от сотрудника Microsoft оказался проблемным

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

Разработчик из Intel в рамках тестов выяснил, что принятый без особой проверки в код ядра Linux 6.13 (планируется к релизу в январе) патч от сотрудника Microsoft оказался проблемным. Примечательно, что это изменение, ставшее в итоге причинами сбоя в некоторых тестовых ситуациях, было подано нестандартно, но изначально принято, хотя не получило ни одного подтверждения (ACK) от мэйнтайнеров архитектуры x86, что является нарушением общепринятых практик в разработке проектов, включая ядро Linux.

Читать далее

Программируем SFP-модули на программаторе CH341A

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

Прошло уже более года с момента моей публикации о программаторе для CH341A под Linux - IMSProg и у меня возникло желание избавиться от еще одной программы, не дающей навсегда забыть о существовании Windows. Мой прежний программатор SFP собран на чипе FT232RL и имел софт только под Windows.

Каждый SFP-модуль имеет с своем составе стандартную микросхему 24C04 или 24C02, что натолкнуло меня на мысль использования простейшего переходника для программатора CH341 с использованием четырех проводов - земли, питания, I2C сигналов SDA и SCL. После просмотра разработок различных фирм я добавил в переходник джамперы на сигналы питания для снятия защиты от записи медных модулей - J1, J2 и J3 (контакты SFP TxPWR, RxPWR и TxEN). В результате получилась такая схема:

Читать далее

Вышел Linux Mint 22.1 «Xia»

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

14 января 2025 года состоялся релиз стабильной версии Linux Mint 22.1 «Xia», основанной на пакетной базе Ubuntu 24.04 LTS (Noble Numbat), а также на ядре Linux 6.8. Доступны для скачивания сборки на Cinnamon 6.4 (со встроенной функцией Night Light, поддерживающей как XOrg, так и Wayland), Xfce и MATE. Это событие произошло спустя шесть месяцев после релиза Linux Mint 22 «Wilma» (Вильма).

Читать далее

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

Релиз утилиты для синхронизации файлов Rsync 3.4.0

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

15 января 2025 года состоялся релиз открытой утилиты для синхронизации файлов Rsync 3.4.0. Исходный код проекта написан на C. Решение распространяется под лицензией GNU General Public License. Предыдущий стабильный выпуск проекта Rsync 3.3.0 состоялся в апреле 2024 года.

Читать далее

Я решил, что обнаружил баг…

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

Я работал над совершенствованием эмулятора DOS и внезапно обнаружил, что достаточно тривиальная операция работает неправильно. Когда просишь COMMAND.COM сделать следующее:

echo AB> foo.txt
echo CD>> foo.txt

то вместо ABCD в файл foo.txt записывается ABBC.

Я проверил и убедился, что fwrite() действительно передаются правильные данные, но хитрость в том, что действия COMMAND.COM не так просты, как можно подумать:

  • Открываем foo.txt
  • Записываем «AB»
  • Закрываем foo.txt
  • Открываем foo.txt
  • Выполняем поиск на один байт назад от конца файла
  • Считываем один байт
  • Записываем «CD»
  • Закрываем foo.txt

Такая сложность нужна, потому что COMMAND.COM хочет учесть случай, когда файл заканчивается символом Ctrl-Z (в нашем случае его нет): в этом случае Ctrl-Z необходимо удалить. Почему-то последовательность «поиск-чтение-запись» работала странно. Но почему?
Читать дальше →

Вышел Debian 12.9

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

11 января 2025 года вышло в релиз обновление Debian 12.9. Популярный дистрибутив доступен для девяти официально поддерживаемых архитектур, включая Intel IA-32/x86 (i686), AMD64/x86–64, ARM EABI (armel), ARM64, ARMv7 (armhf), mipsel, mips64el, PowerPC 64 (ppc64el) и IBM System z (s390x). 10 июня 2023 года состоялся выпуск первой стабильной версии Debian 12 «Bookworm».

Читать далее

Релиз Sigil 2.4.0 — открытого мультиплатформенного редактора электронных книг в формате ePub

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

11 января 2025 года состоялся релиз бесплатного с открытым исходным кодом мультиплатформенного редактора электронных книг Sigil 2.4.0, использующего Qt6 (и QtWebEngine). Проект предназначен для редактирования книг в формате ePub (как ePub 2, так и ePub 3). Предыдущая стабильная версия решения вышла в августе 2024 года.

Читать далее

Релиз Tails 6.11

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

9 января 2025 года состоялся выпуск специализированного дистрибутива Tails 6.11, ориентированного на конфиденциальность, основанного на пакетной базе Debian 12, поставляемого с рабочим столом GNOME 43 и предназначенного для анонимного выхода в сеть. Выпуск Tails 6.0 состоялся в феврале 2023 года.

Читать далее

Сборка Django-приложения при помощи Nuitka в onefile

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

Привет, Хабр!

Меня зовут Данил, и я старший специалист в компании Увеон. Занимаюсь серверной частью Termidesk Assistant - это утилита для удаленных рабочих столов.

К нам в команду пришла интересная задача, нужно было собрать всю серверную часть в один исполняемый файл (.elf) и в дальнейшем на его основе сделать установочный файл (.deb), чтобы создать и запустить сервис. Все это для того, чтобы оптимизировать наше приложение как по скорости, так и по внешним зависимостям, а также создать возможность использования Termidesk Assistant в локальных изолированных сетях.

О Nuitka мало что известно в Python-среде, особенно мало информации на русском языке, поэтому я решил взяться за написание этой статьи и расписать всё то, что успел собрать за время работы над задачей.

Читать далее

Сравнение Bash и Python при написании скриптов в Linux

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

Sh (от shell) является обязательным командным интерпретатором для UNIX‑совместимых систем по стандарту POSIX. Однако по возможностям он ограничен, поэтому зачастую вместо него используются более богатые возможностями командные интепретаторы, такие как Bash или Ksh. Ksh обычно используется в операционных системах семейства BSD, в то время как Bash — в операционных системах семейства Linux. Командные интерпретаторы облегчают решение мелких задач, связанных с работой с процессами и файловой системой. В данной статье будут рассматриваться операционные системы Linux, поэтому речь пойдёт о Bash.

Python, в свою очередь, является полноценным интерпретируемым языком программирования, и он также нередко используется для написания скриптов или решения мелких прикладных задач при работе с операционной системой. Современную UNIX‑подобную систему сложно представить как без Sh, так и без Python, если только это не устройство с минималистичной ОС вроде маршрутизатора. Например, в Ubuntu Oracular пакет python3 удалить не получится хотя бы потому, что от него зависит пакет grub‑common, от которого, в свою очередь зависят пакеты grub2-common и, соответственно, grub‑pc, то есть непосредственно загрузчик операционной системы. Таким образом, Python 3 можно смело использовать как замену Bash в случае необходимости.

Читать далее