исходный код линукс смотреть

Пишем простой модуль ядра Linux

Захват Золотого Кольца-0

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

Модуль ядра Linux — это скомпилированный двоичный код, который вставляется непосредственно в ядро Linux, работая в кольце 0, внутреннем и наименее защищённом кольце выполнения команд в процессоре x86–64. Здесь код исполняется совершенно без всяких проверок, но зато на невероятной скорости и с доступом к любым ресурсам системы.

Не для простых смертных

Написание модуля ядра Linux — занятие не для слабонервных. Изменяя ядро, вы рискуете потерять данные. В коде ядра нет стандартной защиты, как в обычных приложениях Linux. Если сделать ошибку, то повесите всю систему.

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

Можно в основном забыть традиционные парадигмы разработки приложений. Кроме загрузки и выгрузки модуля, вы будете писать код, который реагирует на системные события, а не работает по последовательному шаблону. При работе с ядром вы пишете API, а не сами приложения.

У вас также нет доступа к стандартной библиотеке. Хотя ядро предоставляет некоторые функции вроде printk (которая служит заменой printf ) и kmalloc (работает похоже на malloc ), в основном вы остаётесь наедине с железом. Вдобавок, после выгрузки модуля следует полностью почистить за собой. Здесь нет сборки мусора.

Необходимые компоненты

Прежде чем начать, следует убедиться в наличии всех необходимых инструментов для работы. Самое главное, нужна машина под Linux. Знаю, это неожиданно! Хотя подойдёт любой дистрибутив Linux, в этом примере я использую Ubuntu 16.04 LTS, так что в случае использования других дистрибутивов может понадобиться слегка изменить команды установки.

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

И наконец, нужно хотя бы немного знать C. Рабочая среда C++ слишком велика для ядра, так что необходимо писать на чистом голом C. Для взаимодействия с оборудованием не помешает и некоторое знание ассемблера.

Установка среды разработки

На Ubuntu нужно запустить:

Устанавливаем самые важные инструменты разработки и заголовки ядра, необходимые для данного примера.

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

Начинаем

Приступим к написанию кода. Подготовим нашу среду:

Запустите любимый редактор (в моём случае это vim) и создайте файл lkm_example.c следующего содержания:

Мы сконструировали самый простой возможный модуль, рассмотрим подробнее самые важные его части:

Теперь можно внедрить модуль и проверить его. Для этого запускаем:

Если всё нормально, то вы ничего не увидите. Функция printk обеспечивает выдачу не в консоль, а в журнал ядра. Для просмотра нужно запустить:

Вы должны увидеть строку “Hello, World!” с меткой времени в начале. Это значит, что наш модуль ядра загрузился и успешно сделал запись в журнал ядра. Мы можем также проверить, что модуль ещё в памяти:

Для удаления модуля запускаем:

Если вы снова запустите dmesg, то увидите в журнале запись “Goodbye, World!”. Можно снова запустить lsmod и убедиться, что модуль выгрузился.

Как видите, эта процедура тестирования слегка утомительна, но её можно автоматизировать, добавив:

в конце Makefile, а потом запустив:

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

Теперь у нас есть полностью функциональный, хотя и абсолютно тривиальный модуль ядра!

Немного интереснее

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

Поскольку приложениям запрещено просматривать память в пространстве ядра, для взаимодействия с ними приходится использовать API. Хотя технически есть несколько способов такого взаимодействия, наиболее привычный — создание файла устройства.

В нашем примере мы возвращаем “Hello, World”. Хотя это не особенно полезная функция для приложений, она всё равно демонстрирует процесс взаимодействия с приложением через файл устройства.

Вот полный листинг:

Тестирование улучшенного примера

Теперь наш пример делает нечто большее, чем просто вывод сообщения при загрузке и выгрузке, так что понадобится менее строгая процедура тестирования. Изменим Makefile только для загрузки модуля, без его выгрузки.

Теперь после запуска make test вы увидите выдачу старшего номера устройства. В нашем примере его автоматически присваивает ядро. Однако этот номер нужен для создания нового устройства.

(в этом примере замените MAJOR значением, полученным в результате выполнения make test или dmesg )

Параметр c в команде mknod говорит mknod, что нам нужно создать файл символьного устройства.

Теперь мы можем получить содержимое с устройства:

или даже через команду dd :

Вы также можете получить доступ к этому файлу из приложений. Это необязательно должны быть скомпилированные приложения — даже у скриптов Python, Ruby и PHP есть доступ к этим данным.

Когда мы закончили с устройством, удаляем его и выгружаем модуль:

Заключение

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

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

Источник

Администрирование систем Linux. Ядро Linux

Часть VI. Работа с ядром ОС

Глава 28. Ядро Linux

28.1. О ядре Linux

В 1991 году Linus Torvalds разработал первую версию ядра Linux. Он выложил исходный код ядра в открытый доступ, после чего другие люди начали вносить свой вклад в его развитие. В разработке одной из версий ядра (а именно, версии 2.6.27, выпущенной в ноябре 2008 года) поучаствовало более 4000 разработчиков.

Читайте также:  геморрагическая анемия мкб 10 код

28.1.3. Файл /proc/cmdline

28.1.4. Однопользовательский режим

В некоторых дистрибутивах данная возможность заблокирована (на этапе компиляции ядра ОС).

28.1.5. Параметр init=/bin/bash

28.1.6. Файл журнала /var/log/messages

28.1.7. Утилита dmesg

Утилита dmesg выводит все сообщения ядра ОС (с момента последней загрузки системы).

28.2. Исходный код ядра Linux

28.2.1. Ресурс ftp.kernel.org

Каждый человек может воспользоваться ftp-клиентом для осуществления анонимного входа на ресурс ftp.kernel.org.

Архивы исходного кода всех версий ядра Linux расположены по пути pub/linux/kernel/.

28.2.2. Директория /usr/src

Данная структура поддиректорий очень похожа на структуру поддиректорий директории /usr/src в дистрибутиве Ubuntu за тем исключением, что в данном случае в директории расположен исходный код одной версии ядра (и эта версия более новая).

Нам придется погрузиться немного глубже в дерево директорий для того, чтобы добраться до исходного кода ядра ОС в дистрибутиве Red Hat!

28.2.3. Загрузка исходного кода ядра ОС

После этого вы можете использовать команду aptitude install для загрузки и установки пакета программного обеспечения с исходным кодом ядра Linux из состава дистрибутива Debian.

Red Hat Enterprise Linux

Ранее пакет программного обеспечения с исходным кодом ядра ОС располагался на четвертом установочном диске с пакетами исходного кода дистрибутива Red Hat Enerprise Linux. Файл пакета программного обеспечения носит имя kernel-2.6.9-42.EL.src.rpm (пример для дистрибутива RHEL версии 4 с обновлением 4). Также данный пакет доступен по адресу ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/ (пример для дистрибутива RHEL 5).

Для загрузки пакета исходного кода ядра ОС дистрибутива RHEL следует использовать длинную команду (команда должна располагаться в одной строке без завершающего символа \).

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

28.3. Файлы, используемые в процессе загрузки ядра ОС

Файл vmlinuz из директории /boot является сжатым исполняемым файлом ядра ОС.

28.3.3. Файл System.map

Файл System.map содержит таблицу символов и изменяется при каждой компиляции ядра ОС. Таблица символов также присутствует в файле /proc/kallsyms (до выпуска ядра Linux версии 2.6 данный файл носил имя /proc/ksyms).

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

28.4. Модули ядра Linux

28.4.1. Информация о модулях ядра Linux

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

28.4.2. Директория /lib/modules

28.4.4. Утилита lsmod

28.4.5. Файл /proc/modules

28.4.6. Зависимости модулей ядра ОС

Некоторые модули ядра ОС зависят от других модулей ядра ОС. В следующем примере вы можете увидеть, что модуль ядра ОС с именем nfsd зависит от модулей с именами exportfs, lockd и sunrpc.

28.4.7. Утилита insmod

Утилита insmod не определяет зависимости между модулями ядра ОС, поэтому в следующем примере нам не удалось загрузить с помощью данной утилиты модуль с именем isdn (так как модуль с именем isdn зависит от модуля с именем slhc).

28.4.8. Утилита modinfo

28.4.9. Утилита modprobe

Большим преимуществом утилиты modprobe перед утилитой insmod является возможность первой утилиты загружать все необходимые модули ядра ОС, в то время, как вторая утилита требует загрузки всех необходимых модулей ядра ОС в ручном режиме. Другое преимущество данной утилиты заключается в отсутствии необходимости указания полного пути к файлу загружаемого модуля ядра ОС.

В данном примере показан способ загрузки модуля с именем isdn с помощью утилиты modprobe с автоматической загрузкой модуля с именем shlc в фоновом режиме.

28.4.10. Файл /lib/modules/ /modules.dep

28.4.11. Утилита depmod

28.4.12. Утилита rmmod

28.4.14. Файл конфигурации /etc/modprobe.conf

28.5. Компиляция ядра ОС

28.5.1. Дополнительная версия

Перейдите в директорию /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/ и измените дополнительную версию ядра ОС, заменив значение параметра extraversion в файле с именем Makefile.

28.5.2. Команда make mrproper

28.5.4. Команда make menuconfig

28.5.5. Команда make clean

28.5.6. Команда make bzImage

Исполнение данной команды завершится выводом информации о пути к результирующему файлу bzImage (а также времени компиляции, если вы также использовали команду time ).

28.5.7. Команда make modules

28.5.8. Команда make modules_install

Для копирования всех скомпилированных модулей ядра ОС в директорию /lib/modules следует всего лишь выполнить команду make modules_install (на установку модулей уйдет примерно 20 секунд). В примере ниже приведен список содержимого директории модулей перед исполнением упомянутой команды.

А это список содержимого этой же директории после исполнения этой команды. Обратите внимание на то, что в процессе исполнения команды make modules_install была создана новая директория для модулей нового ядра ОС.

28.5.9. Директория /boot

28.5.10. Утилита mkinitrd

Ядро ОС обычно использует файл initrd в процессе загрузки. Мы можем использовать утилиту mkinitrd для генерации этого файла. Убедитесь в том, что вы используете корректное имя ядра ОС!

28.5.11. Системный загрузчик

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

28.6. Компиляция отдельного модуля ядра ОС

28.6.1. Файл исходного кода hello.c

Небольшая программа на языке C послужит основой для нашего модуля ядра ОС.

28.6.2. Файл Makefile

Файл для сборки модуля ядра ОС будет содержать следующие строки.

Для компиляции модуля необходимы только два описанных файла.

Теперь у нас больше файлов.

Отлично, значит мы можем загрузить наш модуль ядра ОС с именем «hello».

Источник

Где я могу найти исходный код для основных команд Linux? [закрыто]

К сожалению, я не смог найти базовые команды, такие как ‘ls’, которые мне кажутся достаточно простыми для начала.

Вы случайно не знаете какую-нибудь веб-страницу, книгу или что-то еще?

Читайте также:  код диагноза по мкб d26 0

Я работаю в Ubuntu 12.04

8 ответов

Вы можете найти всю необходимую информацию здесь:

Если вы хотите загрузить последний источник, вы должны использовать git:

git clone git://git.sv.gnu.org/coreutils

Чтобы установить git на свой компьютер с Ubuntu, вы должны использовать apt-get (git не входит в стандартную установку Ubuntu):

sudo apt-get install git

По правде говоря, здесь вы можете найти конкретный источник для команды ls :

Прямые ссылки на источники для некоторых популярных программ в coreutils :

ls является частью coreutils. Вы можете получить это с помощью git:

На самом деле больше здравомыслящих источников предоставляет http://suckless.org их sbase хранилище:

git clone git://git.suckless.org/sbase

Они более четкие, умные, простые и бесполезные, например, ls.c имеет всего 369 LOC

После этого будет легче понять более сложный код GNU.

Вы можете просмотреть код в Интернете. Откройте один из архивов и проверьте папку src.

CoreUtils, о котором говорится в других статьях, НЕ показывает реальную реализацию большинства функций, которые, я думаю, вам нужны. В большинстве случаев он предоставляет внешние интерфейсы для реальных функций, которые получают данные, которые можно найти здесь:

Он основан на Gnulib фактическом исходном коде в подкаталог lib

Вы можете найти много команд здесь:

Источник

FOSS News №90 — дайджест материалов о свободном и открытом ПО за 20—26 сентября 2021 года

Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире.

Главные темы нового выпуска:

Оглавление

Главное

В Linux Foundation отмечают острый спрос компаний на профессиональных опенсорс-разработчиков

Linux Insider пишет о недавно проведённом Linux Foundation исследовании: «Найм сотрудников восстанавливается после пандемии, поскольку организации стремятся продолжить свою деятельность по цифровой трансформации. Об этом свидетельствуют 50 процентов опрошенных Linux Foundation работодателей, которые заявили, что в этом году они увеличивают найм. Однако работодатели должны быть готовы столкнуться с двумя серьёзными проблемами. Во-первых, 92% менеджеров сообщают о трудностях с поиском специалистов, но им также трудно удержать существующих в условиях жёсткой конкуренции. Во-вторых, быстрое внедрение программного обеспечения с открытым исходным кодом увеличивает разрыв в навыках на рынке. Это особенно верно в отношении навыков разработки и эксплуатации облачных приложений, которые возглавляют список необходимых у 46% менеджеров по найму».

Статьи об исследовании:

Срок поддержки Ubuntu 14.04 и 16.04 увеличен до 10 лет

OpenNET пишет: «Компания Canonical объявила об увеличении срока формирования обновлений для LTS-выпусков Ubuntu 14.04 и 16.04 c 8 до 10 лет. Ранее решение об аналогичном продлении срока поддержки было принято для Ubuntu 18.04 и 20.04. Таким образом обновления будут выпускаться для Ubuntu 14.04 до апреля 2024 года, для Ubuntu 16.04 — до апреля 2026 года, для Ubuntu 18.04 до апреля 2028 года, а для Ubuntu 20.04 до апреля 2030 года. Половину из 10-летнего срока сопровождения поддержка будет осуществляться в рамках программы ESM (Extended Security Maintenance), которая охватывает обновления с устранением уязвимостей для ядра и наиболее важных системных пакетов. Доступ к ESM-обновлениям ограничен только для пользователей платной подписки на услуги технической поддержки или до трёх машин при регистрации при условии персонального использования или до 50 машин для членов Ubuntu membership. Для обычных пользователей доступ к обновлениям предоставляется только в течение пяти лет с момента релиза».

1 октября в Москве состоится конференция Russian Open Source Summit

Пользователь BobcatKat пишет в новостях на Хабре: «Российский фонд развития информационных технологий (РФРИТ) анонсировал проведение в Москве Russia Open Source Summit. В рамках мероприятия планируется открытое обсуждение российских стратегий развития, разработки и использования программного обеспечения на основе открытого кода. РФРИТ также выступил организатором мероприятия. Обсуждение проведут в открытом формате, в том числе в Telegram-канале RuOpenSource. Регистрация на саммит проходит на сайте саммита. Участие в мероприятии бесплатное. Оно начнётся в десять утра в Radisson Collection Hotel (гостиница «Украина») на Кутузовском проспекте. На пленарной сессии организаторы представят проект стратегии, после чего участникам предложат выбрать одну из рабочих групп для внесения предложений в документ. Мероприятие продолжится презентацией успешных Open Source проектов и серией тематических треков: „Образование“ (популяризация OS-проектов и решений среди студентов и повышению интереса к сфере), „Инструменты и механизмы поддержки“ (взаимодействие государства и разработчиков, включая программ по поощрению развития OS-сферы) и „Индустрия и сообщество“ (поощрение OS-инноваций в IT-компаниях, монетизация проектов)».

HackerOne реализовал выплату вознаграждений за выявление уязвимостей в открытом ПО

OpenNET пишет: «Платформа HackerOne, дающая возможность исследователям безопасности информировать компании и разработчиков программных продуктов о выявлении уязвимостей и получать за это вознаграждения, сообщила о включении открытого программного обеспечения в область действия проекта Internet Bug Bounty. Выплаты вознаграждений теперь могут быть совершены не только за выявление уязвимостей в корпоративных системах и сервисах, но и за информирование о проблемах в широком спектре открытых проектов, развиваемых как командами, так и отдельными разработчиками».

Google меняет модель развития Android на более близкую к ядру Linux

Ars Technica пишет: «Linux Plumbers Conference состоится на этой неделе, и, поскольку Android является одним из крупнейших дистрибьюторов ядра Linux в мире, инженер-программист Google Тодд Кьос выступил с отчётом от команды Android. Android 12, который выйдет в ближайшее время, обещает приблизить Android к основной линейке Linux, предоставив конечным пользователям «Generic Kernel Image» (GKI) от Google. … Кьос объяснил: „Большой прорыв заключается в том, чтобы вывести весь код, специфичный для оборудования, из общего ядра в модули конкретного поставщика“ … Кьос говорит, что Google намерен сократить путь доставки для этих модулей поставщиков, минимизировав код вне дерева, потому что они с коллегами „хотят быть как можно ближе к апстриму“».

Arm разработал архитектуру и инструменты для транспортных средств со значительной ролью ПО

Analytics India Mag пишет: «Британский гигант в области разработки полупроводников и программного обеспечения Arm недавно представил новые инструменты для производителей микросхем и компаний отрасли автомобилестроения. Он выпустил программную архитектуру и эталонную реализацию под названием SOAFEE, а также две новые эталонные аппаратные платформы. SOAFEE объединяет потребности автомобильной отрасли по работе с технологиями реального времени и в сфере обеспечения безопасности с преимуществами облачного подхода. С другой стороны, две новые эталонные платформы позволяют исследовать и тестировать рабочие нагрузки на высокопроизводительных кристаллах на базе Arm перед коммерциализацией».

Читайте также:  код да винчи что это такое

Код SOAFEE доступен в GitLab компании [→]

Предложения экспертов «Базальт СПО» включены в проект государственной стратегии развития СПО в России

Сайт «Базальт СПО» пишет: «Алексей Смирнов, председатель совета директоров „Базальт СПО“, и Алексей Новодворский, заместитель генерального директора „Базальт СПО“, приняли участие в подготовке стратегии развития свободного программного обеспечения в России. 15 сентября 2021 г. они участвовали во встрече представителей ИТ-сообщества, посвященной обсуждению первого проекта этой стратегии. На мероприятии собрались эксперты отрасли, представители крупных российских компаний-разработчиков ПО, некоммерческих организаций и Минцифры России».

Кратко об основных принятых в проект предложениях:

На сайте материал завершён словами: «Алексей Смирнов особо подчеркнул: сегодняшнюю проблему геополитического противостояния России и Запада можно решать не за счёт изоляции своих ИТ-разработок, а за счёт выхода на мировую арену путём компетентного участия в международных проектах СПО».

Презентация окончательного варианта стратегии, по данным «Базальт СПО», «состоится на саммите по свободному программному обеспечению Russian Open Source Summit 1 октября 2021 года», про который я писал выше.

Михаил Мишустин «анонсировал» российский аналог GitHub

BobcatKat приводит в новостях на Хабре отрывок стенограммы видеообращения Председателя Правительства РФ Михаила Мишустина к участникам международного форума Kazan Digital Week: «Более того, запустим программу стимулирования участия нашего бизнеса в международных open-source-альянсах. У нас должна появиться собственная платформа в этой сфере (другими словами – российский „Гитхаб“). Продолжим продвигать наши разработки за рубеж. Внедрять отечественное инженерное программное обеспечение для моделирования и проектирования объектов в промышленности. Создавать условия для привлечения высококлассных специалистов IT-сектора и возвращения в Россию тех, кто уехал работать за границу».

Представлен модуль ядра, способный в разы ускорить OpenVPN

OpenNET пишет: «Разработчики пакета для создания виртуальных частных сетей OpenVPN представили модуль ядра ovpn-dco, позволяющий существенно ускорить производительность VPN. Несмотря на то, что модуль пока развивается с оглядкой только на ветку linux-next и имеет статус экспериментального, он уже достиг уровня стабильности, позволившего задействовать его для обеспечения работы сервиса OpenVPN Cloud. По сравнению с конфигурацией на основе интерфейса tun применение модуля на стороне клиента и сервера при использовании шифра AES-256-GCM позволило добиться прироста пропускной способности в 8 раз (с 370 Mbit/s до 2950 Mbit/s). При применении модуля только на стороне клиента пропускная способность возросла в три раза для исходящего трафика и не изменилась для входящего. При применении модуля только на стороне сервера пропускная способность возросла в 4 раза для входящего трафика и на 35% для исходящего».

Проект Waydroid развивает пакет для запуска Android в дистрибутивах GNU/Linux

OpenNET пишет: «Проектом Waydroid подготовлен инструментарий, позволяющий сформировать в обычном Linux-дистрибутиве изолированное окружение для загрузки полного системного образа платформы Android и организовать запуск с его помощью Android-приложений. Код предлагаемого проектом инструментария написан на языке Python и поставляется под лицензией GPLv3. Готовые пакеты формируются для Ubuntu 20.04/21.04, Debian 11, Droidian и Ubports. Окружение формируется при помощи штатных технологий для создания изолированных контейнеров, таких как пространства имён для процессов, идентификаторов пользователей, сетевой подсистемы и точек монтирования. Для управления контейнером задействован инструментарий LXC. Для работы Android поверх обычного ядра Linux загружаются модули «binder_linux» и «ashmem_linux». Окружение рассчитано на работу с сеансом на базе протокола Wayland. В отличие от похожего окружения Anbox, платформе Android предоставляется прямой доступ к оборудованию, без дополнительных прослоек. Предложенный для установки системный образ Android основан на сборках от проекта LineageOS и Android 10».

Короткой строкой

Новости

Мероприятия

Внедрения

ОС Android Automotive от Google появится на автомобилях Honda в 2022 году [→ (en)]

Открытие кода и данных

Дела организаций

Ядро и дистрибутивы

Специальное

Обучение

Мобильные

Функцию сброса разрешений для неиспользуемых приложений перенесут из Android 11 на старые версии [→ 1 (en), 2]

Безопасность

AI & Data Science

Web и близкое

Для разработчиков

Для Mesa развивается фронтэнд OpenCL, написанный на языке Rust [→]

Пользовательское

Plasma 5.23 доступна в тестовом репозитории Kubuntu [→]

Железо

Умелец подключил Radeon RX 6700 XT к Raspberry Pi CM4 [→ 1 (en), 2]

Мессенджеры

Видео

Дела организаций

Новый сайт Linux Mint [→ (en)]

Безопасность

Системное администрирование

Wayland будущее Линукса (2021) [→]

Специальное

Открытый исходный код может помочь улучшить экологию энергосистем [→ (en)]

Пользовательское

Статьи

Дела организаций

Состояние Open Mainframe Project в 2021 [→ (en)]

Разработка контроллера резервного питания. Технология отладки и тюнинг [→]

Ядро и дистрибутивы

Специальное

Базы данных

Установка PhpMyAdmin с Nginx в Ubuntu 20.04 [→]

Мультимедиа

KODI: собираем удобный и функциональный медиацентр для дома. Часть 8. Telegram-бот для qBittorrent [→]

Безопасность

Системное администрирование

DevOps

AI & Data Science

Web и близкое

Для разработчиков

История

Пользовательское

Железо

Разное

Релизы

Ядро и дистрибутивы

Специальное

Мультимедиа

Выпуск программного звукового синтезатора Bespoke Synth 1.0 [→]

Мобильные

Девятнадцатое обновление прошивки Ubuntu Touch [→]

Системное администрирование

Web и близкое

Для разработчиков

Пользовательское

Что ещё посмотреть

Полезные ссылки

Подписывайтесь на наш Telegram канал наш Telegram канал или RSS чтобы не пропустить новые выпуски FOSS News. Также мы есть во всех основных соцсетях:

На этом всё, до следующего воскресенья!

Вы можете принять участие в отборе материалов для дайджестов, используя нашего Telegram бота [→]. Почитать про него и вообще про процесс подготовки дайджестов можно в недавнем спецвыпуске FOSS News [→].

Предложение об оказании поддержки проекту. Для подготовки дайджестов мы чуть ли не с самого начала используем свои средства автоматизации, которые с недавнего времени развиваем коллективом из 6 человек на хакатонах. Сейчас по большей части оплата расходов на хакатоны уже покрывается донатами читателей. Ещё нужно платить за хостинг сервера с ботом сборщиком, базой и с Telegram ботом. Мы будем рады, если вы тоже примете участие в поддержке нашего проекта и проявите солидарность. Уточню, в текущем виде дайджесты будут выпускаться независимо от финансового вопроса, а вот то, насколько лучше они станут и как быстро — зависит уже во многом от финансов. Куда переводить можно увидеть по нажатию Хабра-кнопки «Задонатить» в конце статьи. О расходах привлечённых средств обязуемся отчитываться не реже раза в год. По вопросам финансовой поддержки и другим вариантам поддержки пишите по указанным в профиле контактам или в комментарии.

Источник

Онлайн платформа