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