neprihlásený Pondelok, 7. októbra 2024, dnes má meniny Eliška
Linuxové jadro by sa mohlo začať programovať v Ruste už od verzie 5.20

Značky: linuxové jadroprogramovanie

DSL.sk, 21.6.2022


Podpora pre programovanie linuxového jadra aj v programovacom jazyku Rust a s ňou zrejme aj prvý kód v Ruste budú pridané do oficiálneho linuxového jadra čoskoro a stať by sa tak mohlo v ďalšom vývojovom cykle, teda v jadre 5.20.

Na základe dnešných vyjadrení Linusa Torvaldsa na Open Source Summite o tom informuje linuxový Phoronix.

Poslednou zatiaľ vydanou stabilnou verziou linuxového jadra je 5.18 a v súčasnosti sa už pripravuje na vydanie verzia 5.19. Jadro je v súčasnosti napísané najmä v jazyku C a časť je v assembleri.

Podpora Rustu pri kompilovaní jadra bude podľa Phoronixu zatiaľ ale voliteľná a v Ruste tak zrejme zatiaľ nebude napísaný žiadny dôležitý komponent.

Rust sa podobá na C++, bol ale vytvorený s cieľom riešiť problémy súčasného programovania a jeho dôležitými vlastnosťami sú bezpečnosť v oblasti manažmentu pamäte a pri používaní vlákien, efektívne multivláknové programovanie a zároveň pri týchto vlastnostiach aj vysoký výkon.

Na podpore programovania jadra v Ruste pracuje už dlhšie projekt Rust for Linux, doteraz mimo oficiálneho jadra.


      Zdieľaj na Twitteri



Najnovšie články:

FreeBSD ide výrazne zlepšiť podporu notebookov, získalo na to financovanie
Mapy.cz začali na Slovensku podporovať plnohodnotnú navigáciu
HDD by mali dosiahnuť 50 TB o dva až tri roky
OpenZFS konečne dostáva podporu pridania ďalších diskov do RAID-Z
4ka oslavuje výročie, zákazníkom dá 1 GB dát
Prvý WiFi router od OpenWrt v predaji
Alza v Česku spustila predaj liekov, na Slovensku ho zatiaľ nechystá
Seriál Fallout podľa počítačovej hry dosiahol 100 miliónov divákov
NASA laserom komunikovala takmer na pol miliardy kilometrov
Ďalšia generácia Intel CPU bude predstavená o týždeň, dostupná o ďalšie dva


Diskusia:
                               
 

ked som este profesionalne kodil tak som naozaj miloval ked v projekte bolo 10 roznych jazykov a 25 frameworkov. idilka.
Odpovedať Známka: 5.6 Hodnotiť:
 

To si asi nezazil casy fullstack developmentu. Ale to pre vas patdesiatnikov za zenitom je v pohode. Zahradka a pivko to napravia.

Peknu cestu do chorvatska!
Odpovedať Známka: -5.2 Hodnotiť:
 

Dal som ti mínus, lebo pukám od obmedzenosti a závisti.
Odpovedať Známka: 5.7 Hodnotiť:
 

Dal som mu plus, lebo to na vacsinu starcov fakt, ze sedi. To puknutie by som si ale pozrel ;-)
Odpovedať Známka: -6.4 Hodnotiť:
 

Smrádek ale teplučko. Načo sa trepať do chorvátska.
Odpovedať Známka: -2.0 Hodnotiť:
 

Aby si sa zbavil brmbolcov.
Odpovedať Známka: 0.0 Hodnotiť:
 

Dal som ti mínus lebo mladíkov nazývaš starcami.
Odpovedať Známka: 6.7 Hodnotiť:
 

Dal som minus, lebo si kokot.
Odpovedať Známka: -1.7 Hodnotiť:
 

