No-Execute bit: The "NX" bit (bit 63 of the page table entry) allows the operating system to specify which pages of virtual address space can contain executable code and which cannot. An attempt to execute code from a page tagged "no execute" will result in a memory access violation, similar to an attempt to write to a read-only page. This should make it more difficult for malicious code to take control of the system via "buffer overrun" or "unchecked buffer" attacks. A similar feature has been available on x86 processors since the 80286 as an attribute of segment descriptors; however, this works only on an entire segment at a time.
Segmented addressing has long been considered an obsolete mode of operation, and all current PC operating systems in effect bypass it, setting all segments to a base address of zero and (in their 32 bit implementation) a size of 4 GB. AMD was the first x86-family vendor to implement no-execute in linear addressing mode. The feature is also available in legacy mode on AMD64 processors, and recent Intel x86 processors, when PAE is used.
Puxa! Entendi tudo errado! E eu que penseu que isto era para dar a camada de compatibilidade entre aplicativos 32 bit em sistemas 64bit.
Para se ver como os fabricantes de processadores são gananciosos mesmo não?
Isto foi discutido no ano de 2000, onde esta possibilidade existia de fato. Hoje, 13 anos depois (pelo que me consta o buffer underun foi eliminado em 2003) ele é citado como um fato da história.
O buffer underun foi inicialmete descoberto como um bug nos aparelhos de cd rom e acredito eu, não existam mais em processadores passados estes 13 anos.
Participei desta discussão ainda no windows 3.1 for workgroups, onde a intel implementou o modo protegido nos x586 deixando o modo real para poder se acessar endereçamentos maiores, e nesta época buffer underun foi um fato incontestável (windows millenium foi campeão nisso, durou 6 meses e foi abandonado )
Ah! O melhor é nunca usar o google translate. Este sim, ainda está em desenvolvimento a mais de 15 anos, quando começou pelos esforços da IBM em implementar um tradutor universal.
Neste item, não existe ainda um algoritmo que faça interpretações semanticas, apenas literais, o que as vezes levam a uma tradução totalmente errada do texto.
Só recomendarei algum tradutor quando este algoritmo estiver bem mais polido
The feature is also available in legacy mode on AMD64 processors, and recent Intel x86 processors, when PAE is used.
"esta modalidade ainda está disponivel em processadores 64 bit antigos (legacy mode) e em recentes processadores da familia Intel x86 (32 bit, portanto) quando PAE estiver em uso."
Em minha interpretação do Inglês, posso intuir que se os 64 bit modernos já resolveram isto, pois os 32 bit levam desvantagem pois apresentam buffer underun em modo protegido. (PAE)
De qualquer forma, como não existem mais processadores de 32 bit em desenvolvimento, não existe alternativa a não ser usar os inseguros 64 bit.
[]'s