Tak at si bugy opravuji vyrobci vadneho HW.
A uzivatel at muze vratit produkt, ktery neodpovida specifikacim. Zadne tajne erraty pod NDA - jen hezky priznejte co vse produkt ma umet a co umi blbe. A pokud se zjisti, ze to neumi neco, co to umet melo - tak vratka + nahrada skod.
Me taky leze krkem veskere ujednani, kdy nikdo za nic neruci - copak ja mam stejne prava si vyminit, ze jim to podobnym stylem zaplatim ci nezaplatim?
Kde jsou ty doby, co jste si otevrel dokumentaci a mel tam cerne na bilem, co to dela a jak to dela. Dnesni doba ze tohle povinny neni nahrava vsem korporatnim smelinarum. A ze jich je..
21. 10. 2024, 16:45 editováno autorem komentáře
Vicemene s tebou souhlasim, akorat zdokumentovat treba spekulativni zpracovani v ramci cpu bez toho aby jsi zverejnil properiatarni informace podle me nejde nebo nebude to tak snadne. V dobe kdy cpu umelo jenom par zakladnich operaci jako scitani to bylo snadne. Jako v kazdem vyrobku i u hw muzou vzniknout chyby a ne vse jde opravit. Na rozdil od US mate v CR smulu ze nemate zatim nic jako hromadne zaloby a efektivita soudnictvi je vuci treba US mizerna
Je pravda, že zveřejnit specifikaci do detailu bez toho, aby to obratem někdo obšlehnul (zdravíme do Číny) nejde. Ale pak by bylo fér alespoň zveřejnit co nejvíc a za nezveřejněný zbytek nést odpovědnost, pokud se tam nějaká chyba objeví.
Jiz ted ti nikdo nebrani podat zalobu na vyrobce cehokoliv a muzes prokazat ze treba to zere vice nez sliboval vyrobce kdyz jsi to kupoval…
"Jiz ted ti nikdo nebrani "
Coz se ti bude delat dost blbe, kdyz tu specifikaci vlastne ani neznas, protoze verejne dostupna neni.
Koupil jsem si procesor s nějakým výkonem. Pak mi výrobce vydá nový mikrokód co opravuje bezpečnostní chybu a zároveň sníží výkon o 10% …. Na tohle nepotřebuju žádnou specifikaci ani nic tajného, to je snadno měřitelný parametr.
Má to jen jednu vadu. Výrobci žádný takový parametr ve specifikaci neuvádí. Takže nemáte co reklamovat.
Naopak, tohle je jedna z mala veci, ktere by reklamovat uspesne mohl, ovsem v podminkach EU sam za sebe. Protoze stejne jako muzes zmerit vykon motoru, muzes zmerit vykon CPU, a zmena o 10% uz zcela jiste neni chyba mereni. Protoze ti nemeris nejake absolutni cislo, ale meris ten rozdil.
Což je dost smutné .... koupit si věc co je určena k tomu že bude něco počítat a nedostanu k tomu žádné relevantní parametry. Třeba u grafických karet se udává kolik operací za vteřinu to zvládá. U CPU se tyhle údaje přestaly udávat. Zřejmě dle výrobce není tato hodnota důležité.
Z právního hlediska by bylo zajimavé zjistit, kde je ta hranice poklesu výkonu, kdy je reálné to výrobci hodit na hlavu. Tak nějak tolerujeme, že rozdíl výkonu v řádech jednotek procent je běžný a nikdo to moc neřeší. Ale co když spadne výkon na polovinu? Projde to ještě výrobci? Argument, že lze bezpečnostní opravu deaktivovat a získat potřebný výkon zpět, nám s platností NIS2 asi padne.
"Ale co když spadne výkon na polovinu? Projde to ještě výrobci?"
V EU vpohode, ty si nepamatujes na aferku VW? V US vraceli vsem 100% ceny za libovolne stary a jety auto, v EU lidem ucpali sani = snizili az o 30% vykon.
Protože při spekulativním provádění generického kódu nad ad-hoc daty nikdy předem nevíš, kolik instrukcí a dat vytažených z cache se zahodí.
Taky mi dáš záruku, že za x peněz uděláš objem práce y, když ti do podpisu prováděcí smlouvy neřeknu, co to bude za práci, v jakých podmínkách ji budeš vykonávat, a jaké nástroje budeš mít k dispozici a jestli tě při tom nebudu mlátit lopatou po hlavě?
2. 11. 2024, 06:24 editováno autorem komentáře
Bohuzel nektera CPU nesplnuji specifiikaci ani u nespekulativniho kodu.
Existuje na to dukaz - Xeon Phi by melo mit vykon X GFlops, ale protoze reorder buffer neni dostatecne hluboky, tak namisto 7 instrukci to dokaze vykonavat jen 6 tusim.
Takze papirovych teoretickych X co deklaroval vyrobce nikdy nelze dosahnout - pouze 6/7 z X .
Poud vím, tak výrobce uvádí pouze maximální dosažitelné takty, počet jader, velikost paměti a podobně. To, kolik s těmito parametry spočítá úloh za určitý čas se nikde neuvádí.
Viz vejs, to je jedno, vemes nepatchovany CPU, zmeris ho, a pak ho patchnes a zmeris znova. Pokud se vykon zhorsi, tak si zcela zjevne byl poskozen. Klidne muzes prohlasit, ze sis ten vykon zmeril pred nakupem a prave proto sis ten CPU koupil.
Ty jako zákazník můžeš říct... já, jako výrobce zase můžu oponovat, že ty testy nejsou věrohodné, že mohly být upraveny, záměrně nastaveny nevýhodně, atd, atd,... A já jako jeden z největších globálních výrobců určitě budu mít za zády víc a dražších právníků, než nějaký Lojza z Horní Dolní, co si postavil lowcost PC a teď brečí že má v CS o 20FPS míň. Půjdeš do takového soudního sporu?
Ty jako vyrobce pokud se k tomu vubec dostanes mi vratis penize, a tim spor instante skonci, protoze je i pro tebe o 10 radu levnejsi. V US bych na tebe dal hromadnou zalobu jemnem vsech i jen potencielne poskozenych a mel bych lusknutim prstu k dispozici takovy stado pravniku, zcela zdarma, ktere ty nikdy neuplatis.
Akorát by mě teda zajímalo, jestli ta data, kvůli kterým sis to CPU původně koupil, budeš chroupat na abakusu, nebo na papíře.
Ne. Koupil sis CPU s nějakým označením, a ten splňuje uváděné parametry: počet jader, frekvence jader a sběrnic, objem cache, typ grafiky, a architekturu.
Nikde ve specifikaci nemáš uvedeno garantované passmark skóre, pouze lze dohledat naměřené na nějakém vzorku. A doslova nikde nenajdeš nic, co by bylo formulováno jako garance výrobce, že to bude mít nějaké skóre s nějakou spotřebou.
Predevsim bys tu dokumentaci ale musel udrzovat a celou funcionalitu analyzovat znova vzdy kdyz vydas nejaky novy firmware.
Strejne jako v US se u nas bude resit, kdo ten HW vyrobil a ne jak ho vyrobil a jak funguje.
Teoreticky s tebou souhlasim. Problem je praxe. Soucasne CPU jsou tak komplikovane ze imho neni v lidskych silach vsechno vychytat.
Mala ukazka z historie https://www.youtube.com/watch?v=DLSUAVPKeYk
Nejenže není šance to "vychytat". Je dávno matematický dokázáno, že ani dnešní CPU už asi 15 let není možné kompletně otestovat a ověřit determinismus jejich chování před koncem vesmíru.
Souhlasím, jen bych poukázal, že "Kde jsou ty doby ..." byly nejspíš hodně dávno. Sám pamatuju různé "nedokumentované" (a používané) instrukce u Z80 a nejspíš to ani nebyl první případ :)
Jenže problém je v tom, že nejde o "bug", ale o "zranitelnost" a to bohužel v čase návrhu nejde úplně/dokonale ošetřit.
"Jakými všemi nelegálními způsoby jde ten HW použít aby udělal něco nebezpečného?"
Z hlediska teorie je (často) nalezení zranitelnosti posun ve state-of-the-art.
Spekulativní vykonávání se používá už dekády, o zneužitelnosti (Meltdown/Spectre) se ví od r. 2018. Odolnost některých CPU proti Meltdown byla spíš věc náhody, ne geniality/neschopnosti těch kterých návrhářů...s tím prostě nemohli počítat.
To je ale blbost... airbag byl taky kdysi "příšerně " drahej na to, aby se uplatnil jako standard v automobilovém průmyslu...
Prostě když už to tvoříš, měj taky nějakou odpovědnost a né, že v tom vykoupeš někoho jiného. Kdyby tobě někdo předhodil před deadlinem opravit chybu, ke které za prvé nemáš veškerá oprávnění zasahovat, nemáš informace kam až ta chyba vlastně zasahuje a až kam můžeš zasáhnout, ale odpovědnost máš ty jak to celé dopadne...
Automechanik také ručí, že všechna kola na autě jsou dotažená, ale že to sjela z linky s povolenýma nikdo neřeší (příklad).
Ve Škodovce mně přezouvali kola a potom po cca 7km se jedno zadní uvolnilo.
Víte co na těch autorizovaných servisech pracuje za učně? Radši nevědět.
Už vidím jak jim to prokazuji u soudu...
No... mne v pneuservisu pisou ze dotahnout po 50km. Porad lepsi nez pretahnout. Ucne dneska jeste uci razovym utahovakem bez vymezeni momentu. Pokud to dotahoval necim s kontrolou momentu tak si tydyt asi nezkontroval moment.
Nemaji ve skodovce nahodou centralne spravovane momentaky? Nebo je to jen montaz novych schadewagen?
Pak aby to clovek povolil musi to urvat i s tim strzenym zavitem. Idealne v momente kdy musi nandat rezervu.
A pak tu mame jeste ty debilni experty co tam namrdlaji pastu a pak to clovek nepovoli uz vubec.
Je to tragicky ale znamy dela prijimacky v schade. A u identifikace beznych nastroju se decka nechytaji. Duvodem jsou chybejici pracovky. Tak co chcete. Je to chyba nasi generace ze jsme neresili system a zlikvidovali ucnovske skolstvi vc zakladni pripravy na ZS.
Ja měl za to, že na ZŠ je dnes předmět Pracovní Činnosti, který zahrnuje také blok "dílenské práce". Takže by absolventi ZŠ měli mít nějakou zkušenost s prací v dílně, a rozeznat kladivo od hřebíku.
Navíc mi připadá, že když není člověk úplně neschopný, tak se spoustu věcí může naučit. Jasně, asi bych nezvládl operaci mozku. Ale naučit se výměnu kartuše ve vodovodní baterii, instalaci bazénového čerpadla, položit pár metrů plovoucí podlahy, vyměnit dveře, slepit rozpadlou židli... To by snad měl zvládnout každý, bez ohledu na vzdělání. Vždyť existuje obrovská spousta materiálů, ze kterých se lze učit.
K všeobecnému přehledu rozpoznání nástrojů a základní práce s nimi asi patří, o tom žádná.
Ale přijímačky založené na zkoušení z toho co se mám teprve naučit smysl moc nedávají (nikde).
Jsou to vseobecne zname nastroje. Prakticky bezna vybava domacnosti na lehke opravy.
Nenajdete tam zadne jednoucelove specialni pripravky. Dokonce je tam nejaky prostror pro prijatelnou chybu. Asi ale nechcete resit rozdil mezi krizovym a plochym sroubovakem nebo co je to francouzak (prazaci tomu rikaji stavitelny klic) nebo suplera (prazaci tomu rikaji posuvne meridlo).
Asi ale nechcete resit rozdil mezi krizovym a plochym sroubovakem
Na druhou stranu, docela důležitou informaci, že "křížový šroubovák" může být buď PH nebo PZ a že je dobré to rozlišovat, jsem se nedozvěděl ani v hodinách technických prací za socialismu (jako pražáci jsme tomu říkali dílny).
My jsme se rozdíl mezi Phillips a PoziDriv nedozvěděli ani na tehdy elitní elektroprůmyslovce.
Ale to je vlastně jedno. Osobně si myslím, že je lepší dostat člověka mimo obor a sám si jej vychovat. Dostal jsem borce, který rozvážel pizzu a do roka byl jedním z nejlepších. Pár let zpět jsem narazil na dalšího, který z pozice barmana za pár let může klidně přednášet na open altu (bez legrace, třeba o další verzi pg_barman).
Představa některých, že ze školy přijde dokonale vycvičený uchazeč vlastně nefungovala nikdy. Každý obor si sám musí vychovat svou další generaci. A za mě je fakt mnohem lepší dostat člověka, který z daného oboru nic neumí, než člověka, který 20 let dělá stále tytéž chyby a odmítá se to naučit správně. To druhé je totiž mnohem náročnější a nebezpečnější v provozu.
Moje malé dcerky se v základu naučily používat šroubovák někdy okolo třetího roku. Ve čtyřech letech byly schopné správně rozeznat křížový a plochý šroub, a použít správný šroubovák. Prostě je baví se dívat, jak táta třeba sestavuje nábytek, opravuje hračky apod., a chtějí se do toho zapojit. Kladivo a palici znají ze zatloukání kolíků u skákacího hradu, s lepidly lepí papíry/listy/dřevo/textil. O vrtačce vědí co dělá, že s ní smí jen táta, a že k ní nikdy nesmí přijít blízko vlasy, protože by mohly končit skalpované. Vědí že existuje elektřina "malá a velká", jak fungují zásuvky a prodlužováky, jak funguje zahradní hadice a stříkají pistole... Takhle je to snad normální, děti se učí co vidí. Myslím ale, že s Kirchhoffovy zákony ještě počkám :)
Uciliste skodovky vybira budouci ucne tak, ze jim chodi ukazovat kladivo a ptaji se jich co to je a k cemu to je. 80% z nich to nevi, takze se nediv.
Tenhle priklad jsem neprehnal ani o jedinou pid, kdokoli si to muze overit, jde o skodovacke uciliste v MB. Kolegovo synovec tam byl loni na pohovoru (prijimacky se na ucnaky nedelaj). Jedine vyberove kriterium bylo prave to, jestli poznaji vercajk a tusi k cemu je. A nebylo to jen kladivo, nosili jim ukazat sroubovak, francouzak, ... 80% znich (vcetne toho synovce) nebyli pripusteni, protoze netusili co ze jim to ukazujou za divny veci.
Asi je to z vasi strany brane trochu ad absurdum, ale ty same zpravy mam ja. Netusil jsem ze je to tak spatne. Za mych let pokud kluky zajimaly auta nebo motory tak aspon menili tatovy gumy nebo dali dohromady mobilni "radiorusicku" (pionyr:-)). Nebo na necem mechanickem pracovali. Rada z nich sla treba po z ucne na vyssi studium nebo na strojarnu.
Tohle spis vypada na vzdelavaci failover. Na stredni nemas tak kam pujdes? Zednik? Kuchar? V gastru je malo penez a venku v zime delat nechces. Tak auta. Vsichni kluci maj radi auta a musis i ty! Prej je malo lidi venco a vedle je schadefabrik oder koncernwagen. Od stolu a od piva takto otec s pulkou mozku vyresi zkazu synovy kariery.
Decka nemaji ani sanci osahat si remesla a co obnasi. Nejake hloupe dny otevrenych dveri tento problem nevyresi.
Zel dneska uz nemaji rodice ani decka pomalu na ridicak. Syn za nej dal temer 1000 ecek na B. Moc tomu nepomahalo ani to ze za mne si museli ucni platit ridicak C a svarecske zkousky ze sveho. Uz pro mne jako uzivatelebyl tenkrat ridicak v rozmezi 3-7kkc(praha) hodne draha sranda na kterou jsem musel sporit rok ci dva v chudem regionu.
Dnes uz se situace diky
Budte rad ze pri tych nm co to teraz vyrabaju je to stale deterministicky stroj. Mate predstavu ako je to konstrukce, vyrobne a SW komplikovane? Ukazte mi jeden podobne komplikovany vyrobok ktory ma menej chyb. Vsade nedavaju pozor?
Digitalni obvod bude vzdy deterministicky stroj. Protoze je digitalni.
A celkem dobre se to simuluje - nicmene problem je, ze to neni poradne otestovany. Je to jako mit zamek na dverich - funguje na klic, za dvere nejde zatahnout, zatlacit, vsechno supr. A pak nekoho napadne ty dvere zvednout a vyvesit.. je to chyba uzivatele, nebo vyrobce? Vypada to spis jako chyba specifikace - ktera pocitala jen se silou v jedne ose, byt zijeme v trirozmernem svete.
U slozitych procesoru je cas na testovani nasobne kratsi - v davne dobe byl inovacni cyklus dlouhy (rekneme 2 az 3 roky), v dnesni dobe to mate 6 az 12 mesicu. A za tu dobu se musi stihnout protestovani omnoho slozitejsiho reseni, nez kdysi. Bohozel nekteri manazeri maji pocit, ze se nic nemuze stat - veci se porad jeste testuji i pote, co byl vyrobek poslan do seriove vyroby - a pak vznikaji ty wtf efekty a prekvapeni, kdyz tomu tak neni. Nuz co - proda se zmetek a za pul roku se nahradi jinym... zmetkem.
Kdo potrebuje tak kratke cykly? My jako uzivatele rozhodne vubec ne - klidne bych si par let pockal, na neco co bude jednak kvalitni, a jednak se znatelnym narustem vykonu.
Pozn :
No ale az od urcite urovne abstrakce. Na nejnizsi urovni se vyuziva kvantovych jevu v transistorech a ty jsou vsechno jen ne deterministicke. Rovnez se masivne pouzivaji ruzne samoopravne kody v pametech a na sbernici. Dale maji procesory ruzne cache a ty taky podle me nejsou uplne deterministicke. Takze na aplikacni urovni ano, pocitac se chova deterministicky, ale jinak ne.
No na aplikační úrovni zase nastupují vlákna a další podobné radosti. Vždyť třeba latencí disku se krmí náhodný generátor.
Jestli je tenhle chaos deterministický nebo ne je spíš otázka pro filosofa. Vývojáři je tenhle druh determinismu houby platný.
> Na nejnizsi urovni se vyuziva kvantovych jevu v transistorech a ty jsou vsechno jen ne deterministicke.
Co nedeterministickeho v chovani transistoru mate konkretne na mysli?
Stačí, když vám vznikne rekombinační centrum pod kontaktem, kde je zrovna ten tranzistor nakontaktován na metal, a máte hned veselo...
Proto se jich tam dádvá víc.
Jo, to jsem napsal blbost. Transistor se chová deterministický. Ale paměti se mohou degradovat, radiace může přepnout nějaký bit, transistor může shořet...
Vsechno! Tranzistor se chova deterministicky pouze po zprůměrování. Pro uplny zacatek i pri velkych proudech takovy sum je zcela nedeterministicky.
Ale jakmile zacnou hrat roli jednotlive nosice naboje, tak jste ciste v pravdepodobnostni oblasti.
Třeba SRAM se dnes už dělá tak, že se počítá jako nespolehlivá a je nad ní rovnou ECC. Bez toho ty MB cache c CPU udělat nelze, sram buňky jsou menší, než umožňuje DRC v PDK procesu :D. A abi není digitální, netočí se od VDD do GND, ale kvuli spotřebě a rychlosti jen o nejakých 50mV.
A pak z takové jasné věci, jako je SRAM buňka, máte rázem nedeterministickou věc :D.
Ono se na téma, jestli je něco digitální nebo analogové, dá sáhodlouze polemizovat a z určitého úhlu pohledu bude vždycky pravda jedno nebo druhé. Např. z pohledu člověka je interakce s počítačem do značné míry analogová (protože zrak, sluch...), např. na monitoru mám obraz, který vnímám analogově, z druhé strany jsou na něm "digitální" informace např. ve formě textu. Z vnitřního pohledu HW a SW je to soubor pixelů na určitých pozicích, nesoucí trojici přesně definovaných hodnot, které definují barvu. To celé běhá po "drátech" digitálně, stejně jako se to digitálně programuje. Signály ovšem ve skutečnosti až tak digitální nejsou (žádné pěkné obdélníčky), takže vstupují při přenosech dat do hry různá kódování zajišťující synchronizaci, samoopravné či detekční kódy (což je zase digitální pohled na věc). No a když půjdeme ještě níž, dostaneme se někam do oblasti kvantové fyziky, kde je to možná taky víc digitál než analog (o čemž si nedovoluji nijak víc polemizovat, neb o tom dohromady nic nevím).
Bohužel nikoliv, digitální obvod není deterministický stroj. Je to mimo jiné důsledkem toho, že digitální obvody nemáme. Všechno to jsou analogové obvody. Komplikuje se to dál díky parazitním kapacitám, zvýšené spotřebě při změně stavu. Sekvenční obvody navíc vytváří přechodové jevy, díky kterým se vám objevují stavy, které nemohou existovat. Ale existují, protože ačkoliv k obvodu třebas vždy putují dvě stejné hodnoty, tak jedna má cestu delší a tak změna z 0 na 1 nebo naopak dorazí o nanosekundu později, což stačí kombinačnímu obvodu na to, aby si myslel, že má na každém vstupu hodnotu jinou. Takže třebas obvod (A xor (not(not(A))) je docela hezký generátor krátkých pulzů.
Prostě je zázrak, že cokoliv složitějšího vůbec funguje. Je to důsledek dodržování celé řady návrhových zásad, aplikace "nesmyslných" pravidel, nekonečného zástupu různých kódování, samoopravných kódů a hlavně neustálého testování a simulací. Ty zásady a pravidla jsou výsledkem desítek let zkušeností z průšvihů a neustále se na nich pracuje, vylepšují a přibývají nové.
Návrh obvodů je magie. A pokud si vezmete nějaký kus HW a začnete to zkoumat s osciloskopem, tak zjistíte, že to všechno jsou analogové signály. A s rostoucí frekvencí vypadají méně a méně hezky. Digitálního tam není nic. Když se vám to "špatně" potká, tak tam determinismus selhává.
Na tehle vecech jde krasne videt kdy se k vecem vyjadruhe teoretik-matematik / teoretik-inzenyr a navrhne treba reseni ktery funguje sice teoreticky funguje spolehlive, ale pouze nekolik km pod zemi bez fyzicke pritomnosti cloveka a za stale teploty.
Proto tu mame i fyziky kteri pocitaji s tim ze nam kolem lita spousta pouhym okem nepostrehnutelnych "veci" ktere ovlivnuji vysledek.
Nekdy povazuji za zazrak ze technologie bez ECC pameti jsou tak spolehlive. A pritom jsou to docela dobre detektory :-)
Jojo, to je ten klasickej vtip, jak matfyzák řeší problém, jak slepice v hale přimět, aby se všechny nazobaly stejně a přitom se neuklovaly k smrti.
Po tejdnu přijde se štosem papírů a povídá: "už jsem na to přišel. Bude to spolehlivě fungovat, ale jen na dokonale sférické slepice přesně jednotné velikosti, a to ve vakuu a nulové gravitaci".
2. 11. 2024, 06:38 editováno autorem komentáře
Stojim si za tim, ze digitalni obvod je deterministicky. Jo, sice z pohledu HDL vyvojare, ale kdyz napisu HW "kod", tak bude fungovat vzdy stejne - vzdy stejne dobre, nebo stejne spatne, casto zdanlive dobre - az na okrajove podminky ktere jsem treba dostatecne neprotestoval. Tohle je zaklad - jak pro domaci bastleni, tak pro vyvoj miliardovych cipu. Od nizsi vrstvy ocekavate determinismus.
Jiste, ma to sve omezeni, a to je, ze preklad (i pro FPGA) musi vedet na jake frekvenci se dana vec ma provozovat - takze jedine kriterium je, aby to bylo provozovano v ramci tech specifikaci ktere urcim (a teploty/napeti ktere urci vyrobce obvodu).
Pokud je zde nejaky prostor pro nedeterminismus - tak leda SPATNE napsanym kodem (typicky pro spojeni mezi ruznymi casovymi domenami, kde se data nesmi ztracet ale ani opakovat). Ale to je znova problem autora, ze napsal kod spatne.
U realnych cipu do te obalky spolehlivosti vstupuje krome frekvence i to napeti a teplota. Pokud jste uvnitr provoznich limitu, tak to funguje deterministicky - vzdy stejne. Neni v ramci bezneho provozu mozne, aby se neco spatne potkalo.
Zadny zazrak to neni, v jakemkoliv meritku - porad se spolehame na to, ze tranzistory spinaji, logicke hradla a funkce funguji, a regitry si data pamatuji.
Co se tyce samoopravnych kodu (ECC,FEC) - tak to je pouze vylepseni konecne provozni spolehlivosti a ucinnosti a zejmena na ochranu pred vnejsimi vlivy (radiace, EM ruseni), na cipu mate leda moznost vytvorit nejake struktury navic a pak je behem testu vypnout (jadra) / prepnout (ram/flash radky-sloupe, ci v hbm propoje).
A veci ktere jsou navrzeny zamerne s nedeterminismem, jsou uz cista RNG, PRNG je znova ciste deterministicky a musi byt :-) Nekde na pokraji spolehlivosti muze byt cteni z disku (PRML) nebo nand bunek, ktere se musi precist vicekrat, kdyz na prvni dobrou je nemozne aplikovat opravny kody. Ale to uz nejsou procesory, ale media.
Digitalni obvod je deterministicky do te miry jakou mate jistotu ze 1 je 1 a ne neco mezi, stihl jste takt (nedoslo k deviaci treba teplotou) atd. Celkem dobre to jsem schopen garantovat u obvodu s par tranzistory. A to jeste v omezenem case protoze soucastky starnou. Ale s miliony?
Prostor pro urcity nedeterminismus mate u hromadne vyroby vzdy v nejake mire. Netestujete do podrobna kazdy tranzistor pri vyrobe. Jen celkove testy. A pro vami definovanou miru determinismu pouzivate i nejake standartni podminky od kterych se ty provozni mohou lisit.
Litografie miva standartne nejakou nepresnost a chybovost. I vlivem zastaravani komponent - napr. slepnuti skla u optiky nebo mechanicke problemy.
Pri testech se pak sleduje jen chybovost za standartnich podminek. Ta se dale sleduje i za provozu. Dnes nenajdete vykonne CPU bez pocitadel chyb ci samoopravnych mechanismu.
Vzdy se rozhodujete mezi co nejlepsi mirou determinismu daneho reseni v pomeru k ekonomicke navratnosti vyroby. Jinak to bude pri mobilu v kapse a jinak pri komponentech pro aerospace.
Akorat pak vam ten mobil projede rentgenem na letisti a determinismus je v haji
:-)
Jseš si tím jistojistý? A funkcí instrukce RDSEED potažmo digitálního zdroje entropie v tom digitálním obvodu, který generuje seed a je podle dokumentace non-deterministic random bit generator (NRBG) vysvětlíš jak? The entropy source for the RDSEED instruction runs asynchronously on a self-timed circuit and uses thermal noise within the silicon to output a random stream of bits at the rate of 3 GHz.
Školy už mám hodně dávno za sebou, ale že stačí jeden zdroj ND aby ti zamořil celý zbytek...
A ještě bych upozornil, že i deterministický obvod, který závisí na externích pseudo nebo nd faktorech (třeba zda dram s vlastním časováním a druftem oproti časování cpu má zrovna refresh, interrupt requesty, které mu tam střílí zařízení,... ), svůj determinism us ztrácí.
Celou dobu se bavime o funkcionalnim determinismu - ze procesor bude pocitat - a vykonavat instrukce spravne.
Otazka toho, *KDY* se vysledku dopocita, nebo s jakou latenci se jak ktere preruseni obslouzi, je v tomto ohledu irelevantni - u bezneho pocitace v domacnosti se nejedna o RT ridici system, kde se posuzuji navic i tyhle parametry.
Stejne tak asynchronicita pameti je beznou soucasti procesoru s promenlivou frekvenci a kvuli tomu neni procesor funkcne o nic mene deterministicky. Vzdy to precte stejna data, ktere tam zapsal.
Mozna jsme meli zacit s lepsim vyrazem - co treba funkcni korektnost? na to, co myslim.
Kdyby to takhle bylo, že na časování nezáleží, tak by byl svět krásně jednoduchý a neexistovaly by race condition chyby. Ale existují, takže na časování záleží. A IRQ změní v nepredikovatelném čase stav systému, který může ovlivnit běh výpočtu, který byl deterministický - determinismus jde do kopru, o tom není snad sporu.
Race condition ale neni vubec problem casovani - je to problem zamykani resp. nezamykani a nespravneho zamykani pri paralelnim pristupu ke stejne polozce a toho, ze operace nejsou atomicke. Pokud tam mate neosetrenou sdilenou promennou, tak vas zadne specificke casovani nezachrani, protoze se jedna o v zakladu vadny kod.
To same ovlivnenim preruseni - pokud v preruseni neulozite vsechny pouzivane registry na zasobnik a pak je neobnovite - tak to neni poruseni determinismu na hlavni funkci, ale velice amaterska chyba pseudo-programatora, ktera ovlivni spatny vysledek vypoctu prerusovane aplikace.
A pokud se bavime o funkci, ktera by snad vracela pocet cyklu behem 1s behu (takove to klasicke "bogomips" meritko). Tak pokud behem te funkce mate povolene preruseni, nebo nedejboze task switching - tak asi jako nedostanete to spravne cislo - opet to neni poruseni determinismu. A stejne mu do toho muze hodit vidle hypervisor nebo i SMM, takze nelze timto zpusobem ziskat stejne cislo - takze chyba programatora, protoze si neni vedom bigger picture o dane platforme.
Takže už velmi citelně omezujete svoje tvrzení - digitální obvod se nově chová deterministicky když vykonává dobře napsaný a přeložený kód a nikoliv obecně. Ale bohužel ani to není pravda :-)
Digitalni obvod (CPU, potazmo cely PC HW) se chova porad deterministicky.
To, ze na nem provozujete spatne napsanou aplikaci (OS/SW/APP/BIOS) - za to fakt muze ten obvod???
To jako cekate, ze ten HW je tak dobrej, ze za vas bude opravovat chyby, ktere jste tam napachal?
Spíše šlo o to, že on ten HW ani se správně napsanou aplikací se nebude chovat deterministicky, protože náhodě překlopený bit kvůli čásitici/rozpadu/etc. Ostatně oni s tím právě ty obvody počítají a snaží se o zachování dojmu determinismu. Ne proto, že by to bylo přirozené a nějak dané, ale protože je to pohodlné uživatelům.
Dal jsem už několik příkladů, kdy se pc deterministicky chovat nebude (RDRAND/RDSEED, race condition způsobený časováním paměti) a můžu dát spoustu dalších. Přitom postačí pouze jediný pro důkaz, že pc není deterministický stroj.
Vy jste nic nedokazal ale.
RDSEED prave ze deterministicky vrati nejake nahodne data. Kdyby nevracel nahodna data, ale dokola same nuly, tak to je teprve ono nedeterministicke chovani (i sekvence nul by ale byla platna, pokud skrze specifikacni parametr "maximalni pocet stejnych symbolu" se mu povoli takovy pocet stejnych hodnot).
Race condition je aplikacni chyba zpusobena spatnym programovanim. Nesouvisi vubec s casovanim pameti, ale s pristupem dvou vypocetnich jader na stejnou pametovou lokaci nekoordinovanym zpusobem. Pokazde co zopakujete stejny access pattern tech dvou vlaken, dostanete stejne spatny vysledek.
Funkcni PC je deterministicky stroj. Pokud by byl jakkoliv nedeterministicky - napr. po vzoru AI / LLM, tak se to jako pocitac vubec neda prece pouzivat.
Jestli hledate nedeterminismus v postrannich jevech, tak to uz se netyka procesoru, potazmo PC jako stroje, ale hodnotite nejaky konkretni system / reseni / nasazeni.
Aha, tak už asi vím, v čem je problém. Ty máš v hlavě chybou definici determinismu. Tady je správná: In mathematics, computer science and physics, a deterministic system is a system in which no randomness is involved in the development of future states of the system.[1] A deterministic model will thus always produce the same output from a given starting condition or initial state.
23. 10. 2024, 08:59 editováno autorem komentáře
> A deterministic model will thus always produce the same output from a given starting condition or initial state.
Otázkou je, co přesně je ten stav? A jestli jsme vůbec schopni mít stejné startovací podmínky a iniciální stav?
Tohle mi přijde jednodušší definovat u nějakého teoretického výpočetního modelu (jako třeba Turingův stroj), ale jak to vlastně funguje v reálném HW?
I bezna domacnost ma dnes hard realtime systemy. V pripade selhani treba nastane mensi raketovy start IGBT tranzistoru :-P s vylitnutim jisticu.
Je dávno dokázáno, že dnešní CPU už jsou tak složitá, že jejich chování ve všech možných stavech není možné otestovat v čase, po který ještě bude existovat vesmír.
Samozrejme ze to jde delat i bez chyb - ale ne za podminek ktere se stali modernim standartem v oboru - jako je orezany rozpocet a lidske zdroje, nezvladnuta analyza ani architektura, takze se cile meni za pochodu, jako nesmyslny deadline, inkluze smejd kodu z knihoven, inkluze smejd lidi z teamu, beh na nestabilni platforme (hw i sw) a dalsi neduhy dnesniho konzumu.
Az tohle vsechno vyresite a nabidnete zdrave prostredi, pujdu k vam delat bezchybny sw i ja :D
1) delate perfektni sw bez chyb? Napiste, rad vas zamestnam.
2) Az tohle vsechno vyresite a nabidnete zdrave prostredi, pujdu k vam delat bezchybny sw i ja :D
vy dva jste mi pripomeli tu pisnicku, jak ona mela usit kosili bez jehel a niti a on mel zase udelat drevenou postylku, ale do dreva netiti.
No, nejde to dělat bez chyb. Nejde. Jasně, že jde vždycky vyhradit víc času a zdrojů na testování, ale tak složitý systém nelze otestovat úplně.
Při tom všem je ale průměrný HW mnohem lépe otestovaný než průměrný SW. SW se prostě snadněji patchuje - navíc často bez vlivu na výkon, u HW to jde hůř (a někdy vůbec ne).
Pokud ale jde o postranní kanály a spekulativní poçítání, to je úplné jiný problém. To prostě v době návrhu nemohli vědět (řeknéme dnes-2 roky), i když postupovali podle state-of-the-art. Takovéhle útoky jsou často posun ve state-of-the-art a změna paradigmatu...
Jestli jsem ale správně pochopil Linuse, tomu jde o něco jiného: chce vědět, zda zranitelsnost je reálná a má cenu se jí věnovat v jádře nebo ne. Tedy verifikovat zneužitelnost (resp. složitost zneužitelnosti).
Nejde. Jednak pravdepodobnostne, s rastúcou komplexitou rastie aj pravdepodobnosť chýb. A komplexita je na tomto poli už dávno brutálna.
Navyše mnohé tie scenáre s využitím čoraz obskúrnejších postranných kanálov, štatistiky a časovania, neboli v dobe návrhu tých architektúr ani len principiálne známe, takže sa im ťažko mohli snažiť vyhnúť.
Aha. A kdyby toho všeho nebylo, v softwaru by nebyly vůbec žádné chyby... Pardon, ale tenhle obor mě živí patnáct let. A na pohádky moc nejsem. I když pravda, sci-fi si občas přečtu.
Tak pokud byste delal SW bez chyb, asi by vas to nezivilo / neuzivilo ,)
Bohuzel to je dnesni realita take - drzet stav SW na ostri noze, na kriticke hranici kterou ovce dokazou strpet, pri platbe mesicniho vypalneho - o nicem jinem to neni, nez o udrzeni chybovosti, jako nutne podmince pro vydelecnost dnesnich SW firem.
Pardon, ale to je na úrovni spiklenecké teorie libovolného druhu. Zbývá v podstatě už jen napsat, že za to mohou ilumináti, CIA a Putin.
Mno vis ... ono se da, dokonce exaktne matematicky dokazat, ze SW nema chybu. Potiz je trochu v tom, ze to je vypocetne narocnejsi, nez desifrovat nejslozitejsi sifry.
HW neni defakto nic jineho nez "dratova" implementace SW.
A prave proto se jako mnohem pristupnejsi jevi s chybou pocitat, predpokladat ji a byt na ni pripraven. A to lze i v situaci, kdy tu chybu nemuzes nejak primo odstranit. Typicky se takhle navrhujou treba ruzny vesmirny sondy.
Čistě ze zvědavosti, jak takový důkaz vypadá? (A co to má společného s halting problémem, který dokázat naopak dokazatelně nejde?)
Nebo jde jen o to, že reálný systém je konečný, zatímco celý důkaz halting problému vyžaduje "nějaké" nekonečno, a pak se onen důkaz provede vyčerpáním stavového prostoru, takže BF?
Uci se to treba na vejsce (ano - rad popichnu ty, co o VS tvrdi ze je k nicemu ,)
v kratkosti:
https://cs.wikipedia.org/wiki/Form%C3%A1ln%C3%AD_verifikace
lepe pak zde:
https://en.wikipedia.org/wiki/Formal_verification
Veci, ktere nelze opakovat, stoji miliardy, ci zivoty - musi projit timto koleckem. Je to sice narocne, ale ne nemozne. Ale vyzaduje to prave ty znalosti ze - co to ma umet - a s cim to pracuje.
Takze typicky nejake dnesni "AI" based veci jsou nezverifikovatelne, z toho duvodu, ze nemate ty predpoklady. Ale zas u AI nejde o 100%, je to z podstaty chybujici system a pravdepodobnostni orgie.
Samozrejme ze ano! Skuste pripravovat pokus v laboratoriu napriklad 1 rok za 300 tis. Euro ktory bude trvat vo vysledku len niekolko sekund a potom povedat ze nie su data lebo bola chyba v SW/HW... Toto je moj denny chlebicek, nulova tolerania k chybam. Kludne mozem odlozit meranie aj o niekolko mesiacov ak nemam istotu ale nemozem vo vysledku zlyhat. Viem ze nie som komercia ale cez tuto optiku sa pozeram na svet a je mi smutno ako rychlost predbehla snahu o dokonalost.
22. 10. 2024, 08:31 editováno autorem komentáře
Lenže tie CPU nezlyhávajú takýmto spôsobom. Vo vzťahu k pôvodnému zadaniu dokonca nezlyhávajú vôbec, korektnosť z hľadiska ekvivalencie výpočtu s nejakým triviálnym deterministickým automatom (sekvenčným obvodom) bez pipeline dizajnu, predikcií a ďalších optimalizácií nie je dotknutá, rovnako security na úrovni izolácie, ako bola chápaná v čase vzniku.
Tzn. svoju inžiniersku robotu si odviedli minimálne rovnako dobre, ako tvrdíš, že to rutinne robíš ty.
22. 10. 2024, 09:06 editováno autorem komentáře
Bohuzel ty 13/14-th gen Intely ale selhavali uz presne takovym zpusobem - ze byla porusena integrita vypoctu - viz ty problemy v nejake 3D enginu (Unity) a nasledne pady her. Autori nedelali nic specialniho, pouze aplikacne programovali.
Ty selhávají kvůli degradaci materiálu - pokud degraduješ materiál a změní se jeho vlastnosti, tak prostě ten CPU už dělá asi něco jiného. Intel to podle mě přehnal s maximální teplotou, nic víc bych tam nehledal.
Tímto nechci říct, že to není problém, ale není to chyba designu toho obvodu.
Porad je to chyba designu - naspecifikovat tabulky pro rizeni napeti a frekvence blbe, pokud to ten obvod umi a jediny kdo tam ty hodnoty zadava je vyrobce.
Jo, jeste to muze byt chyba testovani (a tak ty tabulky jsou nespravne individualizovany), nebo primarne vyrobni chyba (ze material je jiny nez si mysleli a meli namereno z charakterizace). Ale tohle Intel nikdy verejne neprizna, takze vysledek pro nas je predesly bod, tj je to chyba navrhu.
To není tabulka, al celý firmvare, který to řídí.... přímo si to tahá za prorprietární sběrnici na VRM...
On je to patrně velmi kompleční problém, zahrnující jak to vlastní řízení, tak kupu provozních parametrů, rozptylů parametrů výroby v čase a místě, po snad údajně nějaký problém v kvalitě/čistotě nějakého materiálu pro výrobu nějaké šarže.
Od stolu to vypadá jednoduše, ale komplexita toho problému je prostě taková, že to moc řešit nejde a chyby se prostě stávat budou. Zase to je vlastně extrémě levné, vůči té složitosti.
"Porad je to chyba designu "
Chyba je (z pohledu intelu) tak maximalne to, ze to zaclo umirat jeste v zaruce, to je ten zdaleka nejvetsi fail.
To co oni udelali bylo jen totez, co delali a jeste obcas delaji overclockeri po celem svete. Jenze ti pocitaji s tim, ze kdyz tomu CPu zvednou napeti, tak ze je treba taky razantne zlepsit chlazeni, a pocitaji i s tim, ze presto muze chcipnout. Intel zvednul napeti, aby CPU udrzel vyssi frekvence, ale chladic k tomu byl a je porad stejny box smejd s nalepenou zvejkackou.
Kdyz chces delat nejaky vetsi OC, tak kazdy kdo o tom neco vi, tak taky vi, ze je treba z CPU sundat ten plech, protoze pod nim je dalsi zvejkacka zhorsujici chlazeni.
Tohle vsechno v Intelu odingnorovali, protoze jim to prece tech 10 minut v testu fungovalo.
Podotykam, ze sem provozoval pretoceny CPU i roky, a nikdy mi zadnej neumrel. Pokud sem to pri nejakym uvodnim setupu prehnal, maximalne vytuh. Ale vzdycky sem na nem mel chladic nasobne vetsi a tezsi nez to co se s tim CPU bezne dodavalo.
Ta rychlost před dokonalostí srazila ceny výpočetní techniky natolik, že se stala konzumní. Vaším přístupem dnes máme stále sálové počítače a děti ve škole používají logaritmické pravítko.
Přesně tak. Nikomu nic nebrání provozovat dnes cokoli na přesně zdokumentovaném 80386, implementovat program dvakrát dvěma různými týmy, každý výsledek porovnávat komparátorem a pokud nebudou výsledky sedět, všechno zastavit. Akorát to uplatníte možná někde při řízení jaderné elektrárny, ale jinde moc ne. Protože jinde to tak nikdo nechce a nezaplatí.
V jaderné elektrárně, jo?
On ten počítač padá? Zkuste zvednout napětí :D
https://www.youtube.com/watch?v=e90Q328jVmA&t=4616s
Když jsem před lety viděl první přednášku tohoto typu, tak jsem si říkal, že by tyhle lidi vůbec neměli pouštět před kameru. Je to jistě jen jejich slang, ale v podstatě celá přednáška je takové vyprávění, jak se to jako asi možná dělá, odhaduje, zkouší, (ne)domlouvá se s dodavatelem (který je takový nějaký), vlastně i trochu bastlí a tak. Nevím, jestli to vymyslel někdo z PR týmu speciálně pro ČVUT, ale tohle mě teda spolehlivě odrazuje a ještě uvidím pár přednášek tohoto stylu, tak se ze mě stane odpůrce jádra.
Podle mě každý obor, který chce mít nějakou důvěru a nějaký kredit, nutně vyžaduje, aby jeho zástupci jednali profesionálně. To znamená, že v jaderce opravdu nevytáhnete trafopájku a opravdu v žádném případě nezačnete vyměňovat součástky jak vás napadne. A když se případně rozlomí nějaký konektor, tak ne, nevydá se příkaz pro zaměstnance "vytahujte to opatrně", ale prostě se ty zkřehlé konektory všechny do jednoho vymění. Fakt není dobré PR tohle prezentovat veřejně.
Zkuste to celé, to bylo doporučení dodavatele toho počítače, oni naopak to řešení chtěli.
Nicméně skutečnost je taková, že se selháním zařízení prostě počítá, a řeší se na systémové úrovni nějakou formou redundance. Jinak to ani nejde, 100% spolehlivé řešní není.
Já tu teď aktuálně mám součástky v ASIL-D, míra paranoi je tam fakt veliká (každý drát, cesta, registe, bit paměti v IC lze otestovat a dělá se to stále) a i tak celý desigl prostě se selháním počítá, a když se to stane, tak z detekcí a nějakou řízenou akcí.... 100% spolehlivé věci nejsou, jde jen o to, dostatečně snížit míru rizika, že selhání někoho zabije.
Zkuste to celé
Já to viděl celé v den vydání. Tenhle kanál sleduju dlouhodobě.
to bylo doporučení dodavatele toho počítače
V tom případě je to v pořádku a neměli do toho hrabat a ještě navíc to komentovat tímto stylem.
Naopak, je to dukaz sobestacnosti - a jsem rad ze to umi spravovat (u toho jsem vazne uvazoval, ze jim napisu, je to temer muj salek caje).
Jsou treba pro porovnani zahranicni videa - napr. z velkych radiovych vysilacu, kde maji inhouse soustruh. Si rikate taky k cemu ma stanice soustruh, kdyz to s radiem nesouvisi, a maji si nejake veci nakoupit od dodavatele. Ale to casto ani nejde - a radeji zaplatite lokalni vybaveni, obsluhu, odborniky - nez to budete outsourcovat k "profikum".
A zcela validni aspekt proc to nejde - dodavatel se vas zepta - kolik toho chcete?
Reknete 1 kus. Tak to se na vas KAZDY vite co :D Takze znova nezbyva nic jineho, nez inhouse servis, vyvoj, ladeni. Majitel/provozovatel o sve technice vi toho stejne nejvice, a zadny externi subjekt nema sanci neco odladit v souvislostech mimo provoz, nebo jen z teoretickeho pohledu.
Zrovna v tomto dává smysl to centralizovat.
prostě postavivit v jedné generaci na chlup stejné jaderky v celé EU, a řešit toto pro všechny hromadně (skladování, servis, ale třeba i kapacity výroby komponent).
Ne, místo toho nejsou dvě stejné, každý kdo má do (;) díru vymyslí změny na každý jeden projekt i v rámci jednoho provozovatele, a vohnouti v EU raději vymýšlí rovnáky na banány a buzeraci řidičů. Samozřejmě, pak je vše problém a je to nekonečně drahé.
Naopak, je to dukaz sobestacnosti
O to se vůbec nepřu. Pokud na to mají kvalifikaci a všechny zkoušky a příslušný personál, tak je to zcela v pořádku. Proto mě tak zaráží, že to komentuje zrovna tímto stylem.
Jsou treba pro porovnani zahranicni videa - napr. z velkych radiovych vysilacu, kde maji inhouse soustruh.
Jo, tohle taky sleduju.
Ale to casto ani nejde
Což je v případě jaderky dost průser, že? Tady bych automaticky očekával zajištěný dodavatelský řetězec po celou dobu provozu. Na tom CVUT kanále je jiné video o řízení konfigurace, kde popisuje, jak se v jaderce hledá nové čerpadlo. Více bez komentáře. Doufám, že to byla jen ukázka pro čvut mateřskou školku nebo to snad vyšlo 1.4.
Tak to se na vas KAZDY vite co
Nevím, co? Těch vysílačů jsou jen v USA stovky. Tak proč jeden kus? Žádný jiný vysílač vůbec nikdy nebude potřebovat náhradní díly?
"Reknete 1 kus"
On ti dodavatel ten 1 kus doda ... ale za cenu 10 000ks. A ani to by jeste casto nebyl az takovej problem, jako spis to, ze se snim budes 5 let dohadovat, jak ze to co chces ma vlastne vypadat, protoze i kdyz mu dodas technickej vykres, dostanes neco uplne jinyho. Ono to sice bude mozna podobne vypadat, ale tolerance budou zcela mimo.
BTW: Dodavka pro zakaznika, den prvni. S prekvapenim se zjistilo, ze krabice, ktera byla na miste jiz 3 mesice, neprojde dvermi, pricemz pred temi 3mi mesici tam dvere nebyly, a nebyla tam ani zed, a dalo se to tudiz snadno namontovat.
Den druhy, prekvapeni bylo o to vetsi, ze krabice potrebuje napajeni, ale on se jaksi nedohod dodavatel krabice s dodavatelem rozvodu, a tudiz tam neni kusdrat.
Den treti ... krabice potrebuje eth, ale s takovou prkotinou v ramci stavby nepocital nikdo, a blbi ITci, kteri neco na to tema blabolili se prece odignorujou. Nu coz, tak se ty vykachlikovane a vymalovane zdi vysekaji ...
Jeste se nekdo divi ze si radsi clovek udela vsechno sam? I to cemu vubec nerozumi?
Pokud jste se koukal pozorne tak zjistite ze si nechavaji ty obvody pajet profesionalne externi firmou. Pokud si neco zkousi tak na HW ktery neni v produkci. Je nutne si uvedomit ze rada toho HW uz se nevyrabi.
Jake mate potom meritko pro profesionalitu?
Ekonomicky se vyplaci drzet to pri zivote misto noveho systemu a recertifikace.
Rad bych vas take informoval ze podobnou saskarna se musela resit i na tranzitnich plynovodech. Bohuzel my jsme byli dodavatel a sami jsme dany HW uz 25 let nevyrabeli.
22. 10. 2024, 16:30 editováno autorem komentáře
"Bohuzel my jsme byli dodavatel a sami jsme dany HW uz 25 let nevyrabeli."
Znam par dodavatelu, kteri drzi skladem dily starei 40 let, uplne nove, v krabicich, peclive zabalene. Tochu potiz je s tim, ze jakkoli se tohle da naprosto vpohode delat s ruznejma mechanickejma soucastma (a mozna bys takhle nekde ze skladu vytah uplne novou parni lokomotivu), tak s elektronikou je ta potiz, ze i kdyz to budes mit v suchu a teple, tak to degraduje proste casem, a az ty kondenzatory po 40+ letech zapnes, tak zjitis, ze jsou totalne v haji.
Ovsem typicky frikulin ani nepocita s tim ze se jeho vytvor bude pouzivat jeste za rok, natoz za 10.
Tady se mi libil krasny priklad blbe reseneho thermal designu. Perfektni analyza proudu vzduchuvelmi drahym pristrojem -> kusem papiru :-)
Tyhle dlouho bezici pristroje jsou pomerne dobrym testem navrhu proti vlastnim chybam vlivem starnuti soucastek. Napriklad takove ciste vyrazeni vadne komponenty nebo selftesty. U toho je porad co zlepsovat. Problem je v tom ze obcas ty veci neselzou vubec determisticky ale jen napul.
> Ta rychlost před dokonalostí srazila ceny výpočetní techniky natolik, že se stala konzumní.
Celková cena je právě IMO vyšší, akorát ji pak platí zákazníci tím, že pořád musí řešit různé problémy, když něco nefunguje.
Mnohokrát jsem pak zažil situace, jak malý důraz na kvalitu výrazně prodražil i vývoj a podporu.
Osobně mne štve především to, že obvykle se řeší teoretický problém, který by mohl vést k porušení bezpečnosti
, záplatou, která má podstatný dopad na výkon - zejména těch mizerně zabezpečených počítačů.
K čemu mi je zdlouhavé louskání například hesla k zašifrovanému disku, pokud je beztak napsané v konfiguráku startovacího sctiptu hned o partition vedle
?
Jasně, jsou případy, kdy to je hodně důležité! Ale devět z desíti počítačů žádné kritické věci neprovádí, a tímhle zabezpečováním jen přijdou o výkon.
IMHO je důležité posoudit, jestli ta chyba opravdu je tak závažná, aby ji stálo za to opravovat úplně všude.
Vpodstate 100% tehle bugu se tyce pouze a vyhradne provozu cmoudu = na stejnem HW ti bezi aplikace ruznych zakazniku, a ty vlastne nevis a nemuzes vedet co delaji.
Takze jestli neco je vazne tragedie, tak to, ze se "opravy" tehle neexistujicich bugu dostavaji na desktopy i bezne servery.
Protoze presne jak pises, proc bych jako mel tydny nebo mesice louskat nejaky klic z cache CPU, kdyz si ho muzu proste za ns precist z disku. IMO by vsechny tyhle opravy mely byt vyhradne na vyzadani spravcem/uzivatelem a bydefault by mely byt off.
Netyce se to totiz typicky ani firemnich clusteru, protoze pokud mi nekdo napadne stroj v domene a ziska nejaka relevantni prava, tak je uplne jedno, ze si cosi kdesi neprecte z CPU.
BTW: Na vsech scvych strojich mam v parametrech kernelu takovy ty veci jako ze neaplikovat tyhle chujoviny. Blby je, ze spousta jinych (widle, vmware ...) si je aplikujou stejne.
Neblázněte, Intel už je na tom tak dost špatně, ještě strašit opravou, nedej žalobou. Nemám je sice rád, ale nechci AMD jako jediného hráče na poli x86 CPU.
Na objem AMD zatiaľ nevyrába, oni sú dobrí skôr na tie cutting edge procesory. Tam má Intel miesto.
Väčšia hrozba je teraz ARM, stále ukusuje X86 procesorom z trhu. (Aj ten ARM ma štve, je to taký kitchensink RISC, kedysi to bolo pestrejšie)
K čemu je ten LAM dobrej?
Kernel to na něco využije? Nestačí flagy v PTE?
Jako nacpat si do adresy 6 flagů se může hodit, ale ty komplikace s portabilitou na jinou platformu za to nestojí.
Nejhorší je user space kód, který předpokládá, že virtuální adresa má nějaký konkrétní formát...
Tak na ARMu je v tech vyssich bitech nejaka signatura/podpis, ktery se overuje, je to takova vzdalena variace na NX.
Predstava je takova, ze mate tajnou hodnotu X, a nekde se vsechny JUMP instrukce na pevnou adresu prekoduji do podepsaneho formatu z DST na "hash(DST,X) & DST". Myslim ze LAM specifikuje kde se deli hash vs. DST.
CPU pak runtime (v hw) overuje, ze to, kam skacete je podepsany = validni. Protoze typicky nejaky vir nebo buffer overflow utok chtel/potreboval skocit na pro ne vhodnou adresu, ale nema jak spocitat hash a podepsat si ten DST pointer, takze nastane vyjimka a naborenej program bude ukoncen.
A v praxi to stejne nefunguje, minimalne na applu je to podepisovani v nektere verzi uz prelomeny :D
Co jsem popisoval se jmenuje PAC - pointer authentication code:
https://developer.apple.com/documentation/browserenginekit/improving-control-flow-integrity-with-pointer-authentication
Pokec o prolomeni prvnich implementaci a nasledcich:
https://www.youtube.com/watch?v=7zCBOFxATFs
Zjednodušeně - je to takový HW sanitizer, takže je "zadarmo".
Já jsem to pochopil teda tak, že třeba alokátor paměti může "tagovat" alokované regiony, takže třeba když mám tento region:
[AAAA|BBBB|CCCC|DDDD] - řekněme že jedno písmenko je třeba 64 bytů nebo nějaká jiná praktická granularita (může být i page-size, atd...).
Tak pointer co ukazuje na A má nějaký tag, třeba A, a pokud k němu připočtu 256 bytů, tak už bude ukazovat na B, jenže ten má jiný tag, takže při adresaci CPU pozná, že ten pointer je mimo (třeba to může být buffer overrun).
No a když uvolním A, tak alokátor dá novému regionu třeba tag E, a když s tagem A přistoupím k paměti, tak ty tagy opět nesedí, takže to by mohlo být "use-after-free".
Nevím ale do detailu jestli LAM se dá použít přesně na toto, ale ARM má něco takového, kde právě vrchních 8 bytů se dá použít právě jako tag (pointer tagging).
BTW takto podobně fungujou SW sanitizéry (ASAN), ale tam ty kontroly dělá SW a ne CPU.