Пользователю все это не нужно! хватит пропагандировать линукс

Реализации [ править ]

libdbus

Хотя существует несколько реализаций D-Bus, наиболее широко используется эталонная реализация libdbus , разработанная тем же проектом freedesktop.org, который разработал спецификацию. Однако libdbus — это реализация низкого уровня, которая никогда не предназначалась для непосредственного использования разработчиками приложений, а использовалась в качестве справочного руководства для других повторных реализаций D-Bus (например, тех, которые включены в стандартные библиотеки окружений рабочего стола или в привязки языков программирования. ). Сам проект freedesktop.org рекомендует авторам приложений вместо этого «использовать одну из привязок или реализаций более высокого уровня». Преобладание libdbus как наиболее часто используемой реализации D-Bus привело к тому, что термины «D-Bus» и «libdbus» часто использовались взаимозаменяемо, что приводило к путанице.

GDBus

GDBus — это реализация D-Bus на основе потоков GIO, включенных в GLib , предназначенная для использования в GTK + и GNOME . GDBus — это не оболочка libdbus, а полная и независимая реализация спецификации и протокола D-Bus. MATE Desktop и Xfce (версия 4.14), которые также основаны на GTK + 3, также используют GDBus.

QtDBus

QtDBus — это реализация D-Bus, включенная в библиотеку Qt начиная с ее версии 4.2. Этот компонент используется приложениями, библиотеками и компонентами KDE для доступа к службам D-Bus, доступным в системе.

sd-bus

В 2013 году проект systemd переписал libdbus в попытке упростить код но это также привело к значительному увеличению общей производительности D-Bus. В предварительных тестах BMW обнаружила, что библиотека D-Bus systemd повысила производительность на 360%. В версии 221 systemd API sd-bus был объявлен стабильным.

libnih-dbus

Проект libnih предоставляет облегченную «стандартную библиотеку» поддержки C для D-Bus. Кроме того, он имеет хорошую поддержку кросс-компиляции.

kdbus

kdbus реализован как драйвер символьного устройства. Все коммуникации между процессами происходят через узлы специальных символьных устройств (см. Devfs ).

Проект kdbus был направлен на повторную реализацию D-Bus в качестве опосредованного ядром механизма одноранговой связи между процессами . Помимо улучшений производительности, kdbus будет иметь преимущества, вытекающие из других функций ядра Linux, таких как пространства имен и аудит, безопасность от посредничества ядра, закрытие условий гонки и возможность использования D-Bus во время загрузки и завершения работы (как требуется systemd). Включение kdbus в ядро ​​Linux оказалось спорным, и было отклонено в пользу как более общего средства межпроцессного взаимодействия .

NVIDIA — за нежелание сотрудничать с комьюнити

В 2012 году Линус заявил, что NVIDIA — худшая компания из всех, с которыми приходилось иметь дело сообществу Linux. Он раскритиковал NVIDIA прямо во время своего выступления перед студентами финского Университета Аалтo. Причина недовольства — в том, что NVIDIA не хочет сотрудничать с сообществом Open Source и скрывает от Linux-разработчиков код своих графических драйверов.

В конце выступления он нецензурно послал NVIDIA, сопроводив это характерным жестом: «NVIDIA, FUCK YOU!»

NVIDIA не остались в стороне и тут же заявили, что не собираются менять политику в отношении Linux:

«Поддержка Linux важна для NVIDIA, и компания понимает, что есть пользователи, которые очень сильно радеют за Linux как open-source-платформу, так же, как мы желаем предоставить им самые быстрые видеодрайвера.

Недавно был поднят вопрос о том, что NVIDIA не поддерживает для Linux технологию Optimus. Выпустив её, мы обеспечили поддержку только для Windows 7. Тем не менее люди из сообщества Open Source сплотились и самостоятельно создали проект по поддержке Optimus — Bumblebee…

