Π’ GNOME Π±ΡƒΠ΄Π΅Ρ‚ усилСна Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ systemd

Адриан Π’ΠΎΠ²ΠΊ (Adrian Vovk), ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ обновляСмого дистрибутива carbonOS ΠΈ инсталлятора для GNOME OS, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² systemd-homed ΠΈ systemd-sysupdate, объявил ΠΎ внСсСнии Π² GNOME ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ усилят Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡ‚ systemd. Π’ грядущих выпусках GNOME 49 ΠΈ 50 Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ собствСнныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для запуска экрана Π²Ρ…ΠΎΠ΄Π° Π² систСму Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Π½Π° ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ возмоТности systemd, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ создания Π½ΠΎΠ²Ρ‹Ρ… прослоСк для поставки GNOME Π² дистрибутивах ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… systemd. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого ΠΊΠΎΠ΄Π° Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… возмоТностСй systemd упростит сопровоТдСниС, ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ костылСй ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ сохранСниС ΠΈ восстановлСниС сСансов.

Π‘ 2015 Π³ΠΎΠ΄Π° Π² GNOME ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сСансов systemd-logind, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠΉ Π½Π° смСну ConsoleKit. Π’ дистрибутивах, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… systemd, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ elogind, нСзависимый ΠΎΡ‚ systemd ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ logind, ΠΈΠ»ΠΈ ΠΏΠ°Ρ‚Ρ‡ΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ConsoleKit. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ GNOME ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· systemd Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ Π½Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, поэтому ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ зависит ΠΎΡ‚ сторонних энтузиастов.

Π’ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… выпусках GNOME Π² дисплСйном ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅ GDM Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ задСйствована инфраструктура userdb, прСдоставляСмая systemd, которая Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ собой собствСнный сСрвис AccountsService. GNOME ΠΈ systemd сами ΠΏΠΎ сСбС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ запуск Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ графичСского сСанса для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΈ этом GDM ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько экранов Π²Ρ…ΠΎΠ΄Π° для запуска ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… графичСских сСансов, Ρ‡Ρ‚ΠΎ примСняСтся ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ доступС ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ столу ΠΈ Π½Π° multiseat-систСмах с нСсколькими ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ устройствами Π²Π²ΠΎΠ΄Π°. Подобная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² GDM Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° 15 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΡΡ‚Ρ‹Π»ΡŒ ΠΈ Π½Π΅ совмСстима с соврСмСнным dbus-broker, поэтому Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ systemd-userdb для динамичСского выдСлСния ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… записСй ΠΈ запуска ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра экрана Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ΄ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· GNOME Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ собствСнного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался Π² gnome-session Π² качСствС запасного ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для запуска сСрвисов GNOME Π² окруТСниях Π±Π΅Π· systemd. ВстроСнный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сСрвисов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π» Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ запуска desktop-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ отслСТивания Ρ€Π°Π±ΠΎΡ‚Ρ‹ связанных с Π½ΠΈΠΌΠΈ сСрвисов. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сСрвисов ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ измСнялся послСдниС 17 Π»Π΅Ρ‚ ΠΈ СдинствСнной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ Π΅Π³ΠΎ использованиС Π² GDM для запуска экрана Π²Ρ…ΠΎΠ΄Π° Π² систСму. ПослС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° GDM Π½Π° использованиС systemd для запуска экрана Π²Ρ…ΠΎΠ΄Π° Π² систСму, Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ собствСнный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сСансов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ возмоТности сохранСния ΠΈ восстановлСния сСансов.

Для упрощСния Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΊ измСнСниям дистрибутивов, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… systmed, Π² GNOME 49 Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска GDM Π±Π΅Π· userdb с использованиСм фиксированного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ gdm-greeter для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сСанса Π²Ρ…ΠΎΠ΄Π°, gdm-greeter-2 для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Ρ‚.ΠΏ. Π’ GNOME 50 ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ встроСнный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ сСрвисов ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ дистрибутивов Π±Π΅Π· systemd Π² срочном порядкС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ прослойки для Π·Π°ΠΌΠ΅Π½Ρ‹ systemd-userdb (io.systemd.Multiplexer, userdb Varlink API) ΠΈ процСсса запуска сСанса (session leader), Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ с примСняСмым Π² дистрибутивС сСрвисным ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ.

Π’Π°ΠΊΠΆΠ΅ потрСбуСтся Π·Π°ΠΌΠ΅Π½Π° исполняСмого Ρ„Π°ΠΉΠ»Π° gnome-session-ctl, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ процСссом запуска сСанса, сСрвисом D-Bus ΠΈ systemd. Π—Π°ΠΌΠ΅Π½Ρƒ gnome-session-ctl Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ выпуска GNOME 49.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