Bi piştgiriya UKI (Wêneya Kernelê ya Yekgirtî) gerînendeyê pergala systemd 252 serbest berdan

Piştî pênc mehên pêşkeftinê, serbestberdana rêveberê pergalê systemd 252 hate pêşkêş kirin Guherîna bingehîn a di guhertoya nû de yekbûna piştgirî ji bo pêvajoyek nûjenkirî ya bootê bû, ku dihêle hûn ne tenê kernel û bootloader, lê di heman demê de pêkhateyan jî verast bikin. ya jîngeha pergala bingehîn bi karanîna îmzeyên dîjîtal.

Rêbaza pêşniyarkirî di dema barkirinê de karanîna wêneyek kernelê ya yekbûyî UKI (Wêneya Kernelê ya Yekgirtî) vedihewîne, ku destekek ji bo barkirina kernelê ji UEFI (UEFI boot stub), wêneyek kernel Linux û hawîrdora pergala initrd ku di bîranînê de hatî barkirin, bi kar tîne. ji bo destpêkirina destpêkê di qonaxê de berî ku root FS-ê saz bikin. Wêneya UKI di forma PE-ê de wekî pelek yekane ya darvekirî tête pak kirin, ku dikare bi karanîna bootloaderên kevneşopî were barkirin an rasterast ji firmware UEFI were gazî kirin. Dema ku ji UEFI tê gazî kirin, gengaz e ku meriv rast û pêbaweriya îmzeya dîjîtal ne tenê kernel, lê di heman demê de naveroka initrd-ê jî verast bike.

Ji bo hesabkirina pîvanên tomarên TPM PCR (Trusted Platform Module Platform Configuration Toy) ku ji bo şopandina yekrêziyê û hilberandina îmzayek dîjîtal a wêneya UKI-yê têne bikar anîn, pîvanek pergala nû ya karûbar tê de heye. Mifteya giştî û pê re agahdariya PCR ya ku di îmzeyê de hatî bikar anîn dikare rasterast di nav wêneya bootê ya UKI de were veguheztin (kilît û îmze di pelek PE de di qadên '.pcrsig' û '.pcrkey' de têne tomar kirin) û ji hêla derveyî ve jê têne derxistin. an karûbarên navxweyî.

Bi taybetî, karûbarên systemd-cryptenroll, systemd-cryptenroll û systemd-creds ji bo karanîna vê agahiyê hatine adaptekirin, bi wan re hûn dikarin piştrast bikin ku dabeşên dîskê yên şîfrekirî bi kernelek bi dîjîtal ve girêdayî ne (di vê rewşê de, gihîştina dabeşa şîfrekirî Tenê heke wêneya UKI verastkirina bi îmzeya dîjîtal ve li ser bingeha parametreyên ku di TPM-ê de cih digirin derbas kiriye tê peyda kirin).

Wekî din, kargêriya systemd-pcrphase tê de ye, ku dihêle hûn girêdana qonaxên cuda yên bootê bi parametreyên ku di bîranîna krîptoprosesorên ku taybetmendiya TPM 2.0 piştgirî dikin de kontrol bikin (mînak, hûn dikarin mifteya deşîfrekirina dabeşkirina LUKS2 tenê li wêneya initrd û di dakêşana qonaxên paşîn de gihîştina wê asteng bikin).

