UKI (Unified Kernel Image) колдоосу менен 252 системалык башкаруучу релиз

Беш айлык иштеп чыгуудан кийин, systemd 252 система менеджеринин релизинин бет ачары көрсөтүлдү.Жаңы версиядагы негизги өзгөрүү модернизацияланган жүктөө процессин колдоонун интеграциясы болду, ал өзөктү жана жүктөгүчтү гана эмес, компоненттерди да текшерүүгө мүмкүндүк берет. санариптик кол тамгаларды колдонуу менен негизги система чөйрөсү.

Сунушталган ыкма жүктөөдө UKI (Unified Kernel Image) өзөктү UEFIден жүктөө үчүн иштеткичти (UEFI жүктөө stub), Linux ядросунун сүрөтүн жана эстутумга жүктөлгөн initrd тутумунун чөйрөсүн бириктирген бирдиктүү ядро ​​сүрөтүн колдонууну камтыйт. тамыр FS монтаждоо алдында этапта баштапкы баштоо үчүн. UKI сүрөтү PE форматындагы бир аткарылуучу файл катары пакеттелген, аны салттуу жүктөгүчтөр аркылуу жүктөөгө же UEFI микропрограммасынан түздөн-түз чакырууга болот. UEFIден чакырганда, ядронун гана эмес, ошондой эле initrd мазмунунун санариптик кол тамгасынын бүтүндүгүн жана ишенимдүүлүгүн текшерүүгө болот.

UKI сүрөтүнүн бүтүндүгүн көзөмөлдөө жана санариптик кол тамгасын түзүү үчүн колдонулган TPM PCR (Ишенимдүү платформа модулунун платформа конфигурациясынын реестри) регистрлеринин параметрлерин эсептөө үчүн, жаңы система d-өлчөмү камтылган. Кол коюуда жана аны коштогон ПТР маалыматында колдонулган ачык ачкычты түздөн-түз UKI жүктөө сүрөтүнө киргизсе болот (ачкыч жана кол PE файлында '.pcrsig' жана '.pcrkey' талааларында сакталат) жана андан сырттан алынган же ички коммуналдык.

Атап айтканда, systemd-cryptsetup, systemd-cryptenroll жана systemd-creds утилиталары бул маалыматты колдонууга ыңгайлаштырылган, анын жардамы менен сиз шифрленген диск бөлүмдөрү санарип кол коюлган өзөккө (бул учурда, шифрленген бөлүмгө жетүү) байланганын камсыздай аласыз. UKI сүрөтү TPMде жайгашкан параметрлердин негизинде санариптик кол коюу менен текшерүүдөн өткөн учурда гана берилет).

Кошумчалай кетсек, systemd-pcrphase утилитасы камтылган, ал ар кандай жүктөө этаптарын TPM 2.0 спецификациясын колдогон криптопроцессорлордун эс тутумунда жайгашкан параметрлерге байланыштырууну көзөмөлдөөгө мүмкүндүк берет (мисалы, сиз LUKS2 бөлүмдүн шифрлөө ачкычын төмөнкүдө гана жеткиликтүү кыла аласыз. initrd сүрөтү жана кийинки этаптарда жүктөөлөр ага кирүүгө бөгөт коюу).

