> pro servery se pak sluší explicitně dodat, že touto cestou by bylo možné zapínat nové opravy v nových verzích jádra bez nutnosti restartu serveru.
Hmm, jak? Pokud jádro v sobě ten patch nemá, tak jak bude možné jej opatchovat?
Nic takového nepíše ani Phoronix ani autor patche. Mluví se tam o pouze “new settings” pro existující “mitigations”.
Systémy jsou čím dál složitější.
Takže nad nimi ztrácíme kontrolu.
Každý s různou rychlostí podle jeho schopností.
Takže se může stát že admin něco zapne.
A za chodu se mu tam něco změní pod rukama.
Domyslet a dohledat co vše se změní když za chodu změním parametry CPU je pro mě nereálné.
Ale jestli rozumíte jádru natolik dobře, že se toho nebojíte, tak klobouk dolů.
I kdybys zpameti znal jadro do posledniho bitu, v tomhle pripade menis chovani CPU, a naprosto netusis, jakej vliv to bude mit na bezici jadro, natoz na aplikace.
Osobne mam vsude kde to lze tyhle vopicarny povypinany, a prijde mi jako nehoraznost, ze to bydefult je zaply. Co je horsi, ze se ti to do systemu dostane treba s aktualizaci biosu ... a 30% vykonu v riti. A to ackoli jde treba o jednouzivatelskej system kde bezi jedna aplikace ktera si svy hesla a klice muze cist z disku nebo z ramky a nemusi kvuli tomu hackovat CPU.
Jedinej kdo stimhle ma problem, jsou verejny cmoudy, protoze to je taky jedinej cil, kde se vyplati stravit treba par mesicu lovenim klicu. Ve vsech ostatnich pripadech ... zavolam uzivateli a on mi rekne svoje heslo.
Ve Windows se na úrovni kernelu například přepínání mezi různými implementacemi řeší tak, že máte několik verzí stránky paměti s pointery na funkce, a přimapujete tu která je zrovna potřeba, řekněme s podporou té nebo jiné rozšířené instrukční sady. Pokud jde o změnu funkcionality, tak to je prostý hotpatching. Modifikujete binárku v paměti tak že jí alokujete nějaké další stránky paměti, do nich dáte nový kód, a přepíšete začátek stávajících funkcí tak aby provedly skok na ten nový kód. Těch technik je více, a je to poměrně zajímavá oblast. Například pokud dojde kvůli změně kódu ke změně nějaké datové struktury, tak ji lze při aplikaci hot patche transformovat (stop the world, transform the state). Akorát když vidím jak často se - bez ohledu na platformu - nepovedou ani "klasické" patche, tak bych se v praxi poněkud obával ohledně spolehlivosti.