tento týpek zavrhol svoju mamku :_(
Odpovedať Známka: 10.0 Hodnotiť:
 

No len sa nepojeb, dobre? To, ze uz nemas na to, aby si z kazdeho jazyka ci frameworku vytazil to najlepsie je tvoj problem. Tam, kde to tak fici tak je sice naskocenie do projektu bolestive ale potom to je jedna basen a tasky sa len tak minaju.
Odpovedať Známka: -5.7 Hodnotiť:
 

a nasledne aj zakaznici
lebo ked pride problem, tak sa vsetci vyznaju vo vsetkom, len nie preco to spolu nehra, a potom treba updaty aspon pat krat do tyzdna a zakaznik si moze vyberat ci preferuje tie parne kde neide x alebo neparne kde neide y
Odpovedať Známka: 7.9 Hodnotiť:
 

Nepoznam skoro nikoho, kto programuje v Ruste. Jediny kto v tom robi je typek co poznam. Sprchuje sa raz mesacne, zuby si umyva dva krat do tyzdna. Ma niekolko waifu vankusov, sleduje anime a hentai. Takze tolko k tomu. A to nespominam, ze balkon ma plny piss bottles.
Odpovedať Známka: -1.9 Hodnotiť:
 

Ten musí byť dobrý
Odpovedať Známka: 8.9 Hodnotiť:
 

Taký sú práveže tí, čo Rust hania, lebo kód v ňom nepotrebuje bezpečnostné aktualizácie, na ktorých sa dá priekazne roky rokúce zadrbávať pri refaktoringu.
Odpovedať Známka: 0.0 Hodnotiť:
 

Skor to vyzera tak, ze uz netreba sw backdory, lebo uz su rovno v hw.
Odpovedať Známka: 8.0 Hodnotiť:
 

Súhlasím, tak vymysleli niečo pre mileniálov, aby nemuseli toľko chudáčikovia myslieť.
(lebo čo ak by sa začali hrabať v assembly - a našli by tam naše špinavé tajomstvo)
Odpovedať Známka: 6.0 Hodnotiť:
 

Nepoznam ... jediny kto poznam.
Pil si?
Odpovedať Známka: 5.0 Hodnotiť:
 

Je jasné, že ten koment dával borec pred zrkadlom ;)
Odpovedať Známka: 7.3 Hodnotiť:
 

Alebo odborník minimálne atestovaný klinický psycholog.
Príliš veľa detailov, polovicu som si musel vygúgliť.
Odpovedať Známka: 5.0 Hodnotiť:
 

nepoznam SKORO nikoho. citaj s porozumenim.
Odpovedať Známka: 4.3 Hodnotiť:
 

Rozumieme, len si s teba ujebávame.
Odpovedať Známka: 5.6 Hodnotiť:
 

ani ja neviem o nikom, kto teraz kodi v C a assembleri. To ale neznamena, ze neexistuju. A predpokladam, ze v ich svete ten Rust nie je az taka exotika.

Odpovedať Známka: 5.0 Hodnotiť:
 

Tak to vypoveda hlavne nieco o tebe. Ked ho poznas tak dobre, asi ti nebude az tak nesympaticky. To, ze nepoznas normalnejsich rust-akov je opat zas tvoj problem.

V kazdom pripade po zavedeni rust-u do jadra bude jadro rychlejsie hrdzaviet, tak neviem, ci to je dobre.
Odpovedať Známka: 7.5 Hodnotiť:
 

Rust nie je rozsireni lebo ma pomerne strmu krivku ucenia.

Dokonca aj ciste C je pre mnohych dnesnych programatorov asi hard core.

Rust ma ale buducnost a asi nahradi na low-level tie rozne C fekalie. Potom sa ti moze stat ze ten tvoj piss-bottle na balkone kamos bude ten co zarobi 5x tolko co ty s tvojim js frejmworkami.

Ale the flase tam bude mat aj potom.

Odpovedať Známka: 1.4 Hodnotiť:
 

Tak tomuto uverim ked to uvidim. C uz malo nahradit tolko jazykov, a stale nic. Najblizsie je priekazne C++, a aj to zaostava koli prilis vysokej komplexnosti.

Kazdu chvilu pride novy lepsi jazyk na ktory mame vsetci hned prejst, a o par rokov o nom prakticky nepocut, a zostane len kod ktory nikto nevie udrziavat, a musi sa cely prepisovat do C alebo C++.

A nie je to len o krivke ucenia - Rust je dost tazkopadny. Napriklad default semantika priradenia tried je presun, nie kopia. Alebo ak existuje konstantna referencia na objekt, tak ten objekt nesmies zmenit ani ked mas priamy pristup cez inu premennu ktora nie je konstantna. Alebo prikazy ktore nasleduju mozu vyvolat chybu kompilacie u prikazov ktore predchadzaju.

Taketo nezmyselne 'featury' robia ten jazyk tazko pouzitelnym, a nie som presvedceny ze to zlepsuje bezpecnost.
Odpovedať Známka: 10.0 Hodnotiť:
 

podla prieskumu Stackoverflow je Rust to najlepsie na svete https://bit.ly/3bj2mZ9
Odpovedať Hodnotiť:
 

No to bude kopec radosti, ked sa na rozne routre/switche/firewally/atd ktore su Linux core based nebude moct prekompilovat kernel pre nedostatok pamate operacnej alebo pre samotny kod flash...
Cim viac bordelu (jazyky, frameworky) sa nachadza v kode, tym viac dier, velkosti a aj pomalosti nastava... Tato doba pokape na lenivost.
Clovek by ocakaval, ze dostali rozum a idu prepisat co najviac dolezitych casti do cisteho ASM a oni presne naopak. :(
Sa uz ani necudujem, ze bezne wifi6 routre stale mavaju problem obsluzit 20-25 klientov aj pri dvojjadrovom procesore a 64MB ram.
Odpovedať Známka: 0.3 Hodnotiť:
 

Na kolkych routroch/switchoch/firewalloch si kompiloval kernel? Nula? Spravna odpoved!
Odpovedať Známka: 7.0 Hodnotiť:
 

Takže keď routre konečne začínajú dosahovať výkon, s ktorým to ide, tak sa to tak bude nerobiť z tradície priekazne naďalej?
To veruže so schválením príslušného úradníka sekcie Nehmotného kultúrneho dedičstva UNESCO dáva zmysel.
Odpovedať Známka: 5.0 Hodnotiť:
 

To, ze ty nieco nepoznas a nevies este neznamena, ze to neexistuje. Prve kody som kompiloval uz v casoch, kedy PMD85 bol povazovany za super riadiaci pocitac :) Ty si sa este v tej dobe zrejme hompalal v tatkovych tojasoch...
Odpovedať Známka: -5.0 Hodnotiť:
 

kompilovat kernel na routeroch, switchoch? jebeee?

Rust je super jazyk, nie len ze riesi problem s manazmentom pamate bez garbage collectora a bez pointerov. Ale je brutal rychly. Toto je spravny vyvoj linuxoveho kernelu. Ani Torvalds nema v hlave nasrate a uplne tomu chape.
Odpovedať Známka: -0.9 Hodnotiť:
 

rozumiet niecomu
chapat nieco

... a uplne tomu rozumie
... a uplne to chape

Odpovedať Známka: 6.0 Hodnotiť:
 

Rozumie != Chape. A teda chcel potvrdit obidva stavy.
Odpovedať Hodnotiť:
 

Zalezi na zariadeni, nieje WiFi ako WiFi. A s kompilaciou ziadna sranda - je za tym kopec "drobnosti" ktore na prvy pohlad nevidno a zdanlivo su "nepodstatne"
Odpovedať Známka: 10.0 Hodnotiť:
 

Programovanie v ASM bolo urcene pre jednocipove pocitace, nie pre moderne viacprocesorove systemy. Navyse portabilita kodu na rozne CPU by bola zabezpecena akym jednoduchym sposobom?
Odpovedať Známka: 2.7 Hodnotiť:
 

hovori sa tomu, ze vynimka potvrdzuje pravidlo. Myslis, ze oni su fakt tak obmedzeni, ze im to nedoslo a robia to lebo inak nevedia? Ci uz je to kernel, alebo vysoko optimalizovane videokodeky.. Robia na tom ludia co vedia co robia, tak ich nechajme robit to aj dalej :)
Odpovedať Známka: 6.0 Hodnotiť:
 

Aky je rozdiel v pocte procesoroch, resp. jadrach pri programovani v ASM? Myslis, ze akekolvek OOP dokaze nieco viac ako ma nabastlene kompilator v danej multithread kniznici?
Portabilita pri x86 a x64 je zarucena generickou sadou instrukcii, samozrejme pre ine architektury je to uz zlozitejsie a vpodstate nemozne, ale od toho prave je mozne odvodit rozne forky tak, ako je to aj teraz, pricom dolezite casti by boli optimalizovane v maximalnej miere pre danu architekturu.
Odpovedať Známka: 0.0 Hodnotiť:
 

Aha takze ASM nie je urceny pre moderne CPU. Zaujimave tvrdenie... Skus si prebehnut dokumentaciu k najnovsim CPU, stavim sa, ze tam najdes ASM instrukcnu sadu. Navyse, ked chces nieco naozaj zoptimalizovat, ASM sa nevyhnes...

Vies vyuzit kvantum veci, uplny zaklad je out of order spracovavanie instrukcii, lepsie vyuzitie cache...

To je taky ten moderny nazor, podobne ako ked mi niekto povie, ze naco toto "kodit", ked je na to predsa kniznica.... Ale kto naprogramoval tu kniznicu ??? Ludia otupjevavaju a je to vidno aj v kode
Odpovedať Známka: 3.8 Hodnotiť:
 

s jednym sa da v jeho prispevku suhlasit - dnes uz kodenie v asm netreba v takej miere ako kedysi. Ak sa kompiluje kod s prislusnymi parametrami a optimalizaciami pre konkretne CPU, je vysoko pravdepodobne, ze vyjde rychlejsi kod, ako by vysiel z klavesnice aj skuseneho asm programatora, nakolko kompilator tvoria ludia, ktory do detailov rozumeju fungovaniu CPU a jeho instrukcnej sade.
Odpovedať Známka: 10.0 Hodnotiť:
 

Nie som sice zastanca pisania kodu priamo v assembleri (myslim ze C je viac nez dost nizkourovnove), ale na toto trochu pozor. Otestoval som si schopnost viacerych kompilerov optimalizovat, a ono to nie je take slavne ako sa to casto prezentuje - v pohode som dokazal v ASM napisat rychlejsi kod nez napr. microsoftacky kompiler vygeneroval.

Ten problem je v tom ze kompiler musi brat do uvahy korektnost, a predpoklady na ktorych je zalozena semantika jazyka. Takze budes mat bud jazyk kde je vsetko 'bezpecne' ale pomale, alebo jazyk kde sa da generovat rychly kod, ale za cenu dost nebezpecnych predpokladov. V C a C++ je to napriklad 'undefined behavior'.

Takze ked mi niekto tvrdi napr. ze Rust je rychly a zaroven bezpecny, dovolim si o tom pochybovat.
Odpovedať Známka: 10.0 Hodnotiť:
 

Chlapci, pokoj. Ty pises o konkretnom kroku, ktory tvori 90% kodu a / alebo prace? Ja nie, pisem vseobecne.

ASM sa chytam dokonca aj dnes a som si plne vedomy jeho vyuzitia. Cele programovanie speje k velkym lahko zostavitelnym molochom, nakolko vykon je lacny. Dokonca postup vo forme no-code.