Кээ бир башка өзгөртүүлөр:

  • Орнотууларда башка тил көрсөтүлбөсө, демейки тил C.UTF-8 экенин камсыздайт.
  • Эми биринчи жүктөөдө кызматтын алдын ала коюлган операциясын (“systemctl preset”) аткарууга болот. Жүктөө маалында алдын ала орнотууларды иштетүү үчүн "-Dfirst-boot-full-preset" опциясы менен куруу керек, бирок келечектеги чыгарылыштарда демейки боюнча иштетилиши пландалууда.
  • Колдонуучуну башкаруу бөлүмдөрүнө CPU ресурс контроллерин камтыйт, бул CPUWeight орнотуулары системаны бөлүктөргө (app.slice, background.slice, session.slice) бөлүү үчүн колдонулган бардык бөлүктөргө колдонулушун камсыз кылууга мүмкүндүк берди. CPU ресурстары үчүн атаандашкан ар кандай колдонуучу кызматтары. CPUWeight ошондой эле тийиштүү ресурсту камсыздоо режимин жандыруу үчүн "бос" маанисин колдойт.
  • Убактылуу (“өтмө”) бирдиктерде жана systemd-repart утилитасында /etc/systemd/system/name.d/ каталогунда ачылуучу файлдарды түзүү аркылуу жөндөөлөрдү жокко чыгарууга уруксат берилет.
  • Тутум сүрөттөрү үчүн, /etc/os-release файлындагы “SUPPORT_END=” жаңы параметринин маанисинин негизинде бул фактыны аныктоочу колдоо менен аяктаган желек орнотулган.
  • “ConditionCredential=” жана “AssertCredential=” жөндөөлөрү кошулду, алар тутумда белгилүү бир эсептик дайындар жок болсо, бирдиктерди этибарга албоо же кыйроо үчүн колдонулушу мүмкүн.
  • Демейки SMACK коопсуздук деңгээлин жана бирдикти активдештирүү убактысын аныктоо үчүн system.conf жана user.conf файлдарына “DefaultSmackProcessLabel=” жана “DefaultDeviceTimeoutSec=” жөндөөлөрү кошулду.
  • “ConditionFirmware=” жана “AssertFirmware=” жөндөөлөрүнө жеке SMBIOS талааларын көрсөтүү мүмкүнчүлүгү кошулган, мисалы, /sys/class/dmi/id/board_name талаасында “Custom” мааниси камтылган учурда гана бирдикти ишке киргизүү үчүн Board", сиз "ConditionFirmware=smbios" -талаа(board_name = "Башкача такта")" белгилей аласыз.
  • Инициализация процессинде (PID 1) SMBIOS талааларынан эсептик дайындарды импорттоо мүмкүнчүлүгү (11-тип, "OEM сатуучу саптары") алардын аныктоосуна кошумча катары qemu_fwcfg аркылуу кошулду, бул виртуалдык машиналарга эсептик дайындарды берүүнү жөнөкөйлөштүрөт жана Cloud -init жана ignition сыяктуу үчүнчү тараптын куралдарына муктаждык.
  • Өчүрүү учурунда виртуалдык файл тутумдарын (proc, sys) ажыратуу логикасы өзгөртүлдү жана файлдык системаларды ажыратууну блоктоочу процесстер жөнүндө маалымат журналда сакталат.
  • Системалык чалуу чыпкасы (SystemCallFilter) демейки боюнча riscv_flush_icache тутумдук чалууга кирүү мүмкүнчүлүгүн берет.
  • SD-жүктөөчү жүктөгүч аралаш режимде жүктөө мүмкүнчүлүгүн кошот, мында 64-бит Linux ядросу 32-бит UEFI микропрограммасынан иштейт. ESP (EFI тутум бөлүгү) ичинде табылган файлдардан SecureBoot ачкычтарын автоматтык түрдө колдонуу үчүн эксперименталдык мүмкүнчүлүк кошулду.
  • Bootctl утилитасына жаңы опциялар кошулду: бардык колдоого алынган EFI архитектуралары үчүн бинардык файлдарды орнотуу үчүн “—бардык архитектуралар”, каталог же дисктин сүрөтү менен иштөө үчүн “—root=” жана “—image=”, “—install-source” =” орнотуу булагын аныктоо үчүн, "-efi-boot-option-description=" жүктөө жазууларынын аттарын көзөмөлдөө үчүн.
  • Автоматтык түрдө орнотулган каталогдордун тизмесин көрсөтүү үчүн 'list-automounts' буйругу systemctl утилитасына жана көрсөтүлгөн дисктин сүрөтүнө карата буйруктарды аткаруу үчүн '--image=' опциясы кошулду. "Show" жана "status" буйруктарына "--state=" жана "--type=" опциялары кошулду.
  • systemd-networkd TCP тыгынын көзөмөлдөө алгоритмин тандоо үчүн “TCPCongestionControlAlgorithm=”, TUN/TAP интерфейстеринин файл дескрипторун сактоо үчүн “KeepFileDescriptor=”, NetLabels орнотуу үчүн “NetLabel=”, DCPv6 аркылуу конфигурацияны тездетүү үчүн “RapidCommit=” опцияларын кошту. (RFC 3315). “RouteTable=” параметри маршруттук таблицалардын аттарын көрсөтүүгө мүмкүндүк берет.
  • systemd-nspawn "--bind=" жана "--overlay=" параметрлеринде салыштырмалуу файл жолдорун колдонууга мүмкүндүк берет. Контейнердеги түпкү колдонуучунун идентификаторун хост тарабында орнотулган каталогдун ээсине байланыштыруу үчүн "--bind=" опциясына "rootidmap" параметрине колдоо кошулду.
  • systemd тарабынан чечилген демейки боюнча анын шифрлөөчү сервери катары OpenSSL колдонот (gnutls колдоосу опция катары сакталат). Колдоого алынбаган DNSSEC алгоритмдери эми катаны кайтаруунун ордуна кооптуу катары каралат (SERVFAIL).
  • systemd-sysusers, systemd-tmpfiles жана systemd-sysctl эсептик маалыматты сактоо механизми аркылуу орнотууларды өткөрүү мүмкүнчүлүгүн ишке ашырат.
  • Саптарды версия номерлери менен салыштыруу үчүн ("rpmdev-vercmp" жана "dpkg --compare-versions" сыяктуу) systemd-analyze утилитасына "салыштыруу-версиялар" буйругу кошулду. 'Systemd-analyze dump' буйругуна маска боюнча бирдиктерди чыпкалоо мүмкүнчүлүгү кошулду.
  • Көп баскычтуу уйку режимин тандоодо (токтотуу-андан кийин күтүү режиминде) күтүү режиминде өткөргөн убакыт калган батареянын иштөө мөөнөтүнүн болжолунун негизинде тандалат. Уйку режимине заматта өтүү батареянын заряды 5% дан азыраак калганда пайда болот.
  • Журналдагы ар кандай билдирүүлөрдүн ортосундагы убакыт айырмасын көрсөтүүчү жаңы чыгаруу режими "-o short-delta" "journalctl" кошулду.
  • systemd-repart Squashfs файл системасы менен бөлүктөрдү жана dm-verity үчүн бөлүмдөрдү, анын ичинде санарип кол тамгалары менен түзүүгө колдоо көрсөтөт.
  • Белгиленген таймауттан кийин жигердүү эмес сессияны бүтүрүү үчүн systemd-logindге "StopIdleSessionSec=" жөндөөлөрү кошулду.
  • Systemd-cryptenroll "--unlock-key-file=" параметрин колдонуучуга сунуш кылбастан, файлдан чечмелөө ачкычын чыгаруу үчүн кошту.
  • Эми systemd-growfs утилитасын udev жок чөйрөлөрдө иштетүүгө болот.
  • systemd-backlight бир нече графикалык карталары бар системаларды жакшыртты.
  • Документте көрсөтүлгөн код мисалдарынын лицензиясы CC0дон ​​MIT-0го өзгөртүлдү.

