· | 07.05.2024 | Релиз набора компиляторов GCC 14 (77 +14) | ||||
После года разработки опубликован релиз свободного набора компиляторов GCC 14.1, первый значительный выпуск в новой ветке GCC 14.x. В соответствии с новой схемой нумерации выпусков, версия 14.0 использовалась в процессе разработки, а незадолго до выхода GCC 14.1 уже ответвилась ветка GCC 15.0, на базе которой будет сформирован следующий значительный релиз GCC 15.1.
Основные изменения:
| ||||||
Обсуждение (77 +14) |
Тип: Программы |
| ||||||
· | 07.05.2024 | Атака TunnelVision, позволяющая перенаправить VPN-трафик через манипуляции с DHCP (47 +11) | ||||
Вниманию публики предложен метод атаки TunnelVision, позволяющий при наличии доступа к локальной сети или контроля над беспроводной сетью, осуществить перенаправление на свой хост трафика жертвы в обход VPN (вместо отправки через VPN, трафик будет отправлен в открытом виде без туннелирования на систему атакующего). Проблеме подвержены любые VPN-клиенты, не использующие изолированные пространства имён сетевой подсистемы (network namespace) при направлении трафика в туннель или не выставляющие при настройке туннеля правила пакетного фильтра, запрещающие маршрутизацию VPN-трафика через имеющиеся физические сетевые интерфейсы.
Суть атаки в том, что атакующий может запустить свой DHCP-сервер и использовать его для передачи клиенту информации для изменения маршрутизации. В частности, атакующий может воспользоваться предоставляемой в протоколе DHCP опцией 121 (RFC-3442, принят в 2002 году), предназначенной для передачи сведений о статических маршрутах, для внесения изменений в таблицу маршрутизации на машине жертвы и направления трафика в обход VPN. Перенаправление осуществляется через выставления серии маршрутов для подсетей с префиксом /1, которые имеют более высокий приоритет, чем применяемый по умолчанию маршрут с префиксом /0 (0.0.0.0/0), соответственно трафик вместо выставленного для VPN виртуального сетевого интерфейса, будет направлен через физический сетевой интерфейс на хост атакующего в локальной сети. Атака может быть осуществлена в любых операционных системах, поддерживающих 121 опцию DHCP, включая Linux, Windows, iOS и macOS, независимо от используемого протокола VPN (Wireguard, OpenVPN, IPsec) и набора шифров. Платформа Android атаке не подвержена, так как не обрабатывает опцию 121 в DHCP. При этом атака позволяет получить доступ к трафику, но не даёт возможность вклиниться в соединения и определить содержимое, передаваемое с использованием защищённых протоколов уровня приложений, таких как TLS и SSH, например, атакующий не может определить содержимое запросов по HTTPS, но может понять к каким серверам они отправляются. Для защиты от атаки можно запретить на уровне пакетного фильтра отправку пакетов, адресованных в VPN-интерфейс, через другие сетевые интерфейсы; блокировать DHCP-пакеты с опцией 121; использовать VPN внутри отдельной виртуальной машины (или контейнера), изолированной от внешней сети, или применять специальные режимы настройки туннелей, использующие пространства имён в Linux (network namespace). Для экспериментов с проведением атаки опубликован набор скриптов.
Можно отметить, что идея локального изменения маршрутизации не нова и ранее обычно использовалась в атаках, нацеленных на подмену DNS-сервера. В похожей атаке TunnelCrack, в которой перенаправление трафика осуществлялось через замену шлюза по умолчанию, проблема затрагивала все проверенные VPN-клиенты для iOS, в 87.5% VPN-клиентов для macOS, 66.7% для Windows, 35.7% для Linux и 21.4% для Android. В контексте VPN и DHCP метод также упоминался ранее, например, ему посвящён один из докладов на прошлогодней конференции USENIX 2023 (исследование показало, что 64.6% из 195 протестированных VPN-клиентов подвержены атаке). Для подстановки маршрутов ранее также предлагалось использовать специально оформленный USB-брелок, симулирующий работу сетевого адаптера, который при подключении к компьютеру при помощи DHCP объявляет себя в качестве шлюза. Кроме того, при наличии контроля за шлюзом (например, при подключении жертвы к контролируемой атакующим беспроводной сети) была разработана техника подстановки пакетов в туннель, воспринимаемых в контексте сетевого интерфейса VPN. Потоки данных при использовании VPN: Потоки данных после совершения атаки:
| ||||||
Обсуждение (47 +11) |
Тип: Проблемы безопасности |
Интересно
| ||||||
· | 06.05.2024 | Выпуск Lacmus 1.0.0, инструмента для поиска пропавших людей (65 +35) | ||||
Состоялся релиз программы Lacmus 1.0 "Furious Vaporization". Проект представляет собой кроссплатформенное решение для автоматизации поиска и спасения пропавших людей с помощью алгоритмов компьютерного зрения и AI. Проект написан на языке C# и распространяется под лицензией GPLv3, а его разработка велась более пяти лет в тесном контакте с сообществом поисково-спасательных отрядов.
Программный комплекс Lacmus позволяет осуществлять автоматизированный поиск по фотографиям, отснятым с БПЛА, помогает выявлять снимки, на которых присутствует потерявшийся человек, и предоставляет пользователю координаты искомого объекта. Работа программы основана на применении нейронных сетей и алгоритмов компьютерного зрения для распознавания людей на снимках с БПЛА, что позволяет увеличить эффективность поисковых операций, сократить время на их проведение и, в конечном итоге, повысить вероятность успешного спасения потерявшихся людей. Программа поддерживает различные операционные системы, включая Linux, Windows и macOS, и обеспечивает возможность использования различных типов графических ускорителей, таких как GPU NVIDIA, Intel, AMD, NPU и TPU, для оптимизации работы нейронных сетей. Для пользовательского интерфейса используется кроссплатформенный фреймворк AvaloniaUI, а для запуска моделей машинного обучения применяется ONNX Runtime и легковесная версия TensorFlow. Модели компьютерного зрения распространяются в виде подключаемых модулей, которые можно скачать в каталоге ML-моделей в окне настроек программы, притом каждый такой плагин содержит в себе необходимые зависимости, избавляя конечного пользователя от установки дополнительных зависимостей и библиотек. В качестве основных архитектур нейронных сетей используются YOLOv5 и RetinaNet. Проект развивается при поддержке ассоциации Lacmus Foundation, которая занимается открытыми исследованиями в области поиска и спасения пропавших людей. Организация не имеет юридических структур и основана на добровольных началах. Статистика говорит о том, что ежегодно в мире тысячи людей пропадают без вести. Проект Lacmus призван быть лакмусовой бумажкой (за что и получил своё название) в решении этой проблемы, обеспечивая поисковым и спасательным службам современные средства для эффективного выполнения их задач и спасения как можно большего числа жизней.
| ||||||
· | 06.05.2024 | Фонд СПО объявил обладателей ежегодной премии за вклад в развитие свободного ПО (32 +8) | ||||
На конференции LibrePlanet 2024 состоялась церемония награждения, на которой объявлены лауреаты ежегодной премии "Free Software Awards 2023", учрежденной Фондом свободного ПО (FSF) и присуждаемой людям, внесшим наиболее значительный вклад в развитие свободного ПО, а также социально значимым свободным проектам. Победители получили памятные пластинки и грамоты (премия FSF не подразумевает денежного вознаграждения).
Премию за продвижение и развитие свободного ПО получил Бруно Хайбле (Bruno Haible), сопровождающий проект Gnulib, развивающий коллекцию типового кода для совместного использования в различных пакетах GNU. Бруно также является одним из создателей CLISP, реализации языка LISP, и участником разработки GNU M4, Automake, libiconv и gettext. В номинации, вручаемой проектам, принёсшим значительную пользу обществу и способствовавшим решению важных социальных задач, награда присуждена французскому проекту code.gouv.fr, который помогает государственным учреждениям в переходе на использование свободного и открытого ПО, а также занимается сопровождением процессов открытия кода проектов, разработанных в госучреждениях. В номинации за выдающийся вклад нового участника в развитие свободного ПО, которая присуждается новичкам, первый вклад которых показал заметную приверженность движению свободного ПО, премию получил Ник Логоззо (Nick Logozzo), студент Университета штата Нью-Йорк в Стони-Бруке, развивающий набор приложений Nickvision для GNOME, написанных на C# с использованием GTK 4 и libadwaita. Среди проектов Ника программа Parabolic для загрузки видео/аудио из Web и просмотра YouTube без выполнения кода на JavaScript (обвязка над утилитой yt-dlp), система тэгирования музыки Tagger, система управления финансами Denaro, визуализатор звука Cavalier и FlatpakGenerator, генератор Flatpak-файлов для проектов на C#. Список прошлых победителей:
Премию за развитие социально значимых свободных проектов получили организации и сообщества: GNU Jami (2022), SecuRepairs (2021), CiviCRM (2020), Let's Encrypt (2019), OpenStreetMap (2018), Public Lab (2017), SecureDrop (2016), Library Freedom Project (2015), Reglue (2014), GNOME Outreach Program for Women (2013), OpenMRS (2012), GNU Health (2011), Tor Project (2010), Internet Archive (2009), Creative Commons (2008), Groklaw (2007), Sahana (2006) и Wikipedia (2005).
| ||||||
Обсуждение (32 +8) |
Тип: К сведению |
| ||||||
· | 06.05.2024 | Выпуск децентрализованной видеовещательной платформы PeerTube 6.1 (52 +19) | ||||
Состоялся выпуск децентрализованной платформы для организации видеохостинга и видеовещания PeerTube 6.1. PeerTube предлагает независимую от отдельных поставщиков альтернативу YouTube, Dailymotion и Vimeo, использующую сеть распространения контента на базе P2P-коммуникаций и связывания между собой браузеров посетителей. Наработки проекта распространяются под лицензией AGPLv3.
Платформа PeerTube изначально была основана на применении BitTorrent-клиента WebTorrent, запускаемого в браузере и использующего технологию WebRTC для организации прямого P2P-канала связи между браузерами. Позднее вместо WebTorrent был задействован протокол HLS (HTTP Live Streaming) в связке с WebRTC, позволяющий адаптивно управлять потоком в зависимости от полосы пропускания. Для объединения разрозненных серверов с видео в общую федеративную сеть, в которой посетители участвуют в доставке контента и имеют возможность подписки на каналы и получения уведомлений о новых видео, задействован протокол ActivityPub. Предоставляемый проектом web-интерфейс построен с использованием фреймворка Angular. Федеративная сеть PeerTube образуется как содружество связанных между собой небольших серверов хостинга видео, на каждом из которых имеется свой администратор и могут быть приняты свои правила. Каждый сервер с видео выполняет роль BitTorrent-трекера, на котором размещены учётные записи пользователей данного сервера и их видео. Идентификатор пользователя формируются в форме "@имя_пользователя@домен_сервера". Передача данных при просмотре осуществляется непосредственно из браузеров других посетителей, просматривающих контент. Если видео никто не просматривает, отдача организуется сервером, на который изначально загружено видео (используется протокол WebSeed). Помимо распределения трафика между пользователями, просматривающими видео, PeerTube также позволяет узлам, запущенным авторами для первичного размещения видео, кэшировать видео других авторов, формируя распределённую сеть не только из клиентов, но и из серверов, а также обеспечивая отказоустойчивость. Имеется поддержка потокового вещания (live streaming) с доставкой контента в режиме P2P (для управления стримингом могут использоваться типовые программы, такие как OBS). Для начала вещания через PeerTube пользователю достаточно загрузить на один из серверов видеоролик, описание и набор тегов. После этого ролик станет доступен во всей федеративной сети, а не только с сервера первичной загрузки. Для работы с PeerTube и участия в распространении контента достаточно обычного браузера и не требуется установка дополнительного ПО. Пользователи могут отслеживать активности в выбранных видеоканалах, подписавшись на интересующие каналы в федеративных социальных сетях (например, в Mastodon и Pleroma) или через RSS. Для распространения видео с использованием P2P-коммуникаций пользователь также может добавить на свой сайт специальный виджет со встроенным web-плеером. В настоящее время для размещения контента функционирует 1126 серверов, поддерживаемых разными добровольцами и организациями. Если пользователя не устраивают правила размещения видео на определённом сервере PeerTube, он может подключиться к другому серверу или запустить свой собственный сервер. Для быстрого развёртывания сервера предоставляется преднастроенный образ в формате Docker (chocobozzz/peertube).
| ||||||
Обсуждение (52 +19) |
Тип: Программы |
| ||||||
· | 05.05.2024 | Лидер проекта NixOS вышел из управляющего совета после угрозы создания форка (194 –12) | ||||
Элко Долстра (Eelco Dolstra), автор пакетного менеджера Nix, объявил об уходе с поста главы управляющего совета некоммерческой организации NixOS Foundation, обеспечивающей поддержку инфраструктуры, управляющей финансовыми потоками и решающей юридические вопросы проекта NixOS. Решение принято после публикации коллективного открытого письма с критикой действий Элко и опасениями за будущее Nix и NixOS. Изначально письмо опубликовано анонимными авторами, но после его размещения под ним подписалось 160 человек.
В опубликованном открытом письме упоминается кризис лидерства в проекте и неспособность текущего руководства должным образом реагировать на проблемы сообщества, что приводит к тому, что эти проблемы в течение многих лет остаются нерешёнными. В частности, отмечается неспособность руководства сформировать и отстаивать ценности, которых должно придерживаться сообщество, а также привлекать к ответственности участников за недостойное поведение. По мнению авторов открытого письма, в сообществе сложилась токсичная культура и руководство NixOS Foundation бездействует и ничего не делает для её искоренения. Утверждается, что возникновение подобной токсичной культуры, которая угрожает жизнеспособности проекта, является следствием модели поведения Элко Долстра как лидера, который подрывает авторитет других участников, отказывается делегировать другим полномочия, игнорирует проблемы сообщества и поддерживает конфликты интересов (например, недовольство касается недостаточной поддержки представителей маргинальных групп, а также подозрений в продвижении интересов компании Determinate Systems, в которой он является соучредителем). В письме говорится, что проект достиг переломного момента, после которого дальнейшее бездействие может привести к потере доверия, прекращению корпоративной поддержки, уходу части участников, а также к распаду наиболее активного ядра сообщества и развалу команды модераторов. Подписавшие письмо выразили готовность поддержать форк проекта, в случае если Элко Долстра не сложит с себя полномочия. Элко вменяется оказание давления на остальных членов управляющего совета и управляющие разработкой команды с целью отмены определённых решений. Например, после выработки консенсуса относительно возможности сообщества накладывать вето на спонсоров конференции NixCon, Элко Долстра, будучи единственным несогласным, инициировал повторное рассмотрение этого вопроса (активисты из сообщества пытались недопустить участие компании Anduril, использующей NixOS, из-за выполнения военных заказов). Из примеров злоупотребления имеющейся властью для отмены решений, которые должны приниматься совместно, также упоминаются отказы Долстра предоставить права на рецензирование кода для давних участников и блокирование внесения изменения в систему сборки, согласованного в рамках RFC. Также упоминается, что из-за нерегламентируемой правилами власти команда модераторов чувствует себя бессильной и опасается, что её авторитет может быть подорван действиями Элко Долстра. В ответ на письмо Элко Долстра опубликовал заявление, в котором пояснил, что в последние годы он почти не участвует в управлении Nixpkgs и NixOS, и передал управление другим членам сообщества, на которых у него теперь не больше влияния, чем у любого другого активного участника. Формально он обладает полномочиями, не большими, чем у других членов управляющего совета NixOS Foundation, а с января не входит в комитет, принимающий RFC. Дополнительно подчёркивается, что сообщество самоорганизовано и организация NixOS Foundation никаким образом контролирует его и не управляет им. Что касается вопроса о спонсорах и участниках NixCon, то Элко отстаивает недопустимость дискриминации и считает вредным отказ от поддержки тех, кто приносит пользу проекту - у каждого свой взгляд на этику и свои ценности, кто-то одобряет деятельность Anduril, а кто-то осуждает, и не разработчикам судить о том чьи взгляды верны, а чьи нет, кому разрешать, а кому запрещать участие в проекте и конференциях. Элко также отверг обвинения в ущемлении меньшинств, указав на то, что изначально старался сформировать инклюзивную среду, открытую для всех людей, независимо от их происхождения и особенностей. После рассмотрения открытого письма управляющий совет NixOS Foundation заявил о проведении собрания в течение 14 дней, на котором будет сформирована новая структура управления проектом, подчинённая сообществу и нацеленная на удовлетворение потребностей сообщества. После создания нового органа управления, члены текущего управляющего совета, в который помимо Элко, входят ещё четыре участника, передадут новой структуре свои полномочия. Процесс трансформации управления в проекте будут проходить публично и каждый участник сможет проконтролировать его. В заявлении управляющего совета признаётся, что управление проектом не успевает адаптироваться к изменениям и росту сообщества. Несмотря на то, что управляющий совет создавался в основном для решения финансовых, юридических и административных вопросов, многие воспринимали его и как орган руководства сообществом. В ответ совет брал на себя функции арбитра, разбирающего конфликты, но был не готов справиться с возникающими в сообществе кризисами, вызванными проблемами коммуникации, модерирования и определения полномочий при принятии решений. Планируется, что новая структура управления будет наделена всеми полномочиями для решения вопросов в таких областях, как политика в отношении спонсоров, улаживание конфликтов интересов, полномочия при модерировании и защита меньшинств.
| ||||||
Обсуждение (194 –12) |
Тип: Тема для размышления |
Интересно
| ||||||
· | 05.05.2024 | Выпуск Chrome OS 124 (62 –4) | ||||
Представлен релиз операционной системы Chrome OS 124, основанной на ядре Linux, системном менеджере upstart, сборочном инструментарии ebuild/portage, открытых компонентах и web-браузере Chrome 124. Пользовательское окружение Chrome OS ограничивается web-браузером, а вместо стандартных программ задействованы web-приложения, тем не менее, Chrome OS включает в себя полноценный многооконный интерфейс, рабочий стол и панель задач. Вывод на экран осуществляется при помощи графического стека Freon (ведётся работа по переходу на использование Wayland) и оконного менеджера Aura. Исходные тексты распространяются под свободной лицензией Apache 2.0. Сборка Chrome OS 124 доступна для большинства актуальных моделей Chromebook. Для использования на обычных компьютерах предлагается редакция Chrome OS Flex.
Основные изменения в Chrome OS 124:
| ||||||
Обсуждение (62 –4) |
Тип: Программы |
| ||||||
· | 05.05.2024 | Выпуск загрузочных прошивок Libreboot 20240504 и Canoeboot 20240504 (53 +14) | ||||
Представлен выпуск свободной загрузочной прошивки Libreboot 20240504, который получил статус стабильной версии (прошлый стабильный релиз был опубликован в июне 2023 года). Проект развивает готовую сборку проекта Coreboot, предоставляющую замену проприетарным прошивкам UEFI и BIOS, отвечающим за инициализации CPU, памяти, периферийных устройств и других компонентов оборудования, с минимизацией бинарных вставок.
Libreboot нацелен на формирование системного окружения, позволяющего обойтись без проприетарного ПО настолько, насколько это возможно, не только на уровне операционной системы, но и прошивки, обеспечивающей загрузку. Libreboot дополняет Coreboot средствами для упрощения применения конечными пользователями, формируя готовый дистрибутив, которым может воспользоваться любой пользователь, не имеющий специальных навыков. В новом выпуске добавлена поддержка ноутбука Dell Latitude E5420 и решены проблемы с выходом из спящего режима S3 других поддерживаемых ноутбуков Dell Latitude. Для ноутбуков HP EliteBook 8560w решены проблемы с WiFi. Проведена работа по повышению стабильности и исправлению ошибок при работе с ранее поддерживаемыми платами. Включены изменения, накопленные за год в тестовых ветках Libreboot. Загрузчик GRUB обновлён до версии 2.12 и расширен патчами для поддержки USB 3.0 и для использования хэшей argon2 при формировании ключей к шифрованным разделам LUKS2 (вместо PBKDF2). В SeaBIOS предоставлена возможность загрузки с накопителей NVMe SSD. В сборочной системе проведена оптимизация, нацеленная на снижение размера кода. Для прошивки образов Libreboot в материнские платы вместо утилиты flashrom задействован инструментарий flashprog.
Оборудование, поддерживаемое в Libreboot:
В дополнение к Libreboot сформирован выпуск проекта Canoeboot 20240504, который позиционируется как полностью свободная сборка Libreboot, соответствующая требованиям Фонда СПО к полностью свободным дистрибутивам. Выпуск Canoeboot основан на версии Libreboot 20240504, из которой удалены компоненты и изменения, не соответствующие критериям Фонда СПО. Необходимость в создании отдельной сборки Libreboot объясняется тем, что сформированные Фондом СПО требования к свободным дистрибутивам не допускают поставку бинарных прошивок (firmware) и любых бинарных компонентов драйверов. При этом начиная с 2022 года проект Libreboot перешёл на более прагматичные правила использования бинарных компонентов, позволившие заметно расширить спектр поддерживаемого аппаратного обеспечения. Новой целью проекта Libreboot стала поддержка всего оборудования, поддерживаемого в coreboot, за исключением бинарных компонентов, влияющих на безопасность и надёжность (например, в Libreboot используется me_cleaner для отключения Intel ME). При таком подходе Libreboot потерял статус полностью свободного дистрибутива с позиции Фонда Свободного ПО. Устройства, поддерживаемые в Canoeboot:
| ||||||
Обсуждение (53 +14) |
Тип: Программы |
| ||||||
· | 05.05.2024 | После многолетнего забвения опубликован минималистичный web-браузер Dillo 3.1 (150 +38) | ||||
Опубликован релиз минималистичного web-браузера Dillo 3.1, написанного на языке С/C++ с использованием библиотеки FLTK. Браузер отличается небольшим размером (исполняемый файл около мегабайта при статической сборке) и минимальным потреблением памяти, при наличии графического интерфейса с поддержкой вкладок и закладок, поддержке HTTPS и базового набора web-стандартов (есть поддержка HTML 4.01 и CSS, но нет JavaScript). Функциональность Dillo может расширяться через плагины, например, имеются плагины для протоколов IPFS и Gemini.
Код проекта распространяется в рамках лицензии GPLv3.
Прошлый значительный выпуск Dillo 3.0.0 был опубликован в 2011 году, а последнее корректирующее обновление 3.0.5 в 2015 году. В 2016 году умер один из ключевых разработчиков проекта, после чего в 2017 году разработка Dillo полностью остановилась, а в 2022 истёк срок оплаты за домен проекта и сайт dillo.org прекратил существование. В январе 2024 года предпринята попытка возрождения проекта, результаты которой представлены в составе Dillo 3.1. В 2023 году также было создано ответвление Dillo+ (Dillo-Plus), в которое были включены накопившиеся исправления (последнее изменение в Dillo-Plus было добавлено два месяца назад). Основные изменения в Dillo 3.1:
| ||||||
Обсуждение (150 +38) |
Тип: Программы |
| ||||||
· | 04.05.2024 | Для FreeBSD развивается новый графический инсталлятор. Отчёт FreeBSD за 1 квартал (245 +15) | ||||
Организация FreeBSD Foundation ведёт разработку нового графического инсталлятора для FreeBSD, который призван сделать более удобным для новичков процесс установки и начальной настройки системы. Отмечается, что новый инсталлятор повысит привлекательность системы для пользователей, привыкших к графическим инсталляторам и воспринимающих текстовые интерфейсы как анахронизм. Кроме того, графический режим установки позволит сформировать более целостное окружение в сборках, использующих FreeBSD в качестве основы для запуска пользовательских окружений.
Для выполнения связанных с установкой процессов используются уже проверенные компоненты существующего инсталлятора bsdinstall, графический интерфейс в котором реализован через замену инструментария для построения консольных диалогов bsddialog на новый инструментарий gbsddialog, в котором задействованы диалоги и виджеты на базе библиотеки GTK. Подобный подход позволяет реализовать возможность установки в графическом режиме, используя имеющуюся инфраструктуру инсталлятора bsdinstall и сохранив в нём возможность консольного режима установки. Аналогичная замена может быть произведена и для конфигуратора bsdconfig, который уже поддерживает опцию "-X" для создания простого графического интерфейса через вызов Xdialog (на базе GTK2) вместо bsddialog. Использование gbsddialog вместо Xdialog позволит получить более современное оформление интерфейса. Рабочая реализация нового инсталлятора уже готова для тестирования, а необходимые для его интеграции в основной состав патчи предложены для рецензирования. Для включения в bsdinstall предложены переведённые на bsddialog интерфейсы для добавления пользователя, установки пароля администратора и выбора часового пояса, а также компоненты для выбора реализации утилиты dialog на основе значения переменной окружения $DIALOG и поддержки активации графического режима.
Примечательно, что проект GhostBSD (редакция FreeBSD с рабочим столом MATE) уже использует собственный графический инсталлятор, написанный на Python и PyGTK, но его перенос во FreeBSD не рассматривается, так как он потребует включения Python в качестве дополнительной зависимости, что приведёт к заметному увеличению размера установочного носителя. Несколько лет назад при поддержке FreeBSD Foundation также развивался прототип графического инсталлятора, написанного на языке Lua и реализованного в форме http-сервера, предоставляющего web-интерфейс, который открывается в однооконном режиме при помощи web-браузера. Из других событий, упомянутых в отчёте FreeBSD за первый квартал 2024 года, можно отметить:
| ||||||
Обсуждение (245 +15) |
Тип: К сведению |
| ||||||
· | 04.05.2024 | Основатель QEMU и FFmpeg опубликовал звуковой кодек TSAC (128 +46) | ||||
Французский математик Фабрис Беллар (Fabrice Bellard), основавший в своё время проекты QEMU, FFmpeg, BPG, QuickJS, TinyGL и TinyCC, опубликовал формат кодирования звука TSAC и связанный с ним инструментарий для сжатия и распаковки звуковых файлов. Формат ориентирован на передачу данных с очень низким битрейтом, например, 5.5 kb/s для моно и 7.5 kb/s для стерео, при сохранении приемлемого качества музыки и речи. Использование TSAC позволяет упаковать музыкальную композицию, длительностью 3.5 минут и с частотой дискретизации 44.1 kHz (стерео), в файл размером 192 КБ, который будет почти неотличим от оригинала на слух неискушённого обывателя. Заявлено, что наработки проекта распространяются под лицензией MIT, но исходный код на данный момент не предложен для загрузки.
В качестве основы при создании TSAC использован звуковой кодек Descript, который расширен для поддержки стереозвука и переведён на использование другой модели машинного обучения на базе нейронной сети с архитектурой "трансформер", позволившей увеличить степень сжатия за счёт реконструкции утерянных деталей с учётом модели человеческого слухового восприятия. Модель занимает около 200 МБ в сжатом виде и оформлена в детерминированной представлении, которое гарантирует получение одинакового результата независимо от используемых CPU/GPU и числа задействованных при вычислениях потоков. Кодировщик может работать с использованием для вычислений только CPU (для ускорения поддерживаются инструкции AVX2), но для достижения высокой производительности рекомендуется задействовать GPU. В текущем виде может применяться API CUDA для ускорения с использованием GPU NVIDIA на базе микроархитектур Ampere, ADA и Hopper (RTX 3090, RTX 4090, RTX A6000, A100 и H100), имеющих как минимум 4 ГБ видеопамяти. Для преобразования звуковых файлов перед кодированием применяется FFmpeg.
Дополнительно можно отметить обновление развиваемой Белларом утилиты ts_zip, предназначенной для эффективного сжатия текстовых данных, используя механизм предсказания токенов на основе системы машинного обучения и большой языковой модели RWKV 169M v4. При сжатии архива википедии утилита ts_zip позволила сжать данные в 7.3 раза, а при сжатии кода ядра Linux 1.2 - в 7.8 раз. Для сравнения уровни сжатия при использовании утилиты xz составили 4.7 и 5.5 раз, соответственно. Ценой высокой эффективности сжатия является низкая скорость сжатия и большие требования к ресурсам (минимум 4 ГБ ОЗУ). На системе с GPU RTX 4090 производительность сжатия составляет примерно 1 MB/s.
| ||||||
Обсуждение (128 +46) |
Тип: К сведению |
| ||||||
· | 04.05.2024 | Компания Nintendo добилась блокировки 8535 репозиториев с форками эмулятора Yuzu (60 –13) | ||||
Компания Nintendo отправила в GitHub требование о блокировке 8535 репозиториев с форками эмулятора Yuzu. Требование отправлено на основании действующего в США Закона об авторском праве в цифровую эпоху (DMCA). Проекты обвиняются в обходе технологий защиты, применяемых в приставках Nintendo Switch. В настоящее время GitHub уже выполнил требования Nintendo и заблокировал репозитории с форками Yuzu.
В приставках Nintendo для предотвращения запуска пиратских копий игр и защиты от копирования игр применяется шифрование содержимого прошивки и файлов с играми, используя криптографические ключи. Компания Nintendo владеет или управляет авторским правом на игры для своих приставок и отвечает за предоставление лицензий на распространение игр для своих устройств. Условия использования разрешают запуск игр исключительно только на своей игровой консоли и запрещают использование неавторизированных устройств. Утверждается, что эмулятор Yuzu и ответвлённые от него репозитории нарушают права Nintendo, так как специально созданы для обхода методов технической защиты и используют в процессе работы незаконно полученные копии криптографических ключей для расшифровки игр и прошивок. Несмотря на то, что извлечение ключей для расшифровки игр ложится на пользователей и производится с использованием сторонних инструментов, сам факт расшифровки на стороне эмулятора воспринимается Nintendo как незаконный обход технических мер защиты, даже если пользователь использует ключи, извлечённые из собственной купленной копии (в условиях использования запрещено создание копий для запуска на других платформах). Эмулятор Yuzu преподносился компанией Nintendo как инструмент для превращения персональных компьютеров в средство для массового нарушения интеллектуальной собственности. В своё время авторы эмулятора Yuzu имели неосторожность публично упоминать о том, что большинство пользователей эмулятора используют пиратские ключи, на сайте Yuzu имелись инструкции по извлечению ключей и говорилось о необходимости переноса некоторых файлов со взломанной приставки, что использовалось Nintendo как повод для обвинения проекта в потворстве пиратству и несанкционированному копированию игр. После подачи судебного иска разработчики Yuzu согласились на мировое соглашение, подразумевающее закрытие проекта и выплату Nintendo компенсации в 2.4 млн долларов.
| ||||||
Обсуждение (60 –13) |
Тип: Тема для размышления |
| ||||||
· | 03.05.2024 | Выпуск языка программирования Mojo 24.3 (51 +7) | ||||
Опубликован выпуск инструментария языка программирования Mojo 24.3, позволяющего компилировать проекты на локальной системе. В состав включены компоненты, необходимые для разработки приложений на языке Mojo, включая компилятор, runtime, интерактивную REPL-оболочку для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) с поддержкой автодополнения ввода, форматирования кода и подсветки синтаксиса, модуль для интеграции с Jupyter для сборки и запуска Mojo notebook. Исходные тексты стандартной библиотеки Mojo открыты под лицензией Apache 2.0 c исключениями от проекта LLVM, допускающими смешивание с кодом под лицензией GPLv2. Исходный код компилятора планируют открыть после завершения проектирования внутренней архитектуры.
Одновременно сформирован выпуск движка MAX Engine 24.3, предлагающего платформу для разработок в области машинного обучения. MAX Engine дополняет инструментарий Mojo средствами для разработки и отладки приложений, использующих модели машинного обучения в различных форматах (TensorFlow, PyTorch, ONNX и т.п.). Сборки Mojo SDK и MAX Engine подготовлены для платформы Linux и macOS. Среди изменений в Mojo 24.3:
Язык Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Синтаксис Mojo основан на языке Python, а система типов близка к C/C++. Проект преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программирования, подходящий для широкого круга задач и сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов. Простота достигается благодаря использованию привычного синтаксиса языка Python, а разработке конечных продуктов способствуют возможность компиляции в машинный код, механизмы безопасной работы с памятью и задействование средств для аппаратного ускорения вычислений. Для достижения высокой производительности поддерживается распараллеливание вычислений с задействованием всех имеющихся в системе аппаратных ресурсов гетерогенных систем, таких как GPU, специализированные ускорители для машинного обучения и векторные процессорные инструкции (SIMD). При интенсивных вычислениях распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++. Язык поддерживает статическую типизацию и средства для безопасной низкоуровневой работы с памятью, напоминающие возможности языка Rust, такие как отслеживание времени жизни ссылок и проверка заимствования переменных (borrow checker). При этом в языке доступны и возможности для низкоуровневой работы, например, возможно прямое обращение к памяти в режиме unsafe с использованием типа Pointer, вызов отдельных SIMD-инструкций или доступ к аппаратным расширениям, таким как TensorCores и AMX. Mojo может использоваться как в режиме интерпретации с использованием JIT, так и для компиляции в исполняемые файлы (AOT, ahead-of-time). В компилятор встроены современные технологии автоматической оптимизации, кэширования и распределённой компиляции. Исходный код на языке Mojo преобразуются в низкоуровневый промежуточный код MLIR (Multi-Level Intermediate Representation), развиваемый проектом LLVM. Компилятор позволяет применять для генерации машинного кода различные бэкенды, поддерживающие MLIR.
| ||||||
Обсуждение (51 +7) |
Тип: Программы |
| ||||||
· | 02.05.2024 | Выпуск Rust 1.78. Язык Borgo, сочетающий сильные стороны Go и Rust (165 +18) | ||||
Опубликован релиз языка программирования общего назначения Rust 1.78, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io. Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок. Основные новшества:
Дополнительно можно отметить язык программирования Borgo, который пытается быть более выразительным, чем язык Go, но менее сложным, чем язык Rust. Borgo комбинирует лучшие черты Go и Rust, восполняя недостатки каждого из языков. Например, язык Go прост и понятен, но не предоставляет расширенных средств для обеспечения безопасности при работе с типами. Язык Rust предоставляет средства для безопасного программирования, но переусложнён. Проект развивает Marco Sampellegrini, автор книги "The Simple Haskell Handbook" и разработчик системы непрерывной интеграции Quad CI. В Borgo используется статическая типизация, аналогичные языку Go типы и синтаксис, похожий на Rust. Указание точек с запятой в конце строк в коде на Borgo не является обязательным. Код на языке Borgo компилируется в представление на языке Go, которое полностью совместимо с существующими пакетами для языка Go. Код компилятора написан на языке Rust и распространяется под лицензией ISC. use fmt enum NetworkState<T> { Loading, Failed(int), Success(T), } struct Response { title: string, duration: int, } fn main() { let res = Response { title: "Hello world", duration: 0, } let state = NetworkState.Success(res) let msg = match state { NetworkState.Loading => "still loading", NetworkState.Failed(code) => fmt.Sprintf("Got error code: %d", code), NetworkState.Success(res) => res.title, } fmt.Println(msg) }
| ||||||
Обсуждение (165 +18) |
Тип: Программы |
| ||||||
· | 02.05.2024 | Компания Valve выпустила Proton 9.0, пакет для запуска Windows-игр в Linux (90 +39) | ||||
Компания Valve опубликовала стабильный релиз проекта Proton 9.0, основанного на кодовой базе проекта Wine и нацеленного на обеспечение запуска в Linux игровых приложений, созданных для Windows и представленных в каталоге Steam. Наработки проекта распространяются под лицензией BSD.
Proton позволяет напрямую запускать в Linux-клиенте Steam игровые приложения, поставляемые только для Windows. Пакет включает в себя реализацию DirectX 9/10/11 (на базе пакета DXVK) и DirectX 12 (на базе vkd3d-proton), работающие через трансляцию вызовов DirectX в API Vulkan, предоставляет улучшенную поддержку игровых контроллеров и возможность использования полноэкранного режима независимо от поддерживаемых в играх разрешений экрана. Для увеличения производительности многопоточных игр поддерживаются механизмы "esync" (Eventfd Synchronization) и "futex/fsync". Среди изменений в новой версии Proton:
| ||||||
Обсуждение (90 +39) |
Тип: Программы |
| ||||||
Следующая страница (раньше) >> |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |