ot task_struct(6-04-2014)

Na 30 mart 2014 izleze Linuks iadro 3.14

Osnovnite novovuvedeniia v nego sa:

  • SCHED_DEADLINE za po-dobra poddruzhka na realno-vremevo upravlenie na protsesite
  • zram - mehanizum za kompresirane na pametta
  • Btrfs - poddruzhka na svoistva v inode-ovete
  • Subitiiata ot trasirane na iadroto veche mogat da startirat "komandi"
  • probe-ite v potrebitelskoto prostranstvo veche mogat da dostupvat vsichki argumenti
  • Validator na zaklyuchvaniia v potrebitelskoto prostranstvo
  • Randomizatsiia na adresnoto prostranstvo v iadroto
  • Avtomatichno grupirane na malki paketi v TCP
  • Nov mrezhov paketen dispechur
  • Kernfs

SCHED_DEADLINE za po-dobra poddruzhka na realno-vremevo upravlenie na protsesite

Operatsionnite sistemi traditsionno predostaviat prioritizatsiia na protsesite pri razpredelenieto na protsesornoto vreme. Kolkoto po-goliam prioritet ima edin protses, tolkova poveche protsesorno vreme shte poluchi spriamo protsesite s po-nisuk prioritet. V Linuks, potrebitelite obiknoveno slagat prioritete na stoinosti mezhdu -20 i 19 kato izpolzvat komandata nice(2) V dopulnenie v Linuks sushtestvuva i poniatieto "dispecheren klas". Vseki takuv klas predostavia razlichen nachin za razpredeliane na protsesornoto vreme. Na primer, klasa SCHED_FIFO shte razpredeli vremeto na printsipa "purvi vliazul, purvi izliazul", a SCHED_RR razdava na vsichki protsesi ednakvo vreme za izpulnenie i gi smenia v krug edin sled drug. Podhodut s prioritetite, obache, ne e mnogo podhodiasht za realno-vremevi zadachi. Kompaniite Evidence Srl i ReTiS Lab sa suzdali alternativen dizain okolo kontseptsiiata za realno-vremeva zadacha - razpredelenie s kraen srok. Tozi dizain e implementiran, chrez noviiat klas SCHED_DEADLINE. Razpredelenieto s kraen srok premahva ideiata za prioriteti na protsesite. Vmesto tova, vseki protses predostavia tri parametura vreme za izpulnenie, period i kraen strok. Na zadacha ot klasa SCHED_DEADLINE i se garantira, che shte poluchi "vreme za izpulnenie" mikrosekundi na vseki "period" mikrosekundi, i tezi "vreme za izpulnenie" mikrosekundi sa na dostizhimi do "kraen srok" mikrosekundi ot nachaloto na perioda. Dispecherut na protsesite izpolzva tazi informatsiia za da izpulni protsesa s nai-skoroshen kraen srok, povedenie, blizko do iziskvaniiata za realno-vremevi sistemi. Za poveche informatsiia za algorituma mozhete da prochetete dokumentatsiiata.

zram - mehanizum za kompresirane na pametta

zram predostavia blokovi ustroistva v RAM-a. Vsichko, koeto se zapiva s tezi ustroistva se kompresira. Ako zram ustroistvo se izpolzva kato swap, sistemata efektivno shte kompresira pametta, koiato se opitva da zapishe v swap-a. Tova efektivno raboti kato evtin mehanizum za kompresirane na pametta s tsel da se podobri reaktsiiata na sistemi s ogranicheno kolichestvo pamet. Zram se izpolzva v televizori, Android 4.4, Cyanogenmod, Chrome OS, Lubuntu i drugi.

Btrfs - poddruzhka na svoistva v inode-ovete

V tazi versiia na iadroto stava vuzmozhno da se dobaviat dvoiki ime-stoinost kum inode-ovete. Tova stava chrez xattr. TSelta na tezi dvoiki e da se suhraniavat svoistva za inode-ovete, kato kompresiia na primer. Tezi svoistva mogat da se naslediavat. Tova znachi, che ako direktoriia ima svoistvo v inode–a si, koeto mozhe da se naslediava, tova svoistvo se dobavia kum vseki nov inode v tazi direktoriia. Pod-dialovete sushto mogat da imat asotsiirani svoistva i te mogat da budat nasledeni ot roditelskiiat poddial. S tazi versiia e dobaveno edno spetsialno svoistvo "compression", koeto mozhe da ima stoinosti "lzo" ili "zlib" i da bude naslediavano.

Subitiiata ot trasirane na iadroto veche mogat da startirat "komandi"