Мы понимаем, что многие предпочли бы, чтобы мы выпустили подробную документацию о внутреннем устройстве наших видеодрайверов или чтобы мы более активно участвовали в обсуждениях, касающихся ядра Linux, но мы решили поддерживать Linux путём задействования максимально возможного количества общего кода с Windows, а не вкладывая ресурсы в разработку отдельного кода под Linux. Такое решение… позволит нам предоставить одинаково высокое качество работы с нашим оборудованием вне зависимости от платформы».

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

Вредоносное ПО

Под Linux существуют многие разновидности вредоносных программ: вымогатели, криптомайнеры, руткиты, черви, бэкдоры и трояны удалённого доступа (RAT). Преступники успешно используют их для получения финансовой выгоды, шпионажа, саботажа, хактивизма или просто из желания доказать, что системы могут быть скомпрометированы.

Ниже перечислены наиболее распространённые типы вредоносных программ в экосистеме Linux.

Вымогатели

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

В качестве примера Linux-вымогателей можно привести RansomEXX/Defray7777, относительно недавно портированный под эту операционную систему. Его применяла кибергруппировка Gold Dupont, атакующая организации из сфер здравоохранения и образование и технологические отрасли. 

Другой вымогатель — Erebus, впервые замеченный в сентябре 2016 года, — в июне 2017 года Erebus заразил 153 Linux-сервера южнокорейской хостинговой компании NAYANA и вывел из строя 3400 клиентских сайтов. 

Криптомайнеры

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

Многие вредоносные криптомайнеры не просто заражают Linux-системы, но и очищают их от присутствия майнеров-конкурентов, а также стремятся захватить как можно более мощные системы с практически неограниченными вычислительными возможностями, такие как контейнеры Docker или Redis.

Для проникновения в систему майнеры используют распространённые уязвимости. Например, программа coinminer, детектируемая  компанией Trend Micro под названием Coinminer.Linux.MALXMR.SMDSL64, использует уязвимости обхода авторизации SaltStack (CVE-2020-11651) и обхода каталога SaltStack (CVE-2020-11652).

Вредоносные скрипты

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

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

  • они легко загружаются в виде текстовых файлов;

  • они имеют небольшой размер;

  • меньше вероятность того, что они будут легко обнаружены;

  • они могут быть созданы «на лету».

Веб-шеллы и бэкдоры

Веб-шелл — установленный на веб-сервере скрипт, который выполняет команды преступника и обеспечивает ему прямой доступ к взломанной системе. Например, в августе 2020 года мы столкнулись с Ensiko, веб-оболочкой PHP, нацеленной на Linux, Windows, macOS или любую другую платформу, на которой установлен PHP. Помимо удалённого выполнения кода с помощью Ensiko злоумышленники могут выполнять команды оболочки и повреждать веб-сайты.

Руткиты

Руткит — набор вредоносных программ, которые внедряются в Linux-систему, частично или полностью подменяя стандартные системные утилиты, драйверы и библиотеки. Основная цель руткита — скрывать своё присутствие от администраторов и пользователей скомпрометированной системы, обеспечивая злоумышленнику полный или частичный контроль.

В ходе наших исследований мы сталкивались с несколькими семействами руткитов. Чаще всего это были Umbreon, Drovorub или Diamorphine. 

Introduction to D-Bus

D-Bus is a message bus system, a
simple way for applications to talk to one another. D-Bus supplies both a system daemon (for
events such as “new
hardware device added” or “printer queue
changed”) and a per-user-login-session daemon
(for general IPC needs among user applications). Also, the message
bus is built on top of a general one-to-one message passing
framework, which can be used by any two applications to communicate
directly (without going through the message bus daemon).

This package is known to build and work properly using an LFS-10.1
platform.

Package Information

  • Download (HTTP):
    https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz

  • Download MD5 sum: dfe8a71f412e0b53be26ed4fbfdc91c4

  • Download size: 2.0 MB

  • Estimated disk space required: 21 MB (add 18 MB for the
    tests)

  • Estimated build time: 0.3 SBU (add 8.0 SBU for the tests)

Recommended

Xorg
Libraries (for dbus-launch program) and elogind-246.10 (These are circular
dependencies. First build without them, and then again after both
packages are installed.)

Optional