Hin guhertinên din:

  • Piştrast dike ku cîhê xwerû C.UTF-8 e heya ku di mîhengan de herêmek cûda neyê destnîşankirin.
  • Naha gengaz e ku di dema bootkirina yekem de xebatek pêşdibistanê ya karûbarê bêkêmasî ("pêşvesazkirina systemctl") pêk were. Çalakkirina pêşdibistanê di dema bootkirinê de pêdivî bi avakirina vebijarka "-Dfirst-boot-full-preset" heye, lê tê plan kirin ku di weşanên pêşerojê de ji hêla xwerû ve were çalak kirin.
  • Yekîneyên rêveberiya bikarhêner kontrolkerek çavkaniyê ya CPU-yê vedihewîne, ku ev yek gengaz kir ku mîhengên CPUWeight li hemî yekîneyên perçeyê yên ku ji bo dabeşkirina pergalê li beşan têne bikar anîn (app.slice, background.slice, session.slice) têne sepandin ku çavkaniyan di navbera xwe de veqetîne. karûbarên bikarhêner ên cihêreng, ji ​​bo çavkaniyên CPU-yê pêşbaziyê dikin. CPUWeight di heman demê de nirxa "bêkar" piştgirî dike da ku moda peydakirina çavkaniyê ya guncan çalak bike.
  • Di yekîneyên demkî ("derbasdar") de û di navgîniya systemd-repart de, mîhengên serdest bi çêkirina pelên dakêşanê yên di pelrêça /etc/systemd/system/name.d/ de têne destûr kirin.
  • Ji bo wêneyên pergalê, ala bi dawîhatina piştgirîyê hatî danîn, vê rastiyê li ser bingeha nirxa pîvana nû "SUPPORT_END=" di pelê /etc/os-release de destnîşan dike.
  • Mîhengên "ConditionCredential =" û "AssertCredential =" lê zêde kirin, ku heke hin pêbawer di pergalê de nebin, dikarin werin bikar anîn da ku yekîneyan paşguh bikin an têk bibin.
  • Mîhengên "DefaultSmackProcessLabel=" û "DefaultDeviceTimeoutSec=" li system.conf û user.conf zêde kirin da ku asta ewlekariya xwerû ya SMACK û dema aktîvkirina yekîneyê diyar bike.
  • Di mîhengên "ConditionFirmware=" û "AssertFirmware=" de, şiyana diyarkirina qadên SMBIOS-ê yên takekesî hate zêdekirin, mînakî, ji bo destpêkirina yekîneyek tenê heke qada /sys/class/dmi/id/board_name nirxa "Custom" hebe. Board", hûn dikarin "ConditionFirmware=smbios" -field(navê_board = "Lijneya Xweser") diyar bikin.
  • Di dema pêvajoya destpêkirinê de (PID 1), şiyana îtxalkirina pêbaweriyan ji zeviyên SMBIOS (Tîpa 11, "rêzikên firoşkarê OEM") ji bilî pênaseya wan bi riya qemu_fwcfg ve hatî zêdekirin, ku peydakirina pêbaweriyan ji makîneyên virtual re hêsan dike û ji holê radike. hewceyê amûrên sêyemîn ên wekî ewr -init û şewitandinê.
  • Di dema girtinê de, mantiqa rakirina pergalên pelan ên virtual (proc, sys) hate guheztin û agahdariya li ser pêvajoyên ku rakirina pergalên pelan asteng dikin di têketinê de têne tomar kirin.
  • Parzûna banga pergalê (SystemCallFilter) ji hêla xwerû ve destûrê dide gihandina banga pergala riscv_flush_icache.
  • Bootloader sd-boot şiyana bootkirinê di moda tevlihev de zêde dike, ku tê de kernel Linux 64-bit ji firmware UEFI ya 32-bit dimeşe. Kapasîteya ceribandinê zêde kir ku bixweber bişkojkên SecureBoot ji pelên ku di ESP (parçekirina pergala EFI) de têne dîtin, bicîh bikin.
  • Vebijarkên nû li kargêriya bootctl hatine zêdekirin: "-hemû-mîmarî" ji bo sazkirina binaryan ji bo hemî mîmarên EFI yên piştgirîkirî, "-root=" û "-image=" ji bo xebitandina pelrêçek an wêneyek dîskê, "-çavkaniya sazkirinê =” ji bo destnîşankirina çavkaniya ji bo sazkirinê, "-efi-boot-option-description=" ji bo kontrolkirina navên têketina bootê.
  • Fermana 'list-automounts' li kargêriya systemctl hate zêdekirin da ku navnîşek pelrêtokên ku bixweber hatine hilanîn û vebijarka "--image=" ji bo pêkanîna fermanan li gorî wêneya dîskê ya diyarkirî nîşan bide. Vebijarkên "--state=" û "--type=" li fermanên 'nîşandan' û 'rewş' zêde kirin.
  • systemd-networkd vebijarkên "TCPCongestionControlAlgorithm =" zêde kir da ku algorîtmaya kontrolkirina tevliheviya TCP hilbijêrin, "KeepFileDescriptor =" ji bo tomarkirina ravekera pelê ya navberên TUN/TAP, "NetLabel=" ji bo danîna NetLabels, "RapidCommit=" ji bo bilezkirina veavakirinê bi rêya D. (RFC 6). Parametreya "RouteTable=" dihêle ku navên tabloyên rêvekirinê diyar bikin.
  • systemd-nspawn di vebijarkên "--bind=" û "--overlay=" de rê dide karanîna riyên pelê yên têkildar. Piştgiriyek ji bo parametreya 'rootidmap' li vebijarka "--bind=" zêde kir da ku nasnameya bikarhênerê root ya di konteynerê de bi xwediyê pelrêça siwarkirî ya li milê mêvandar ve girê bide.
  • systemd-resolved OpenSSL-ê wekî paşiya şîfrekirina xwe ji hêla xwerû ve bikar tîne (piştgiriya gnutls wekî vebijarkek tê parastin). Algorîtmayên DNSSEC yên nepiştgirkirî naha li şûna vegerandina xeletiyek (SERVFAIL) wekî neewle têne hesibandin.
  • systemd-sysusers, systemd-tmpfiles û systemd-sysctl şiyana veguheztina mîhengan bi mekanîzmaya hilanîna pêbaweriyê pêk tînin.
  • Fermana 'hevberhev-guhertoyan' li systemd-analîzê zêde kir da ku rêzan bi jimareyên guhertoyan re bide berhevdan (wek 'rpmdev-vercmp' û 'dpkg --berhev-berhevkirin'). Hêza fîlterkirina yekîneyên bi maskê li fermana 'sîstema-analîzkirina dump' zêde kir.
  • Dema ku moda xewê ya pir-qonaxê hilbijêrin (sekinandin-paşê-hibernate), dema ku di moda standby-ê de derbas dibe naha li gorî pêşbîniya jiyana mayî ya bateriyê tê hilbijartin. Veguhastina tavilê ji bo moda xewê pêk tê dema ku ji% 5 kêmtir barkirina batterê bimîne.
  • Moda derketinê ya nû "-o kurte-delta" li 'journalctl' hat zêdekirin, ferqa wextê di navbera peyamên cihêreng ên di têketinê de nîşan dide.
  • systemd-repart ji bo afirandina dabeşan bi pergala pelan a Squashfs û dabeşên ji bo dm-verity, tevî îmzeyên dîjîtal, piştgirî zêde dike.
  • "StopIdleSessionSec=" mîhengê li systemd-logind lê zêde kir da ku rûniştinek neçalak piştî demek diyarkirî biqede.
  • Systemd-cryptenroll vebijarkek "--unlock-key-file=" zêde kiriye da ku mifteya deşîfrekirinê ji pelê derxîne li şûna ku bikarhêner bikar bîne.
  • Naha gengaz e ku meriv karûbarê systemd-growfs li derdorên bêyî udev bimeşîne.
  • systemd-backlight ji bo pergalên bi pir kartên grafîkê piştgirî çêtir kiriye.
  • Lîsans ji bo nimûneyên kodê yên ku di belgeyê de hatine pêşkêş kirin ji CC0 bo MIT-0 hate guherandin.