Шайкештикти бузган өзгөртүүлөр:

  • ConditionKernelVersion директивасын колдонуу менен ядронун версиясынын номерин текшерүүдө, азыр '=' жана '!=' операторлорунда жөнөкөй сапты салыштыруу колдонулат, ал эми салыштыруу оператору такыр көрсөтүлбөсө, glob-маска дал келүүсүн колдонуу менен колдонсо болот. '*', '?' жана '[', ']' символдору. stverscmp() функциясынын стилиндеги версияларды салыштыруу үчүн '', '=' операторлорун колдонушуңуз керек.
  • Бирдик файлынан кирүү мүмкүнчүлүгүн текшерүү үчүн колдонулган SELinux теги азыр кирүүнү текшерүү учурунда эмес, файл жүктөлгөн учурда окулат.
  • "ConditionFirstBoot" шарты эми системанын биринчи жүктөөсүндө түздөн-түз жүктөө стадиясында гана иштетилет жана жүктөө аяктагандан кийин бирдиктерди чакырганда "жалган" деп кайтарат.
  • 2024-жылы systemd cgroup v1 ресурстарын чектөө механизмин колдоону токтотууну пландаштырууда, ал системанын 248-чыгарылышында эскирген. Администраторлорго cgroup v2 негизиндеги кызматтарды cgroup v1ге көчүрүү боюнча алдын ала кам көрүү сунушталат. Cgroups v2 жана v1 ортосундагы негизги айырмачылык CPU ресурстарын бөлүштүрүү үчүн өзүнчө иерархиялардын ордуна, эстутум керектөөсүн жөнгө салуу жана киргизүү/чыгаруу үчүн ресурстардын бардык түрлөрү үчүн жалпы топтордун иерархиясын колдонуу болуп саналат. Өзүнчө иерархиялар башкаруучулардын ортосундагы өз ара аракеттенүүнү уюштурууда кыйынчылыктарга жана ар кандай иерархияларда шилтемеленген процесс үчүн эрежелерди колдонууда кошумча өзөк ресурстук чыгымдарына алып келет.
  • 2023-жылдын экинчи жарымында биз /usr тамырдан өзүнчө орнотулган же /bin жана /usr/bin, /lib жана /usr/lib бөлүнгөн каталогдордун иерархияларын колдоону токтотууну пландаштырып жатабыз.

Source: opennet.ru

Комментарий кошуу