Lara awọn olupilẹṣẹ ti oluṣakoso eto eto, ijiroro wa nipa idinku awọn igbẹkẹle ti ile-ikawe libsystemd, eyiti o sopọ kii ṣe si awọn paati eto nikan, ṣugbọn tun si ọpọlọpọ awọn ohun elo ita. Fun apẹẹrẹ, ni Fedora, diẹ sii ju awọn idii 150 lo libsystemd ni awọn igbẹkẹle wọn. Olupilẹṣẹ ti ijiroro naa gbagbọ pe fifi afikun awọn ile-ikawe ẹnikẹta ẹni-kẹta si libsystemd ti kii ṣe iṣakoso nipasẹ awọn olupilẹṣẹ eto ṣe alekun dada ikọlu ni iṣẹlẹ ti awọn ile-ikawe ẹni-kẹta ti gbogun, bi o ti ṣẹlẹ pẹlu ile-ikawe liblzma.
Ni afikun si liblzma ati glibc, libsystemd tun gbe libzstd, liblz4 ati libgcrypt, aabo eyiti o di pataki. libsystemd pese iraye si awọn API ipilẹ 12 (sd-bus, sd-daemon, sd-ẹrọ, sd-iṣẹlẹ, sd-hwdb, sd-id128, sd-idXNUMX, sd-journal, sd-login, sd-netlink, sd-nẹtiwọọki, sd - ọna ati sd-ipinnu) ati ipo kan dide nibiti ohun elo kan, fun apẹẹrẹ, lilo libsystemd nikan fun pipe iṣẹ sd_notify lati sọ fun systemd nipa iyipada ipinlẹ tabi iwe iroyin sd_journal lati kọ data si log, awọn ọna asopọ pẹlu gbogbo awọn ile-ikawe miiran ati API handlers. Gẹgẹbi ọna abayọ, o dabaa lati pin libsystemd si ọpọlọpọ awọn ile-ikawe lọtọ ti o ni iduro fun awọn API lọtọ, eyiti yoo gba awọn igbẹkẹle ẹnikẹta laaye lati kojọpọ nibiti wọn nilo wọn nikan.
Awọn olupilẹṣẹ ti eto ṣe akiyesi iyapa ko yẹ, nitori awọn olutọju ti o wa ni libsystemd jẹ asopọ. Pipin yoo nilo iṣẹ pupọ ati pe yoo ja si boya isonu ti ṣiṣe tabi iwulo fun ẹda koodu. Lati dinku ifẹsẹtẹ iranti, libsystemd yipada laipẹ lati ṣe fifuye liblzma, libzstd, ati awọn ile-ikawe liblz4 ni lilo ipe dlopen () ni awọn ipo nibiti awọn iṣẹ wọn nilo gidi. Iyipada ti o jọra yoo ṣee ṣe fun libgcrypt ti o bẹrẹ lati itusilẹ atẹle.
Ipinnu yii ti di ohun ti ibawi, nitori dipo ti o han gbangba ati ọna asopọ ti o ṣe akiyesi, ikojọpọ awọn ile-ikawe ẹnikẹta yoo ṣee ṣe ni gbangba, eyiti yoo ṣe idiwọ awọn iwadii aisan, nitori asopọ ti awọn ipe API libsystemd pẹlu awọn ipe si awọn iṣẹ lati awọn ile-ikawe ita kii ṣe kedere. Yipada si ikojọpọ lilo dlopen () funrararẹ ko yipada faaji, ṣugbọn o tọju awọn paati ita nikan lati awọn olutọju ati awọn olumulo.
Lenart Pottering tako pẹlu imọran ti pipin libsystem si awọn ile-ikawe pupọ, nitori iru gbigbe kan yoo ṣe idiju pinpin koodu ni eto ati pe yoo nilo ṣiṣe gbogbo awọn olutọju inu ni gbangba tabi ṣajọ wọn lọtọ si ile-ikawe kọọkan. Ni ọran akọkọ, awọn iṣoro yoo wa ni mimu iduroṣinṣin ti API ati awọn aaye orukọ, ati ni keji, yoo pọ si ni iwọn nitori ẹda koodu.
Ti ṣe imuse fun itusilẹ atẹle, ikojọpọ awọn ile ikawe itagbangba nikan nigbati o jẹ dandan ni akiyesi nipasẹ Lenart bi ilana ti o dara julọ. O ti wa ni dabaa lati yanju awọn isoro ti npo complexity ni gbigba data nipa ìmúdàgba kojọpọ ikawe nipa fifi afikun aaye to ELF awọn faili pẹlu alaye nipa iru ìmúdàgba dependencies, eyi ti o le wa ni ilọsiwaju nipasẹ awọn debuggers ati ki o han ni awọn esi ti readelf IwUlO.
Nipa sisopọ nọmba nla ti awọn ohun elo pẹlu libsystemd, Lenart ṣeduro pe awọn olupilẹṣẹ ohun elo ko gbiyanju lati gbe libsystemd nitori iṣẹ kan, ṣugbọn ṣe imuse oluṣakoso ilana ni ipele ohun elo. Fun apẹẹrẹ, imuse ti iṣẹ sd_notify () jẹ ohun kekere ati pe o le ṣee ṣe ni awọn laini koodu diẹ nigba lilo awọn sockets UNIX (AF_UNIX). Iru imuse lọtọ ti sd_notify ti wa fun OpenSSH lati ọdun 2017 ati pe a ti gba laipẹ sinu ẹka agbeka ti OpenSSH 9.8, itusilẹ eyiti o ti ṣeto fun aarin-ooru.
orisun: opennet.ru