For the tests: dbus-glib-0.112, , , and Valgrind-3.17.0; for
documentation: Doxygen-1.9.1, xmlto-0.0.28,
Ducktype, and
Yelp Tools

Ускорение загрузки Linux

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

Настраивать Grub будем правильно. Параметры загрузки ядра находятся в файле /etc/default/grub, а именно в строчке GRUB_CMDLINE_LINUX_DEFAULT. Откройте этот файл:

Теперь приводим интересующую нас строчку к такому состоянию:

Разберем подробнее за что отвечает каждый параметр:

  • quiet — вывод, это долго, поэтому говорим ядру что на экран нужно выводить минимум информации
  • rootfstype=ext4 — указываем в какую файловую систему отформатирован корень. У меня ext4.
  • libahci.ignore_sss=1 — Ignore staggered spinup flag, ускоряет загрузку жестких дисков
  • raid=noautodetect — raid я не использую, думаю вы тоже поэтому отключаем.
  • selinux=0 — система полномочий selinux на домашней машине тоже ни к чему, без нее будет быстрее.
  • plymouth.enable=0 — заставка plymouth тоже занимает много времени, поэтому убираем заставку
  • lpj=12053560 — позволяет задать константу loops_per_jiffy, что позволит ядру не вычислять ее каждый раз и сэкономит до 250 миллисекунд. Это значение индивидуально для каждого компьютера.

Чтобы узнать значение последнего параметра выполните:

Нас будет интересовать значение lpj=, укажите его в своем конфигурационном файле.

Также для указания корневого раздела желательно не использовать всякие там UUID, быстрее будет если написать прямо. Для того чтобы конфигуратор grub не использовал grub добавьте в тот же файл строчку:

Сохраните файл и обновим конфигурацию grub:

Проверяем, действительно ли установлены нужные опции:

Да, все правильно, перезагружаем компьютер, и смотрим что вышло:

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

Все macOS-подобные Linux-дистрибутивы

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

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

Запустить на «маке» Siemence NX, Comsol (Fluent) и даже Wolfram Mathematica — не тривиальная задача. Не пользоваться же каждый раз виртуальной машиной, снижая производительность расчетов?

Да и с нативными играми на «макинтошах» все пока довольно грустно, если не брать в расчет облачные сервисы и глобальные магазины — Steam и Epic Games. Мир на них не заканчивается.

Впрочем, есть и обратная проблема: ограничение доступа к играм, платным приложениям и их излишнему количеству. Кто как, а я считаю стоковый Android с привязанным Google Play при отсутствии ограничений явным излишеством.

Кроме того, привычка к настольным ПК меньше «привязывает» людей к постоянному потреблению контента, а это в XXI веке — самая главная вредная привычка.

Итак, с платформой понятно, а есть ли аналоги у macOS в плане интерфейса и удобства использования? Есть, и не один. И все они относятся к Open Source проектам.

На текущий момент наиболее близким оформлением к текущим версиям macOS обладают:

1. Elementary OS на базе Ubuntu со специально разработанным окружением рабочего стола Pantheon в стилистике macOS и комплектом приложений, выполненном в том же духе. Использует собственный открытый магазин приложений.

2. Deepin на основе Debian, который практически полностью копирует оформление операционной системы Apple и предлагает собственную экосистему приложений, созданную для работы в закрытых китайских условиях.

3. ZorinOS Ultimate так же использует Ubuntu с визуализацией GNOME, поэтому, несмотря на внешность macOS, работает как примитивный Windows. К тому же уже упомянутый внешний вид нужно покупать за деньги.

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

5. Kubuntu благодаря использованию KDE в роли оболочки позволяет превратить интерфейс в подобие macOS вручную с максимальной детализацией. Все работает, софт есть на любой вкус уже в базовой поставке.

My baby, just-a wrote me a letter

So far we have connected to the D-Bus (daemon), we have queried the D-Bus service and we have received a response. HOWEVER, we have a message that we can’t quite understand. That’s because it was marshalled into a binary format that is easier and more efficient to send as a message (but more difficult for humans to read).

Now it’s time to decode the response message and view the data encoded within. Luckily, the D-Bus developers have provided all the tools necessary to break open the message and get the contents. Use the following code to make sense of the response.