Probe-ite sa nabor ot instrumenti za subirane na debug informatsiia ili izmervane na proizvoditelnostta na iadroto. Razrabotchitsite i sistemnite administratori chesto gi izpolzvat za debugvane na iadroto ili namirane na problemi.
Tazi sistema pozvoliava lesno da se registrirat probe funktsii kato subitiia( za poveche informatsiia vizhte Documentation/trace/events.txt). V 3.14 e dobavena vuzmozhnost tezi subitiia da startirat "komandi". Komandite mogat da imat razlichni formi. Na primer, pri subitie mozhe da se puskat ili spirat drugi subitiia ili da se pokazhe programniia stek v momenta na nastupvane na subitieto. Sushto taka mogat da se dobaviat i filtri na subitiia. Dadena komanda shte bude startirana samo ako subitieto, koeto ia predizvikva mine prez filtura. Na primer, sledniiat kod pokazva programniia stek purvite 5 puti, kogato kmalloc e izvikan s razmer po-goliam ili raven na 64K: # echo 'stacktrace:5 if bytes_req >= 65536' > \ /sys/kernel/debug/tracing/events/kmem/kmalloc/trigger

probe-ite v potrebitelskoto prostranstvo veche mogat da dostupvat vsichki argumenti

V Linuks 3.5 beshe dobavena vuzmozhnost za izpolzvane probe-i v prilozheniia, raboteshti v potrebitelskoto adresno prostranstvo. Sega veche mogat da se dostupvat vsichki vidove danni: pamet, stek, bitovi poleta i drugi.

Validator na zaklyuchvaniia na muteksi v potrebitelskoto prostranstvo

Ot versiia 2.6.18 iadroto ima instrument, s koito mogat da se namirat problemi, svurzani sus zaklyucheni muteksi po vreme ne izpulnenie. Ot 3.14 tozi instrument mozhe da se startira i izpolzva za namirane na problemi v prilozheniia, izpulniavani v potrebitelskoto prostranstvo.

Randomizatsiia na adresnoto prostranstvo v iadroto

Druga novost e vuzmozhnostta za izbirane na sluchaini fizicheski i virtualni adresi pri dekompresirane na iadroto. Tova pozvoliava da se sprat atakite kum iadroto, bazirani na znaniia, kude v pametta se namirat negovi vazhni funktsii.

Avtomatichno grupirane na malki paketi v TCP

Kogato dadeno prilozhenie pravi mnozhestvo malki posledovatelni sistemni izvikvaniia write()/sendmsg(), iadroto shte se opita da gi subere vuzmozhno nai-mnogo, za da namali broiat na izprateni paketi. Tova deistvie se naricha avtomatichno grupirane ("automatic corking"). Grupiraneto se pravi samo ako veche ima pone edin paket za tova prilozhenie v Qdisc opashkata ili v opashkata za izprashtane na ustroistvoto. Prilozheniiata vse oshte mogat da izpolzvat TCP_CORK flaga v setsockopt() za postigane na optimalni rezultati. Sushto taka e dobaven i nov sysctl (/proc/sys/net/ipv4/tcp_autocorking) za upravlenie kato po podrazbirane avtomatichnoto grupirane e pusnato.

Nov mrezhov paketen dispechur

"Bufferbloat" e situatsiia, pri koiato goliamoto kolichestvo buferi, predavani po mrezhata, mogat da prichiniat visoka latentnost i nasichane. S narastvaneto na broia na interaktivnite prilozheniia ( VoIP, video, finansovi operatsii i dr. ), tozi problem se zasilva i mozhe da prichini spad v proizvoditelnostta. Sushtestvuvat reditsa podobreniia v mrezhoviiat stek na iadroto, koito se opitvat da reshat tozi problem. S 3.14 idva i nov paketen dispecher - PIE(Proportional Integral controller Enhanced), koito mozhe efektivno da kontrolira srednata latentnost na opashkite ot buferi do opredelena stoinost. Simulatsii, teoretichni analizi i realni testove pokazvat, che PIE uspiava da osiguri niska latentnost i da postigne visoko opolzotvoriavane na mrezhovata vruzka v mnozhestvo situatsii.

Kernfs

Kernfs e chast ot sysfs logikata, otdelena v nezavisim modul, taka che drugite podsistemi v iadroto da mogat burzi i lesno da suzdavat svoi virtualni failovi sistemi.

Iztochnik: kernelnewbies.org


<< TuxCon - FOSS konferentsiia tursi lektori | 25 godini Internet >>