Lainos ni ọpọlọpọ awọn oju: bi o ṣe le ṣiṣẹ lori eyikeyi pinpin

Lainos ni ọpọlọpọ awọn oju: bi o ṣe le ṣiṣẹ lori eyikeyi pinpin

Ṣiṣẹda ohun elo afẹyinti ti o ṣiṣẹ lori eyikeyi pinpin kii ṣe iṣẹ ti o rọrun. Lati rii daju pe Aṣoju Veeam fun Linux ṣiṣẹ lori awọn pinpin lati Red Hat 6 ati Debian 6, si OpenSUSE 15.1 ati Ubuntu 19.04, o ni lati yanju ọpọlọpọ awọn iṣoro, ni pataki ni akiyesi pe ọja sọfitiwia pẹlu module ekuro kan.

A ṣẹda nkan naa da lori awọn ohun elo lati ọrọ kan ni apejọ Linux Peter 2019.

Lainos kii ṣe ọkan ninu awọn ọna ṣiṣe olokiki julọ. Ni pataki, eyi jẹ pẹpẹ lori ipilẹ eyiti o le ṣe nkan alailẹgbẹ, nkan ti tirẹ. Ṣeun si eyi, Lainos ni ọpọlọpọ awọn ipinpinpin ti o yatọ ninu ṣeto awọn paati sọfitiwia wọn. Ati nibi iṣoro kan dide: ni ibere fun ọja sọfitiwia lati ṣiṣẹ lori eyikeyi pinpin, o ni lati ṣe akiyesi awọn ẹya ti ọkọọkan.

Package alakoso. .deb vs .rpm

Jẹ ki a bẹrẹ pẹlu iṣoro ti o han gbangba ti pinpin ọja kọja awọn ipinpinpin oriṣiriṣi.
Ọna ti o wọpọ julọ lati kaakiri awọn ọja sọfitiwia ni lati fi package sori ibi ipamọ kan ki oluṣakoso package ti a ṣe sinu eto le fi sii lati ibẹ.
Sibẹsibẹ, a ni awọn ọna kika package olokiki meji: rpm и gbese. Eyi tumọ si pe gbogbo eniyan yoo ni atilẹyin.

Ni agbaye ti awọn idii gbese, ipele ibamu jẹ iyalẹnu. Ohun elo kanna nfi sori ẹrọ ati ṣiṣẹ ni deede daradara lori mejeeji Debian 6 ati Ubuntu 19.04. Awọn iṣedede fun ilana ti awọn idii kikọ ati ṣiṣẹ pẹlu wọn, ti a gbe kalẹ ni awọn ipinpinpin Debian atijọ, jẹ ibaramu ni Mint Linux tuntun ati OS alakọbẹrẹ. Nitorinaa, ninu ọran ti Aṣoju Veeam fun Linux, idii deb kan fun iru ẹrọ ohun elo kọọkan to.

Ṣugbọn ni agbaye ti awọn idii rpm, awọn iyatọ jẹ nla. Ni akọkọ, nitori otitọ pe awọn olupin olominira meji wa, Red Hat ati SUSE, eyiti ibamu jẹ eyiti ko wulo. Ni ẹẹkeji, awọn olupin kaakiri wọnyi ni awọn ohun elo pinpin lati ọdọ yẹn. support ati esiperimenta. Ko si iwulo fun ibamu laarin wọn boya. O wa ni pe el6, el7 ati el8 ni awọn idii tiwọn. Lọtọ package fun Fedora. Awọn idii fun SLES11 ati 12 ati ọkan lọtọ fun openSUSE. Iṣoro akọkọ jẹ awọn igbẹkẹle ati awọn orukọ package.

Iṣoro igbẹkẹle

Laanu, awọn idii kanna nigbagbogbo pari labẹ awọn orukọ oriṣiriṣi ni awọn pinpin oriṣiriṣi. Ni isalẹ ni atokọ apa kan ti awọn igbẹkẹle package veeam.

Fun EL7:
Fun SLES 12:

  • libblkid
  • libgcc
  • libstdc++
  • ncurses-libs
  • fiusi-libs
  • faili-libs
  • veeamsnap = 3.0.2.1185
  • libblkid1
  • libgcc_s1
  • libstdc ++6
  • libmagic1
  • libfuse2
  • veeamsnap-kmp=3.0.2.1185

Bi abajade, atokọ ti awọn igbẹkẹle jẹ alailẹgbẹ fun pinpin.

Ohun ti n buru si ni nigbati ẹya imudojuiwọn bẹrẹ nọmbafoonu labẹ orukọ package atijọ.

Apeere:

Apoti naa ti ni imudojuiwọn ni Fedora 24 awọn nọọsi lati ẹya 5 si ẹya 6. A ṣe ọja wa pẹlu ẹya 5 lati rii daju pe ibamu pẹlu awọn pinpin agbalagba. Lati lo ẹya 5th atijọ ti ile-ikawe lori Fedora 24, Mo ni lati lo package naa ncurses-compat-libs.

Bi abajade, awọn idii meji wa fun Fedora, pẹlu awọn igbẹkẹle oriṣiriṣi.

Siwaju diẹ awon. Lẹhin imudojuiwọn pinpin atẹle, package naa ncurses-compat-libs pẹlu ẹya 5 ti ile-ikawe o wa ni ko si. O jẹ gbowolori fun olupin kaakiri lati fa awọn ile-ikawe atijọ sinu ẹya tuntun ti pinpin. Lẹhin akoko diẹ, iṣoro naa tun ṣe funrararẹ ni awọn pinpin SUSE.

Bi abajade, diẹ ninu awọn pinpin ni lati ju igbẹkẹle wọn han gbangba lori ncurses-libs, ati ṣatunṣe ọja naa ki o le ṣiṣẹ pẹlu ẹya eyikeyi ti ile-ikawe naa.

Nipa ọna, ni ẹya 8 ti Red Hat ko si package meta mọ Python, eyi ti o tọka si awọn ti o dara atijọ ere 2.7... o wa Python2 и Python3.

Yiyan si package alakoso

Iṣoro pẹlu awọn igbẹkẹle jẹ ti atijọ ati pe o ti han gbangba. O kan ranti Apaadi Gbẹkẹle.
Lati darapọ awọn ile-ikawe ati awọn ohun elo lọpọlọpọ ki gbogbo wọn ṣiṣẹ ni iduroṣinṣin ati ki o ma ṣe rogbodiyan - ni otitọ, eyi ni iṣẹ-ṣiṣe ti olupin Linux eyikeyi n gbiyanju lati yanju.

Oluṣakoso package n gbiyanju lati yanju iṣoro yii ni ọna ti o yatọ patapata. Snappy lati Canonical. Ero akọkọ: ohun elo nṣiṣẹ ni apoti iyanrin ti o ya sọtọ ati aabo lati eto akọkọ. Ti ohun elo ba nilo awọn ile-ikawe, wọn ti pese pẹlu ohun elo funrararẹ.

Flatpak tun gba ọ laaye lati ṣiṣe awọn ohun elo ni apoti iyanrin nipa lilo Awọn apoti Linux. Ero apoti iyanrin tun lo Ibẹrẹ.

Awọn solusan wọnyi gba ọ laaye lati ṣẹda package kan fun pinpin eyikeyi. Ni irú ti Flatpak fifi sori ẹrọ ati ifilọlẹ ohun elo ṣee ṣe paapaa laisi imọ ti oludari.

Iṣoro akọkọ ni pe kii ṣe gbogbo awọn ohun elo le ṣiṣẹ ni apoti iyanrin. Diẹ ninu awọn eniyan nilo iraye si taara si pẹpẹ. Emi ko paapaa sọrọ nipa awọn modulu ekuro, eyiti o dale lori ekuro ati pe ko baamu si imọran apoti iyanrin.

Iṣoro keji ni pe awọn pinpin olokiki ni agbegbe ile-iṣẹ lati Red Hat ati SUSE ko sibẹsibẹ ni atilẹyin fun Snappy ati Flatpak.

Ni iyi yii, Aṣoju Veeam fun Linux ko si snapcraft.io ko lori flathub.org.

Lati pari ibeere naa nipa awọn alakoso package, Emi yoo fẹ lati ṣe akiyesi pe aṣayan kan wa lati kọ awọn alakoso package silẹ lapapọ nipa apapọ awọn faili alakomeji ati iwe afọwọkọ kan fun fifi wọn sinu package kan.

Iru idii kan gba ọ laaye lati ṣẹda package ti o wọpọ fun awọn pinpin oriṣiriṣi ati awọn iru ẹrọ, ṣe ilana fifi sori ẹrọ ibaraenisepo, ṣiṣe isọdi pataki. Mo ti pade iru awọn idii bẹ nikan fun Linux lati VMware.

Iṣoro imudojuiwọn

Lainos ni ọpọlọpọ awọn oju: bi o ṣe le ṣiṣẹ lori eyikeyi pinpin
Paapaa ti gbogbo awọn ọran igbẹkẹle ba yanju, eto naa le ṣiṣẹ ni oriṣiriṣi lori pinpin kanna. O jẹ ọrọ ti awọn imudojuiwọn.

Awọn ilana imudojuiwọn 3 wa:

  • Ohun ti o rọrun julọ ni lati ma ṣe imudojuiwọn. Mo ṣeto olupin naa ati gbagbe nipa rẹ. Kini idi ti imudojuiwọn ti ohun gbogbo ba ṣiṣẹ? Awọn iṣoro bẹrẹ ni igba akọkọ ti o kan si atilẹyin. Eleda ti pinpin nikan ṣe atilẹyin itusilẹ imudojuiwọn.
  • O le gbẹkẹle olupin kaakiri ati ṣeto awọn imudojuiwọn aifọwọyi. Ni idi eyi, ipe si atilẹyin jẹ o ṣeeṣe lẹsẹkẹsẹ lẹhin imudojuiwọn ti ko ni aṣeyọri.
  • Aṣayan ti imudojuiwọn afọwọṣe nikan lẹhin ṣiṣe rẹ lori awọn amayederun idanwo jẹ igbẹkẹle julọ, ṣugbọn gbowolori ati gbigba akoko. Ko gbogbo eniyan le ni anfani.

Niwọn igba ti awọn olumulo oriṣiriṣi lo awọn ilana imudojuiwọn oriṣiriṣi, o jẹ dandan lati ṣe atilẹyin mejeeji itusilẹ tuntun ati gbogbo awọn ti a ti tu silẹ tẹlẹ. Eyi ṣe idiju mejeeji idagbasoke ati ilana idanwo ati ṣafikun awọn efori si ẹgbẹ atilẹyin.

Orisirisi ti hardware iru ẹrọ

Awọn iru ẹrọ ohun elo oriṣiriṣi jẹ iṣoro ti o jẹ pataki si koodu abinibi. Ni o kere ju, o ni lati gba awọn alakomeji fun iru ẹrọ atilẹyin kọọkan.

Ninu Aṣoju Veeam fun iṣẹ akanṣe Linux, a ko tun le ṣe atilẹyin ohunkohun bii RISC yii.

Emi kii yoo gbe lori ọrọ yii ni kikun. Emi yoo ṣe ilana awọn iṣoro akọkọ nikan: awọn iru ti o gbẹkẹle pẹpẹ, bii size_t, titete be ati baiti ibere.

Aimi ati/tabi ọna asopọ ti o ni agbara

Lainos ni ọpọlọpọ awọn oju: bi o ṣe le ṣiṣẹ lori eyikeyi pinpin
Ṣugbọn ibeere naa ni “Bawo ni a ṣe le sopọ pẹlu awọn ile-ikawe – ni agbara tabi ni iṣiro?” tọ sísọ.

Gẹgẹbi ofin, awọn ohun elo C / C ++ labẹ Linux lo ọna asopọ agbara. Eyi ṣiṣẹ nla ti ohun elo naa ba kọ ni pataki fun pinpin kan pato.

Ti iṣẹ-ṣiṣe ba ni lati bo ọpọlọpọ awọn pinpin pẹlu faili alakomeji kan, lẹhinna o ni lati dojukọ pinpin atilẹyin ti atijọ julọ. Fun wa, eyi ni Red Hat 6. O ni gcc 4.4, eyiti paapaa boṣewa C ++ 11 ko ṣe atilẹyin ni kikun.

A kọ iṣẹ akanṣe wa nipa lilo gcc 6.3, eyiti o ṣe atilẹyin C ++ 14 ni kikun. Nipa ti ara, ninu ọran yii, lori Red Hat 6 o ni lati gbe libstdc ++ ati igbelaruge awọn ile-ikawe pẹlu rẹ. Ọna to rọọrun ni lati sopọ mọ wọn ni iṣiro.

Ṣugbọn ala, kii ṣe gbogbo awọn ile-ikawe ni a le sopọ ni iṣiro.

Ni akọkọ, awọn ile-ikawe eto bii libfuse, libblkid o jẹ dandan lati sopọ ni agbara lati rii daju ibamu wọn pẹlu ekuro ati awọn modulu rẹ.

Ni ẹẹkeji, arekereke kan wa pẹlu awọn iwe-aṣẹ.

Iwe-aṣẹ GPL ni ipilẹ gba ọ laaye lati sopọ awọn ile-ikawe nikan pẹlu koodu ṣiṣi. MIT ati BSD gba ọna asopọ aimi laaye ati gba awọn ile-ikawe laaye lati wa ninu iṣẹ akanṣe kan. Ṣugbọn LGPL ko dabi pe o tako sisopọ aimi, ṣugbọn nbeere pe awọn faili pataki fun sisopọ jẹ pinpin.

Ni gbogbogbo, lilo ọna asopọ ti o ni agbara yoo ṣe idiwọ fun ọ lati ni lati pese ohunkohun.

Ilé C / C ++ ohun elo

Lati kọ awọn ohun elo C / C ++ fun awọn iru ẹrọ oriṣiriṣi ati awọn ipinpinpin, o to lati yan tabi kọ ẹya ti o dara ti gcc ati lo awọn alakopọ-agbelebu fun awọn ile-iṣọ kan pato ati pejọ gbogbo awọn ile-ikawe. Iṣẹ yii ṣee ṣe, ṣugbọn wahala pupọ. Ati pe ko si iṣeduro pe olupilẹṣẹ ti o yan ati awọn ile-ikawe yoo pese ẹya ti o ṣiṣẹ.

Anfani ti o han gbangba: awọn amayederun jẹ irọrun pupọ, niwọn igba ti gbogbo ilana kikọ le pari lori ẹrọ kan. Ni afikun, o to lati gba eto kan ti awọn alakomeji fun faaji kan ati pe o le ṣajọ wọn sinu awọn idii fun awọn ipinpinpin oriṣiriṣi. Eyi ni bii awọn idii veeam ṣe kọ fun Aṣoju Veeam fun Linux.

Ni idakeji si aṣayan yii, o le jiroro ni mura r'oko kan, iyẹn ni, awọn ẹrọ pupọ fun apejọ. Iru ẹrọ kọọkan yoo pese akopọ ohun elo ati apejọ package fun pinpin kan pato ati faaji kan pato. Ni idi eyi, a ṣe akopọ ni lilo awọn ọna ti a pese sile nipasẹ olupin. Iyẹn ni, ipele ti ngbaradi olupilẹṣẹ ati yiyan awọn ile-ikawe ti yọkuro. Ni afikun, ilana kikọ le ni irọrun ni afiwe.

Sibẹsibẹ, isalẹ si ọna yii: fun pinpin kọọkan laarin faaji kanna, iwọ yoo ni lati gba eto tirẹ ti awọn faili alakomeji. Alailanfani miiran ni pe iru nọmba nla ti awọn ẹrọ nilo lati wa ni itọju ati iye nla ti aaye disk ati Ramu gbọdọ wa ni ipin.

Eyi ni bii awọn idii KMOD ti module ekuro veeamsnap ti ṣe akopọ fun awọn pinpin Hat Red.

Ṣii Kọ Service

Awọn ẹlẹgbẹ lati SUSE gbiyanju lati ṣe diẹ ninu ilẹ aarin ni irisi iṣẹ pataki kan fun iṣakojọpọ awọn ohun elo ati apejọ awọn idii - openbuildservice.

Ni pataki, o jẹ hypervisor ti o ṣẹda ẹrọ foju kan, fi sori ẹrọ gbogbo awọn idii pataki ninu rẹ, ṣajọ ohun elo ati kọ package ni agbegbe ti o ya sọtọ, lẹhin eyi ti ẹrọ foju ti tu silẹ.

Lainos ni ọpọlọpọ awọn oju: bi o ṣe le ṣiṣẹ lori eyikeyi pinpin

Eto iṣeto ti a ṣe ni OpenBuildService yoo pinnu iye awọn ẹrọ foju ti o le ṣe ifilọlẹ fun iyara ile package to dara julọ. Ẹrọ iforukọsilẹ ti a ṣe sinu yoo fowo si awọn akojọpọ ki o gbe wọn si ibi ipamọ ti a ṣe sinu. Eto iṣakoso ẹya ti a ṣe sinu yoo ṣafipamọ itan-akọọlẹ ti awọn ayipada ati kọ. Gbogbo ohun ti o ku ni lati ṣafikun awọn orisun rẹ nirọrun si eto yii. Iwọ ko paapaa ni lati ṣeto olupin funrararẹ; o le lo ọkan ṣiṣi.

Sibẹsibẹ, iṣoro kan wa: iru olukore jẹ soro lati dada sinu awọn amayederun ti o wa tẹlẹ. Fun apẹẹrẹ, iṣakoso ẹya ko nilo; a ti ni tiwa tẹlẹ fun awọn koodu orisun. Ilana Ibuwọlu wa yatọ: a lo olupin pataki kan. Ibi ipamọ ko tun nilo.

Ni afikun, atilẹyin fun awọn pinpin miiran - fun apẹẹrẹ, Red Hat - ti wa ni imuse dipo ko dara, eyiti o jẹ oye.

Anfani ti iru iṣẹ kan jẹ atilẹyin iyara fun ẹya atẹle ti pinpin SUSE. Ṣaaju ikede ikede ti itusilẹ, awọn idii pataki fun apejọ ni a fiweranṣẹ lori ibi ipamọ gbogbo eniyan. Titun kan han ninu atokọ ti awọn pinpin ti o wa lori OpenBuildService. A ṣayẹwo apoti ati pe a fi kun si ero kikọ. Nitorinaa, fifi ẹya tuntun ti pinpin kaakiri ṣe ni fere ọkan tẹ.

Ninu awọn amayederun wa, ni lilo OpenBuildService, gbogbo ọpọlọpọ awọn idii KMP ti module ekuro veeamsnap fun awọn pinpin SUSE ni a pejọ.

Nigbamii, Emi yoo fẹ lati gbe lori awọn ọran kan pato si awọn modulu kernel.

ekuro ABI

Awọn modulu ekuro Linux ti pin kaakiri itan ni fọọmu orisun. Otitọ ni pe awọn olupilẹṣẹ ti ekuro ko ni ẹru ara wọn pẹlu ibakcdun ti atilẹyin API iduroṣinṣin fun awọn modulu ekuro, ati paapaa ni ipele alakomeji, ti a tọka si bi kABI.

Lati kọ module kan fun ekuro fanila, dajudaju o nilo awọn akọle ti ekuro pato yii, ati pe yoo ṣiṣẹ nikan lori ekuro yii.

DKMS gba ọ laaye lati ṣe adaṣe ilana ti awọn modulu ile nigbati o n ṣe imudojuiwọn ekuro. Bi abajade, awọn olumulo ti ibi ipamọ Debian (ati ọpọlọpọ awọn ibatan rẹ) lo awọn modulu kernel boya lati ibi ipamọ olupin tabi ṣajọ lati orisun nipa lilo DKMS.

Sibẹsibẹ, ipo yii ko baamu ni pataki apakan Idawọlẹ. Awọn olupin koodu ohun-ini fẹ lati pin ọja naa bi awọn alakomeji ti a ṣajọ.

Awọn alakoso ko fẹ lati tọju awọn irinṣẹ idagbasoke lori awọn olupin iṣelọpọ fun awọn idi aabo. Awọn olupin Linux ti ile-iṣẹ bii Red Hat ati SUSE pinnu pe wọn le ṣe atilẹyin kABI iduroṣinṣin fun awọn olumulo wọn. Abajade jẹ awọn idii KMOD fun Red Hat ati awọn idii KMP fun SUSE.