Kedy si naposledy optimalizoval kod v ASM? Ja este nikdy. ASM vyuzivam osobne s uplne inym zamerom, ako optimalizacia kodu. Ak nepoznas dovod, skus zistit, nie ze by to bolo dolezite.
Odpovedať Známka: 5.0 Hodnotiť:
 

to je asi tak, ako ked sa niekto bude svatosvate hadat, ze ma pravdu a ako argument ti povie - nastuduj si. Skus nam, prosim ta, opisat svoje zamery pri pouzivani asm.
Odpovedať Známka: 10.0 Hodnotiť:
 

Beriem na vedomie.
Asi posledne pracovne nasadenie ASM bol uprava kodu pre jeden z kontrolerov PCL modemu (analyza kodu pocas behu a nasledna uprava), ale to uz je par rokov dozadu.

Kedze mas zaparave otazky podnecujuce nedoveryhodnost, skus opisat svoje nasadenie ASM v kerneloch. Alebo ide o nejaku cast automatizacie vo vyrobe?
Odpovedať Známka: 10.0 Hodnotiť:
 

Pardon, PLC - Power Line Communication.
Odpovedať Hodnotiť:
 

to skor vyzera, ze si nemal moznost pouzit nic ine. Na takejto urovni to samozrejme inak ani nejde. Moje skusenosti s programovanim kernelu ci videokodekov su samozrejme nulove. Opieram sa skor o to, ze v tom pisu ludia, ktori su vacsie hlavy ako ja - napriklad tvorci kodeku AV1. Verim, ze ak by mali moznost, tak by to napisali radsej v C# na 3 riadky :P
Odpovedať Známka: 10.0 Hodnotiť:
 

Samozrejme, nemali sme zdrojove kody a uprava sa inak nedala realizovat.
Odpovedať Známka: 10.0 Hodnotiť:
 

Vykon az taky lacny priekazne nie je, ak si niekedy bol nuteny pisat softver na spracovanie velkych dat C# alebo podobnom jazyku. Ono je to najprv dostatocne rychle, az raz nie je, a potom to zoptimalizovat je sodoma gomora.

Ale zato z vlastnej skusenosti mozem potvrdit ze za viac ako 10 rokov som v assembleri nenapisal ani riadok. Na vsetko stacilo C/C++.

Na co bola ale znalost assemblera mimoriadne uzitocna je na debugovanie velmi divnych problemov. Niekedy kod ktory by mal fungovat nefunguje, a za boha clovek netusi preco. Pozriet sa na vygenerovany kod casto pomoze zistit kde je pes zakopany. A bugy v kompileroch tiez nie su az tak vzacne.

A druha vec je, ze znalost assembleru a teda ako naozaj funguje hardver je uzitocna v pisani rychleho kodu aj v C. Daleko dolezitejsie nez lovenie taktov je spravny navrh datovych struktur (nemyslim algoritmicky, ale rozlozenim v pameti), organizacia podmienok, a podobne.
Odpovedať Známka: 10.0 Hodnotiť:
 

To co je podstatne je algoritmus. Ked pouzijes zlozitost n log n alebo n*n je ovela vacsi rozdiel ako c ci nieco ine. Preto je obrovsky rozdiel ci ma niekto algoritmi na fiit za sebou alebo to riesi naivnym prvym co ho napadlo.
Odpovedať Hodnotiť:
 

By si bol prekvapeny. Viacero algoritmov a udajovych struktur ktore maju lepsiu teoreticku zlozitost sa takmer nikdy v praxi nepouzivaju. V C++ je std::vector najpouzivanejsia udajova struktura z velmi dobreho dovodu.

Nie je to sice specifikum jazyka, ale vsimol som si ze efektivne programovanie je silne korelovane s jazykmi kde na tom realne zalezi. C/C++ programatori zvyknu pisat rychlejsi kod uz len zo zvyku, a koli lepsej znalosti hardveru.
Odpovedať Hodnotiť:
 

ASM pri moderných inštrukčných sadách je navrhovaný tak, aby sa dal do neho efektívne kompilovať kód z iných jazykov, nie tak aby sa v ňom dal pohodlne písať software ručne.

Máš vela vektorových inštrukcií, inštruckií, ktoré robia rôzne, na prvý pohlad nie moc súvisiace veci, naraz.

Tie vychádzajú zo skúmania toho, ako sa software chová a z toho, čo kompilátor dokáže vyhodnotiť, nie z toho, čo ty ako človek vymyslíš.

Ano, existuj ludia, čo dokážu písať rýchly ASM kód, ale to sú ludia, ktorí majú na to talent, strávili tým obrovské množstvo času a je ich ako šafránu.

Ak sa ty rozhodneš napísať ASM kód pre moderný procesor, tak rozhodne nebude tak rýchly ako skompilované Cčko alebo Rust. A som si tým istý, pretože so svojim otupievajúcimi kecami vieš hovno o tom, ako funguje software.
Odpovedať Známka: 0.0 Hodnotiť:
 

Rust je práve bezpečnejší jazyk, pretože ti s nulovým overheadom rieši bezpečnosť pamäte.

Tým sa eliminuje obrovský priestor pre útoky na chyby v manuálnej správe pamäti. Pozri sa kolko exploitov využíva chyby typu pretečenie buffru a podobne. Toto všetko rust eliminuje. Bez overheadu.
Odpovedať Známka: 2.0 Hodnotiť:
 

Ujooooo? A čo je to ten overheadu?
Odpovedať Známka: -10.0 Hodnotiť:
 

To je blbost, lebo aby si mal uplnu pametovu bezpecnost bez overheadu musel by si priekazne vyriesit halting problem.

Napriklad tebou spomenute pretecenie bufferu Rust riesi tak ze kontroluje kazdy nahodny pristup, cize s dost velkym overheadom. Iba ked pouzijes sekvencny pristup cez iteratory tak sa ta kontrola robi len raz.

A toto je to co ma na Ruste najviac odradza: ze jeho zastancovia tvrdia somariny.
Odpovedať Známka: 6.0 Hodnotiť:
 

Vieš ako funguje halting problém a nevidíš výhody rustu. Jasneeee. Tomu sa dá veriť.
Odpovedať Hodnotiť:
 

Ja od nikoho nechcem aby mi veril. Si o tom precitaj nieco sam. Priekazne nevies ako funguju kompilery, a co obnasa semantika jazyka. Uplna pametova bezpecnost je neriesitelny problem, pokial brutalne neobmedzis co jazyk dokaze. Niekedy sa to da, niekedy to sposobi viac problemov nez to vyriesi.

Takych pokusov uz bolo. O funkcionalnom programovani si pocul? O formalnej verifikacii a dokazovani spravnosti kodu? Ono to ide, ale v momente ked potrebujes menitelny stav narazis prave na halting problem. Nieco take jednoduche ako ci game of life z nejakeho pociatocneho stavu sa stabilizuje alebo sa bude menit donekonecna je nerozhodnutelne.

Preto ked citam take somariny ze Rust vyriesil nieco co je teoreticky nemozne, sa musim len zasmiat. Dalsi evanjelik hlasajuci dalsiu 'dobru novinu'. Pockaj par rokov, uvidime kam to Rust dotiahne. Mozno z toho vzide aj nieco dobre, a neskonci to cele na smetisku dejin.
Odpovedať Hodnotiť:
 

Ale ja mám lepšiu: F#
Odpovedať Známka: 0.0 Hodnotiť:
 

A keď bude potreba bastliť, tak sa môže niečo dobastliť v nižšom jazyku...
Odpovedať Hodnotiť:
 

suhlasim,

ale moc sa v tom nerobi ale zasa ta prudka elegancia.

Staci aj 10 riadkov za den a clovek je spokojny, vsakze?
Odpovedať Hodnotiť:

Pridať komentár