const char * dbus_result = nullptr;

// Parse response
::dbus_message_get_args(dbus_reply, &dbus_error, DBUS_TYPE_STRING, &dbus_result, DBUS_TYPE_INVALID);

// Work with the results of the remote procedure call
std::cout << "Introspection Result:" << std::endl << std::endl;
std::cout << dbus_result << std::endl;

Now we’ve pulled the string out of the message. The string is XML detailing the interfaces available via the D-Bus. It describes interfaces, methods and their parameters, properties and signals. Below is a snippet of the response from .

  ...
  <interface name="org.freedesktop.DBus.Introspectable">
    <method name="Introspect">
      <arg direction="out" type="s"/>
    </method>
  </interface>
  ...

The snippet above is the interface we used to get this information. As you can see, it details any available methods (i.e. ) along with the parameters and data-types they require (none in this case). Notice that even though we didn’t have any parameters to the call, we see the result described as an argument of type (or string).

Bindings and Independent Implementations

Bindings and independent implementations are linked to from the Bindings Page.

A binding wraps libdbus (and thus automatically gets e.g. new authentication mechanisms and other additions to libdbus), while a reimplementation codes the protocol from scratch (and thus avoids a dependency on the libdbus C library, but has to be kept in sync with new features).

Source code

The latest versions of the D-Bus Specification and the reference implementation are available in the project on the freedesktop.org Gitlab instance.

For other implementations and bindings, please use the source code repository for the appropriate implementation. For example, GDBus is part of the GLib project on GNOME’s Gitlab, and sd-bus is part of the systemd project on Github.

Command Explanations

:
This switch disables doxygen documentation build and install, if
you have doxygen installed. If
doxygen is installed, and you wish
to build them, remove this parameter.

: This
switch disables html documentation build and install, if you have
xmlto installed. If xmlto is installed, and you wish to build
them, remove this parameter.

: This
switch prevents installation of static versions of the libraries.

: This
parameter enables per-user DBus sessions with elogind.

:
These switches disable installation of systemd units on elogind
based systems.

:
This parameter specifies the directory to check for console
ownership.

:
This parameter specifies the location of the PID file.

:
This parameter specifies the location of the system bus socket.

: Builds
extra parts of the code to support all tests. Do not use on a
production build.

: Builds extra
parts of the code to support only unit tests. Do not use on a
production build.

ZFS — за проблемы с лицензированием

Это свежий участник личного антирейтинга Линуса. Файловую систему ZFS Линус раскритиковал в своей рассылке уже в 2020 году:

«Не используйте ZFS. Это же так просто. Я думаю, что её популярность — лишь дань моде, а не что-то серьёзное. К тому же из-за проблем с лицензированием лично я точно не буду иметь с ней дела».

Некоторые разработчики уже добавили поддержку ZFS в свои дистрибутивы — например, в Ubuntu под эту задачу даже создали отдельный модуль ядра.

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

К тому же производителю ZFS, одиозной Oracle, Торвальдс не доверяет — и правильно делает. Этот технологический гигант знаменит своими исками к другим компаниям — так, уже 10 лет тянется суд против Google из-за использования Java в экосистеме Android. Поэтому Линус заявил, что не будет чувствовать себя в безопасности, если интегрирует ZFS в ядро Linux с помощью отдельного модуля.

«Меня не интересует прослойка совместимости с ZFS, которая, как некоторые думают, разделяет проекты. Это не даёт нам никаких преимуществ, учитывая историю исков от Oracle. Я не думаю, что такое решение устранит проблемы с лицензированием».

Чтобы включить ZFS в основное ядро, Линус потребовал от Oracle предоставить подписанное письмо о том, что ZFS находится под лицензией GPL. Oracle ожидаемо отмалчивается.

Обзор

D-Bus — это механизм межпроцессного взаимодействия (IPC), изначально разработанный для замены систем связи программных компонентов, используемых в средах рабочего стола GNOME и KDE Linux ( CORBA и DCOP соответственно). Компоненты этих сред рабочего стола обычно распределяются по множеству процессов, каждый из которых предоставляет лишь несколько — обычно одну — услуг . Эти службы могут использоваться обычными клиентскими приложениями или другими компонентами среды рабочего стола для выполнения своих задач.