Koko ti ojutu yii jẹ ohun rọrun. Fun ẹya kan pato ti pinpin, API ekuro ti di didi. Olupinpin naa sọ pe o lo ekuro, fun apẹẹrẹ, 3.10, ati pe o ṣe awọn atunṣe ati awọn ilọsiwaju ti ko ni ipa awọn atọkun ekuro, ati awọn modulu ti a gba fun ekuro akọkọ le ṣee lo fun gbogbo awọn ti o tẹle laisi atunṣe.

Red Hat nperare ibamu kABI fun pinpin jakejado gbogbo igbesi aye rẹ. Iyẹn ni, module ti a pejọ fun rhel 6.0 (itusilẹ Oṣu kọkanla 2010) yẹ ki o tun ṣiṣẹ lori ẹya 6.10 (itusilẹ June 2018). Ati pe eyi fẹrẹ to ọdun 8. Nipa ti, iṣẹ yii nira pupọ.
A ti gbasilẹ ọpọlọpọ awọn ọran nibiti module veeamsnap duro ṣiṣẹ nitori awọn ọran ibamu kABI.

Lẹhin module veeamsnap, ti a ṣajọ fun RHEL 7.0, ti jade lati wa ni ibamu pẹlu ekuro lati RHEL 7.5, ṣugbọn o kojọpọ ati pe o jẹ ẹri lati jamba olupin naa, a kọ lilo ibaramu kABI fun RHEL 7 lapapọ.

Lọwọlọwọ, package KMOD fun RHEL 7 ni apejọ kan fun ẹya itusilẹ kọọkan ati iwe afọwọkọ ti o ṣajọpọ module naa.

SUSE sunmọ iṣẹ-ṣiṣe ti ibamu kABI diẹ sii ni pẹkipẹki. Wọn pese ibamu kABI nikan laarin idii iṣẹ kan.

Fun apẹẹrẹ, itusilẹ ti SLES 12 waye ni Oṣu Kẹsan 2014. Ati SLES 12 SP1 ti wa tẹlẹ ni Kejìlá 2015, iyẹn ni, diẹ diẹ sii ju ọdun kan ti kọja. Paapaa botilẹjẹpe awọn idasilẹ mejeeji lo ekuro 3.12, wọn ko ni ibamu kABI. O han ni, mimu ibamu kABI fun ọdun kan rọrun pupọ. Iwọn imudojuiwọn module ekuro lododun ko yẹ ki o fa awọn iṣoro fun awọn olupilẹṣẹ module.

Gẹgẹbi abajade eto imulo SUSE yii, a ko ṣe igbasilẹ iṣoro ẹyọkan pẹlu ibaramu kABI ninu module veeamsnap wa. Lootọ, nọmba awọn idii fun SUSE fẹrẹ jẹ aṣẹ titobi nla.

Abulẹ ati backports

Botilẹjẹpe awọn olupin kaakiri n gbiyanju lati rii daju ibamu kABI ati iduroṣinṣin ekuro, wọn tun gbiyanju lati mu iṣẹ ṣiṣe dara ati imukuro awọn abawọn ti ekuro iduroṣinṣin yii.

Ni akoko kanna, ni afikun si “iṣẹ” tiwọn lori awọn aṣiṣe,” awọn olupilẹṣẹ ti ile-iṣẹ Linux ekuro ṣe atẹle awọn ayipada ninu ekuro fanila ati gbe wọn si “idurosinsin” wọn.

Nigba miiran eyi nyorisi awọn tuntun awọn aṣiṣe.

Ninu itusilẹ tuntun ti Red Hat 6, aṣiṣe kan ti ṣe ni ọkan ninu awọn imudojuiwọn kekere. O yori si otitọ pe module veeamsnap jẹ iṣeduro lati jamba eto naa nigbati aworan ba ti tu silẹ. Lehin ti a ṣe afiwe awọn orisun kernel ṣaaju ati lẹhin imudojuiwọn, a rii pe ẹhin ẹhin ni lati jẹbi. Atunṣe ti o jọra ni a ṣe ninu ẹya ekuro fanila 4.19. O kan pe atunṣe yii ṣiṣẹ daradara ni ekuro fanila, ṣugbọn nigbati o ba gbe lọ si “idurosinsin” 2.6.32, iṣoro kan dide pẹlu spinlock.

Nitoribẹẹ, gbogbo eniyan nigbagbogbo ni awọn aṣiṣe, ṣugbọn o tọ lati fa koodu naa lati 4.19 si 2.6.32, ni ewu iduroṣinṣin?... Emi ko ni idaniloju…

Ohun ti o buru julọ ni nigbati titaja ba ni ipa ninu ija-ija laarin “iduroṣinṣin” ati “imudaniloju”. Ẹka titaja nilo ipilẹ ti pinpin imudojuiwọn lati jẹ iduroṣinṣin, ni apa kan, ati ni akoko kanna dara julọ ni iṣẹ ati ni awọn ẹya tuntun. Eleyi nyorisi si ajeji compromises.

Nigbati mo gbiyanju lati kọ kan module lori ekuro 4.4 lati SLES 12 SP3, Mo ti a ti yà lati ri iṣẹ-lati fanila 4.8 ninu rẹ. Ni ero mi, idinaduro I / O imuse ti ekuro 4.4 lati SLES 12 SP3 jẹ iru diẹ sii si ekuro 4.8 ju itusilẹ iṣaaju ti ekuro 4.4 iduroṣinṣin lati SLES12 SP2. Emi ko le ṣe idajọ kini ipin ogorun koodu ti a gbe lati ekuro 4.8 si SLES 4.4 fun SP3, ṣugbọn Emi ko le pe ekuro naa ni iduroṣinṣin kanna 4.4.

Ohun ti ko dun julọ nipa eyi ni pe nigba kikọ module kan ti yoo ṣiṣẹ ni deede daradara lori awọn kernel oriṣiriṣi, o ko le gbarale ẹya ekuro mọ. O tun ni lati ṣe akiyesi pinpin. O dara pe nigbami o le ni ipa ninu asọye ti o han pẹlu iṣẹ ṣiṣe tuntun, ṣugbọn aye yii ko han nigbagbogbo.

Bi abajade, koodu naa di pupọju pẹlu awọn itọsọna iṣakojọpọ ipo ajeji.

Awọn abulẹ tun wa ti o yi ekuro API ti o ni akọsilẹ pada.
Mo ti wá kọja awọn pinpin KDE neon 5.16 ati pe o yà pupọ lati rii pe Lookup_bdev ipe ni ẹya ekuro yii yi atokọ ti awọn aye igbewọle pada.

Lati ṣajọpọ, Mo ni lati ṣafikun iwe afọwọkọ kan si makefile ti o ṣayẹwo boya iṣẹ Lookup_bdev ni paramita iboju-boju kan.

Wíwọlé ekuro modulu

Ṣugbọn jẹ ki a pada si ọran ti pinpin package.

Ọkan ninu awọn anfani ti kABI iduroṣinṣin ni pe awọn modulu kernel le jẹ fowo si bi faili alakomeji kan. Ni idi eyi, olupilẹṣẹ le ni idaniloju pe module naa ko ti bajẹ lairotẹlẹ tabi iyipada imomose. O le ṣayẹwo eyi pẹlu aṣẹ modinfo.

Red Hat ati SUSE pinpin gba ọ laaye lati ṣayẹwo ibuwọlu module ki o si gbejade nikan ti ijẹrisi ti o baamu ti forukọsilẹ lori eto naa. Iwe-ẹri naa jẹ bọtini ti gbogbo eniyan pẹlu eyiti module ti fowo si. A pin kaakiri bi package lọtọ.

Iṣoro naa nibi ni pe awọn iwe-ẹri le jẹ kọ sinu ekuro (awọn olupin kaakiri lo wọn) tabi gbọdọ kọwe si EFI iranti ti kii ṣe iyipada nipa lilo ohun elo kan mokutil. IwUlO mokutil Nigbati o ba nfi ijẹrisi sii, o nilo ki o tun atunbere eto naa ati, paapaa ṣaaju kikojọpọ ekuro ẹrọ iṣẹ, beere lọwọ alakoso lati gba ikojọpọ ijẹrisi tuntun kan.

Nitorinaa, fifi ijẹrisi kan nilo iraye si alabojuto ti ara si eto naa. Ti ẹrọ naa ba wa ni ibikan ninu awọsanma tabi nirọrun ni yara olupin latọna jijin ati iraye si jẹ nipasẹ nẹtiwọọki nikan (fun apẹẹrẹ, nipasẹ ssh), lẹhinna kii yoo ṣee ṣe lati ṣafikun ijẹrisi kan.

EFI lori awọn ẹrọ foju

Bíótilẹ o daju wipe EFI ti gun a ti ni atilẹyin nipasẹ fere gbogbo modaboudu tita, nigba ti fifi a eto, le administrator ko ro nipa awọn nilo fun EFI, ati awọn ti o le jẹ alaabo.

Kii ṣe gbogbo awọn hypervisors ṣe atilẹyin EFI. VMWare vSphere ṣe atilẹyin EFI ti o bẹrẹ lati ẹya 5.
Microsoft Hyper-V tun ni atilẹyin EFI ti o bẹrẹ pẹlu Hyper-V fun Windows Server 2012R2.

Bibẹẹkọ, ninu iṣeto aiyipada iṣẹ ṣiṣe yii jẹ alaabo fun awọn ẹrọ Linux, eyiti o tumọ si pe ijẹrisi ko le fi sii.

Ni vSphere 6.5, ṣeto aṣayan Bọtini Abo ṣee ṣe nikan ni ẹya atijọ ti wiwo wẹẹbu, eyiti o ṣiṣẹ nipasẹ Flash. UI oju opo wẹẹbu lori HTML-5 ṣi wa lẹhin.

Awọn pinpin adanwo

Ati nikẹhin, jẹ ki a ṣe akiyesi ọran ti awọn pinpin idanwo ati awọn pinpin laisi atilẹyin osise. Ni ọna kan, iru awọn pinpin ko ṣeeṣe lati rii lori olupin ti awọn ajọ to ṣe pataki. Ko si atilẹyin osise fun iru awọn pinpin. Nitorina pese awon. Ọja naa ko le ṣe atilẹyin lori iru pinpin.

Bibẹẹkọ, iru awọn ipinpinpin bẹẹ di pẹpẹ ti o rọrun fun igbiyanju awọn ojutu idanwo tuntun. Fun apẹẹrẹ, Fedora, OpenSUSE Tumbleweed tabi awọn ẹya aiduro ti Debian. Wọn ti wa ni oyimbo idurosinsin. Wọn nigbagbogbo ni awọn ẹya tuntun ti awọn eto ati nigbagbogbo ekuro tuntun. Ni ọdun kan, iṣẹ ṣiṣe adanwo le pari ni RHEL, SLES tabi Ubuntu ti a ṣe imudojuiwọn.

Nitorina ti nkan ko ba ṣiṣẹ lori pinpin esiperimenta, eyi jẹ idi kan lati ṣawari iṣoro naa ati yanju rẹ. O nilo lati mura silẹ fun otitọ pe iṣẹ ṣiṣe yoo han laipẹ lori awọn olupin iṣelọpọ awọn olumulo.

O le ṣe iwadi atokọ lọwọlọwọ ti awọn pinpin atilẹyin ni ifowosi fun ẹya 3.0 nibi. Ṣugbọn atokọ gidi ti awọn pinpin lori eyiti ọja wa le ṣiṣẹ jẹ gbooro pupọ.

Tikalararẹ, Mo nifẹ si idanwo pẹlu Elbrus OS. Lẹhin ipari package veeam, ọja wa ti fi sori ẹrọ ati ṣiṣẹ. Mo kowe nipa idanwo yii lori Habré in article.

O dara, atilẹyin fun awọn pinpin tuntun tẹsiwaju. A n duro de ẹya 4.0 lati tu silẹ. Beta ti fẹrẹ farahan, nitorina tọju oju Kini-tuntun!

orisun: www.habr.com

Fi ọrọìwòye kun