Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
NOWOŚCI
J
ądro
Nowa,minimalnawersja
wykorzystujeasmgoto.Takiscenariusz
GCCzmieniasięz3.2na4.8
spodobałsięLinusowi.Jaknaraziewy-
PrzezwielelatminimalnawersjaGCC
glądawięcnato,żenowąminimalną
miałanumer3.2.Oznaczato,żewersja3.2
wersjąkompilatorazostanieGCC4.5.
(ipóźniejsze,zkilkomawyjątkami),była
JednakArndBergmannzauważył,że
oficjalniewspierana,jakopoprawnie
GCC4.5niejestwstaniezbudowaćjądra
wykonującakompilacjęjądraLinuksa.
wprzypadkuniektórychnowszychsys-
Wspieranietakwiekowejwersjijest
temówARM.Dlategoteż,potestach,któ-
pożądane,ponieważludziezajmującysię
rewykonałwzeszłymroku,ocenił,że
jądremniechcązakładać,jakieopro-
GCC4.6tolepszykandydatnaminimal-
gramowaniedziałanasystemieużyt-
ną,oficjalnąwersję.
kownika.Chcą,abykażdybyłwstanie
Natymetapiepytaniebrzmiało,czy
skompilowaćdziałającejądro,korzystając
jakieśdystrybucje,szczególniestarsze
praktyczniezdowolnejdostępnejwersji
wydania,którewwersjiLTS,aktóre
narzędzi.
używająGCC4.6.Czyteżmożekorzy-
Problememjesttylkoto,żetozałoże-
stająznowszychwydań?Jeśliużywa-
nieniejestprawdziwe.Temattenpod-
czegokolwieknowszego,to,jakLinus
niesionoostatnionaliściedyskusyjnej
stwierdził,oficjalneminimumteżmoże
iLinusTorvalds,wpewnymmomencie
byćwyższe.
powiedział:Unaszadokumentacjamo-
Arndsprawdziłtoiokazałosię,żenie-
żeitwierdzi,żeminimalnąwspieraną
którezdystrybucjiwwersjiLTSkorzy-
wersjąjestGcc-3.2,alekilkamiesięcy
stajązestarszychniż4.6wersjiGCC.
temuArndzauważył,żenajwidoczniej
PonieważLinuschciałpodnieśćmini-
nicstarszegoniżwersja4.1oddłuższe-
malnąwersjęGCCprzynajmniejdo4.6,
goczasujużniedziała,awkilkuarchi-
niemająoneznaczenia.Pozostałedys-
tekturachkoniecznebyłozastosowanie
trybucjeLTSalbokończąswójżywot,al-
Gcc-4.3”.
bokorzystajązGCC4.8.
Wtymmomenciepojawiłosiępyta-
Szybkosięokazało,żeGCC4.8zosta-
nie,jakąwersjępodaćjakonoweoficjal-
nienową,oficjalnieminimalnąwersją.
neminimum.Oczywiście,powinnoono
Jestnatyleświeża,żeumożliwikorzysta-
uwzględnićtakwieleutrzymywanych
niezkonstrukcjiasmgotoinatylestara,
systemówlinuksowych,jaktotylkomoż-
żeobsłużywszystkie,aktualnieużywane
liwe.Jednakabyzmaksymalizowaćła-
dystrybucjeLinuksa.Zpowodutejdecy-
twośćutrzymaniajądra,powinnato
zjidużaczęśćkoduuznanazostanieza
teżbyćnajwyższamożliwawersjaGCC.
martwąiwefekcie,usuniętazdrzewa
WkońcunowszewersjeGCCwspierają
jądra.
dużolepszekonstrukcjeprogramistycz-
neniżstarszewydania.Konieczność
Intelrozważazmiany
wspieraniastarszychwersjitokoniecz-
wsprzęcie,eliminujące
nośćutrzymywaniacałychgałęziniezbyt
zagrożeniebezpieczeństwa
pięknegokodu,istniejącychtylkozpo-
Wceluodnalezieniasposobuna
wodutychwersjiGCC.
naprawęlubobejściebłędówSpectre,
Krokpokrokuprogramiścijądraprze-
Meltdowniinnychwadodnalezionych
analizowalikolejnewersjeGCC,próbując
wukładachIntela,ludzieztejfirmy
wyrzucićjezlistybranychpoduwa-
współpracujązprogramistamijądraLi-
gę.Ponieważwersja4.3jestwymagana
nuksa.OstatnioDaveHansenzIntelaza-
wkilkuarchitekturach,stałasięnatural-
pytał,czyproponowanazmianawsprzę-
nympunktemstartowym.Wczasiedys-
ciewydajesięużytecznadlaspołeczności
kusjiokazałosię,żeGCC4.4mawady,
Linuksa.Konkretniechodzioto,że
którechoćniewpływająnaużytkowanie
Intelrozważadodanienowegobitudo
standardowychdystrybucjiLinuksa,
rejestruIA32_ARCH_CAPABILITIES,aby
warteodnotowania.Ważneteżbyłoto,
mócstwierdzić,kiedybuforRSBjest
żekonstrukcjaasmgoto,wprowadzona
pusty.WnormalnymprzypadkuRSB
wwersji4.5,umożliwiatworzeniedużo
otrzymujedanewstosieiwprzypadku
prostszegokoduniżwpoprzednichwer-
wystąpieniażądaniaprzekazujejedalej.
sjach.Podniesienieoficjalnegominimum
Kiedyjednakjestpusty,jestteżpodatny
do4.5umożliwiłobywięcpozbyciesię
naatakSpectre.Nowybitsprawdza,
dużejilościbrzydkiegokodu,któryak-
czywystępujetakistaniatakumożna
tualniewspółistniejerazemztym,który
uniknąć.
LinusTorvaldswpełnipopierataką
zmianę,gdyżpozwolionauniknąćkilku
nieprzyjemnychtestówwjądrze.Począt-
kowopojawiłosiękilkagłosówprzeciw-
kopropozycjiDave’a,gdyżanalizowano
możliwościataku,któryomijałbytaką
łatkę.Jednakwszystkieteobiekcjeuda-
łosięwyciszyćizmianazyskałaogólne
poparcie.
OczywiścieIntel,zanimpodejmiede-
cyzjęozmianie,rozważaćteżbędziewie-
leinnychczynników,alewspanialejest
obserwowaćtakotwartąwspółpracęze
środowiskiemLinuksa.
Udoskonalenie
asymetrycznej
wieloprocesorowości
Dawniej,układklastrowyidentycznych
procesorówtobyłocoświelkiego.Dzi-
siaj,wprzypadkukomputerówogólnego
przeznaczenia,systemyzsymetryczną
wieloprocesorowością(SMP)tostandard.
Wśródnowościznajdziemyzatowielo-
procesorowośćasynchroniczną(AMP).
Wszyscynajważniejsiludziechcąteraz
miećosobneprocesorydotrudnychza-
dańiosobnedolekkich.
Jakjądromazdecydować,którepro-
cesyprzenieśćnaktóryprocesor,kiedy
poduwagętrzebabraćwieleczynników?
DietmarEggemanniQuentinPerretpra-
cująwłaśnienadtymproblemem(oni
orazolbrzymialiczbaprogramistówze
światagadżetów).Opublikowaliostat-
niołatkędlasystemówzwydajnymi
procesorami,któreposiadająteżmniej
wydajnysprzęt.Ichcelemjestobciąże-
niewydajnychprocesorówtakwieloma
zadaniami,jaktotylkomożliwe,zanim
przetwarzanieprzeniesiesięnamniej
wydajnejednostki.
Problemzichrozwiązaniem,jaksami
przyznali,jesttaki,żewceluzidentyfi-
kowanianajlepszego,dostępnegoproce-
sora,któryniejestjeszczemaksymalnie
obciążony,łatkamusizrealizowaćalgo-
rytmtypubrute-force,którybędziewy-
dajnyjedynienasystemachzniewielką
liczbąprocesorów.Dietmarokreśliłto
tak:UTałatkatopróbazrobieniaczegoś
przydatnego,ponieważwprowadzenie
wżycieszybkiegoalgorytmuheury-
stycznego,któryradzisobiedobrzena
wieluarchitekturach,niejestłatwym
zadaniem”.
Takiepodejściezpewnościąmożna
uznaćzasprawiedliwe.Wielegadżetów
narynkuposiadamałąilośćprocesorów,
8
WRZESIEŃ2018
NUMER175
LINUX-MAGAZINE.PL