Kwi-Linux 5.18 kucwangciswe ukuhambisa ikhowudi kuguqulelo lwangoku lwe-C ukuze kulungiswe iingxaki ezahlukeneyo. 

Yintoni iLinux kwaye yeyantoni?

Ngexesha lenkqubo ye ingxoxo yomphuhlisi kwi-linux kernel malunga kwayel umxholo weseti ye amabala ukulungisa ubuthathaka yeSpecter kwikhowudi ukusebenza noluhlu oludityanisiweyo, kwacaca kubaphuhlisi abaninzi ukuba ingxaki ingasonjululwa ngokulula ngakumbi ukuba ibivunyelwe kwikhowudi yekernel C que ihambelana noguqulelo olutsha lomgangatho. 

Kwaye kukuba okwangoku ikhowudi eyongeziweyo kwi-Linux Kernel kufuneka ihambelane ne-ANSI C (C89) inkcazo, eyakhiwe kwi-1989.

Yiyo loo nto ingxaki enxulumene neSpecter kwikhowudi kwakungenxa yokuba sndaqhubeka ndisebenzisa i-iterator ichazwe ngokwahlukeneyo emva kweluphu.

Ngaphandle kwendalo yayo ekhawulezayo ngokubanzi, iprojekthi yekernel ixhomekeke kwinani lezixhobo ezindala. Ngelixa abagxeki bethanda ukugxila kusetyenziso olubanzi loluntu lwe-imeyile, i-anachronism ekunokwenzeka ukuba ibaluleke ngakumbi kusetyenziso lwenguqulelo ye-1989 yomgangatho wolwimi we-C wekhowudi ye-kernel, umgangatho oye wabhalwa phambi kokuba iprojekthi ye-kernel iqale kwiminyaka engama-30 eyadlulayo. Kubonakala ngathi lo mkhuba ekudala usenziwa unokufikelela esiphelweni ngokukhawuleza i-kernel 5.18, ekulindeleke ngoMeyi walo nyaka.

Kuyakhankanywa ukuba i-macro isetyenziselwa ukuphinda-phinda ngaphezulu kwezinto zoluhlu oludityanisiweyo, kwaye ekubeni i-loop iterator igqithiselwa kule macro, ichazwa ngaphandle kwelophu ngokwayo kwaye ihlala ikhona emva kwelophu. Ukusebenzisa umgangatho we-C99 kuya kuvumela abaphuhlisi ukuba bachaze izinto eziguquguqukayo zelophu kwi () ibhloko, enokusombulula ingxaki ngaphandle kokuyila iindlela zokusebenza.

Ngelishwa, kukho iindawo ezininzi kwi-kernel apho uluhlu
iterator isetyenziswa emva kwelophu eqhekekileyo kutshintsho olunjalo. Ngethamsanqa
kukho iskripthi use_after_iter.cocci esinokusetyenziswa ukuchonga olunjalo
iindawo zekhowudi. Kwafuneka ndihlengahlengise iskripthi kancinci njengoko sinciphisa ubuxoki
izinto ezilungileyo kwimeko yokusetyenziswa koqobo, kodwa ezo zifanelekile kwesi siqwenga.

Uluhlu olukhulu lweendawo ezixeliweyo zekhowudi zisebenzisa kuphela uluhlu lokuphinda emva koko
umjikelo ukuba bekukho ukuphuma kwangoko (ikhefu/igoto) kwaye ke azinjalo
efanelekileyo

Ngakolunye uhlangothi, ULinus Torvalds wavumelana nalo mbono ukukwazi ukuphumeza inkxaso yenkcazo emitsha kunye nokucebisa ngokuqhubekayo kwi-kernel 5.18 ukusebenzisa umgangatho we-C11, okhutshwe kwi-2011.

Emva koko, ngexesha lokuqinisekisa kwangaphambili, ukunyuka kwi-GCC kunye neClang kwimowudi entsha kudlule ngaphandle kokutenxa. Ngaphandle kokuba kuvela iingxaki ezingalindelekanga ngenxa yovavanyo olubanzi ngakumbi, i-5.18 kernel build scripts iya kutshintsha '–std=gnu89' ukhetho lube '–std=gnu11 -Wno-shift-negative-value'.

U-Linus Torvalds akazange asithande isiqwenga kakhulu kwaye akazange abone ukuba sinxulumana njani nobuthathaka obucingelwayo. Nangona kunjalo, emva kokuba uKoschel echaze ngakumbi le meko, uTorvalds wavuma ukuba "le yimpazamo nje eqhelekileyo, ilula kwaye ilula" kwaye yathi kufuneka ilungiswe kungakhathaliseki ukuba luluphi uchungechunge olukhulu. Kodwa emva koko waphonononga owona mthombo wengxaki: ukuba i-iterator idluliselwe kuluhlu lwe-macros enqamlezayo kufuneka ibhengezwe kububanzi obungaphandle kwe-loop ngokwayo:

Esona sizathu siphambili solu hlobo lwempazamo engacingelwanga lunokwenzeka kukuba ngokwembali sasingenalo uhlobo lwe-C99 "ukubhengeza iinguqu kwi-loops." Ke list_for_each_entry() - kunye nazo zonke ezinye - ngokusisiseko zihlala zihluza ungeno lwe-HEAD lokugqibela oluphuma kwiluphu, kuba asikwazanga ukubhengeza ukuguquguquka kwe-iterator kwiluphu ngokwayo.

Kukwafanelekile ukukhankanya loo nto ithuba lokusebenzisa umgangatho weC17 waqwalaselwa, kodwa kulo mzekelo kuya kufuneka ukuba kwandiswe inguqu encinci exhaswayo ye-GCC, ekubeni ukufakwa kwenkxaso ye-C11 kuhambelana neemfuno zangoku zenguqu ye-GCC (5.1).

Gqibela ukuba unomdla wokwazi okungakumbi ngayo, ungazijonga iinkcukacha kwi ukulandela ikhonkco.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Inoxanduva lwedatha: I-AB Internet Networks 2008 SL
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.