Re: Jádro pudla (Cernobily svet) :-)

Ales Prochaska prochaska@alsoft.cz
Sobota Březen 4 09:45:53 CET 2006


Jenže překladač lze napsat tak, aby systémy ochrany paměti využíval.
Stačilo by aby se někdo zamyslel hlavou a udělal dejme tomu překladač,
který bude možné přepnout do nějakého módu "safe C++" (když už teda né
tu Adu nebo nějaký lepší jazyk), což bude céčko s nepatrně pozměněnou
syntaxí, beztak převážně v místech do kterých rozumně uvažující
programátor raději nikdy nezabloudí :-)

Aleš Procháska

> Jak to funguje doopravdy:

> Základem je tzv. flat model, kdy segment programu, dat i zásobníku se překrývají po celé délce.
> Program sice nemůže k cizím datům, ale sám sebe přepsat může a může taky jakákoli svá data
> spustit jako program...

> Co to má společného s ANSI C?

> Pointery neobsahují segmentovou část adresy, takže C lze používat jen s flat modelem.
> Zásobník nelze smysluplně limitovat, protože má-li být limit nad 2 GB (opakuji, limit zásobníku
> určuje nejnižší povolenou adresu), budou pointery do něj odkazující záporné:-)

> A co XP a SP2?

> To je tak trochu "narovnák na vohejbák" - při spuštění programu se zásobník inicializuje
> pokaždé na trochu jinou adresu, takže nemůže přetéct předem definovatelným způsobem:-)

> Uf... tak pro dnešek mám dost:-)

> PH







Další informace o konferenci Hw-list