Portál AbcLinuxu, 6. května 2025 15:35
printk()
. Ale raději po Něm moc negooglete, mně stačilo pár minut a mám chuť si vyndat mozek z hlavy a pořádně ho vydrhnou rejžákem Dokonce jsem myslel, ze jsou nad useky kde lezi instrukce nejaky flagy, ktery zakazuji zapis.Vztahuje se tohle i na paměť jádra? Proti zápisu z userspace je chráněná z principu. (A když někdo ukecá jádro, aby modifikovalo svou vlastní paměť, problém je jinde.) A navíc... buď něco můžeš dělat se snazší čitelností, nebo mít rychlejší jádro a tím celý stroj. Vzhledem k tomu, že v tomhle případě to první není nijak velký problém, hlasuju pro to druhé.
#define JUMP_LABEL(key, label) if (unlikely(*key)) goto label;
a jak je to reseno "fyzicky" je nemusi znepokojovat, jako je neznepokojuje ani jmp ve vyslednem kodu.
Osobne se mi to taky libi, ale jsem velmi prekvapen ze to vubec jde.Niečo podobné sa využíva aj pri JIT v JavaScript, Jave..., takže urobiť sa to dá, stačí len vhodne nastaviť parametre stránok.
vyjma extremnich pripadu "trefeni se" do zrovna vykonavaneho koduTy jsou samozřejmě ošetřeny. Když se kód takto modifikuje, jádro zastaví všechna CPU v systému kromě jednoho (které ovšem nemůže vykonávat měněný kód, protože zrovna vykonává měnící kód)
outer: for (;;) { for (;;) { if (...) break outer; } }
A co tohle? http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Named_LoopCož ono se to dá vždycky nějak vyřešit, spíš mě zajímalo, jestli to do C++0x přidali nativně.
Co sa tyka goto - Asi sme na skolach fakt boli "brainwasched"...To si pamatuju na vejšce, jak je goto špatné, protože procesor má pipeline a ta se musí zahodit a kdesi cosi...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.