Guhertinên ku lihevhatinê dişkînin:

  • Dema ku jimareya guhertoya kernelê bi karanîna rêwerznameya ConditionKernelVersion tê kontrol kirin, niha di operatorên '=' û '!=' de berhevokek rêzê ya hêsan tê bikar anîn, û heke operatora berhevdanê bi tevahî neyê diyar kirin, lihevhatina glob-mask dikare bi karanîna vebijarkê were bikar anîn. tîpên '*', '?' Û '[', ']'. Ji bo berawirdkirina guhertoyên stverscmp()-ê, operatorên '<', '>', '<=' û '>=' bikar bînin.
  • Etîketa SELinux ya ku ji bo kontrolkirina gihîştina ji pelek yekîneyê tê bikar anîn niha di dema barkirina pelê de tê xwendin, ne di dema kontrolkirina gihîştinê de.
  • Rewşa "ConditionFirstBoot" naha li ser boota yekem a pergalê tenê rasterast di qonaxa bootkirinê de tê destnîşan kirin û dema ku boot qediya gazîkirina yekîneyên vedigere "derew".
  • Di sala 2024-an de, systemd plan dike ku piştgiriya mekanîzmaya sînordarkirina çavkaniya cgroup v1 rawestîne, ya ku di serbestberdana systemd 248 de hate paşguh kirin. Ji rêveberan re tê şîret kirin ku pêşî li koçkirina karûbarên cgroup-v2-ê ji bo cgroup v1-ê bigirin. Cûdahiya sereke di navbera cgroupên v2 û v1 de, ji bo veqetandina çavkaniyên CPU-yê, ji bo birêkûpêkkirina mezaxtina bîranînê, û ji bo I/O, ji bo her cûre çavkaniyan, li şûna hiyerarşiyên cihêreng, karanîna hiyerarşiyek cgroupên hevpar e. Dema ku qaîdeyên ji bo pêvajoyek ku di hiyerarşiyên cihê de têne referans kirin de, hiyerarşiyên veqetandî di organîzekirina danûstendina di navbera hilberan de û lêçûnên çavkaniya kernelê ya zêde dibe sedema dijwariyan.
  • Di nîvê duyemîn a 2023-an de, em plan dikin ku piştgiriya ji bo hiyerarşiyên pelrêça dabeşkirî biqedînin, ku /usr ji kokê veqetandî ye, an /bin û /usr/bin, /lib û /usr/lib têne veqetandin.

Source: opennet.ru

Add a comment