Процессы без D-Bus

Те же процессы с D-Bus

Большие группы взаимодействующих процессов требуют плотной сети отдельных каналов связи (с использованием методов IPC «один-к-одному») между ними. D-Bus упрощает требования IPC с помощью одного общего канала.

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

Среды рабочего стола Linux используют возможности D-Bus, создавая экземпляры нескольких шин, в частности:

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

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

D-Bus обеспечивает дополнительные или упрощает существующие функциональные возможности приложений, включая совместное использование информации, модульность и разделение привилегий . Например, информация о входящем голосовом вызове, полученном через Bluetooth или Skype, может быть передана и интерпретирована любым работающим в данный момент музыкальным проигрывателем, который может отреагировать, отключив громкость или приостановив воспроизведение до завершения вызова.

D-Bus также можно использовать как основу для интеграции различных компонентов пользовательского приложения. Например, офисный пакет может обмениваться данными через шину сеанса для обмена данными между текстовым процессором и электронной таблицей .

Хроника пикирующего дистрибутива: зачем убили CentOS?

объявилоFedoraCentOSКто-то всерьез полагал, что после поглощения Red Hat ничего не изменится?объявилатерять позициитематического сабреддитавысказал мнениеcentos.ripпетицияКем бы ни были авторы centos.rip, ехидства им не заниматьдля разработчиков

  1. Часть пользователей из числа представителей крупного бизнеса наверняка предпочтет перейти на RHEL, что обеспечит дополнительную прибыль;
  2. Те, кто рискнет мигрировать на CentOS Stream, пополнят ряды бета-тестеров, а это поможет эффективнее обкатывать новые технологии и быстрее выявлять уязвимости в новых версиях пакетов;
  3. Освободившиеся ресурсы можно использовать для дальнейшего развития Red Hat Enterprise Linux, оставаясь в рамках прежнего бюджета на разработку.

Используя D-Bus, вы можете персонализировать и автоматизировать ваш десктоп.

Каждая современная Linux среда рабочего стола использует D-Bus, систему, позволяющую программным приложениям общаться друг с другом. Благодаря D-Bus, ваш десктоп может быть настроен точно так, как вы хотите. В этой статье я привожу примеры некоторых возможностей D-Dus. Будьте готовы к модификации вашего десктопа.

D-Bus (Desktop Bus) — система межпроцессного взаимодействия (IPC system), которая позволяет
приложениям в операционной системе общаться друг с другом. Создатели D-Bus построили свою
систему с нуля, но находились под сильным влиянием системы DCOP (Desktop COmmunication Protocol)
из среды KDE. В настоящее время D-Bus используется везде — в KDE 4 DCOP уступила D-Bus, а GNOME
переходит на D-Bus вместо своей собственной системы Bonobo. Так что D-Bus стал независимым от
десктопной среды механизмом межпроцессорного взаимодействия. ПО, которое использует D-Bus,
незаметно интегрируется в ваш десктоп, независимо от того, какую среду вы используете. D-Bus
является частью кросс-платформенного проекта freedesktop.org, главным участником которого
является Red Hat.

D-Bus регистрирует каждую программу, имеющую сервисы, доступные для других приложений. Таким
образом, эти приложения видят, какие сервисы доступны. Также, программы могут становиться
доступными для событий системных сервисов (например, определять горячую замену железа).

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

Обычно, D-Bus создает две шины: привилегированную системную шину и сессионную шину. Системная шина позволяет осуществлять широковещательное взаимодействие между процессами, имеющими необходимые права доступа. Ее главное назначение — доставка событий от HAL (Hardware Abstraction Layer) к процессам, работающим с аппаратными событиями. Таким аппаратным событием может быть обнаружение нового аппаратного устройства, или изменение в очереди печати. Вторая шина — сессионная, создается во время авторизации, и с ее помощью будут общаться приложения, с которыми работает пользователь.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: