a.out - O segmento de dados e o segmento de texto são contíguos, se o segmento de texto não for compartilhado. Porque isto é assim?

1

Eu estava lendo a página man do antigo formato a.out (localizado aqui , tentando entender a evolução dos formatos executáveis do Unix. Eu estava pensando sobre alguma coisa. A man page diz que, se o número mágico for OMAGIC, o segmento de texto não será compartilhado com outros processos e nenhuma proteção contra gravação será inserida nele, e o segmento de dados começará imediatamente depois dele na memória (no próximo byte). Mas se o número mágico for NMAGIC ou ZMAGIC, o segmento de texto será protegido contra gravação e compartilhado com outros processos executando o mesmo programa e, nesse caso, o segmento de dados começará no início do próximo bloco de 1024 bytes. Porque isto é assim? Por que o compartilhamento do segmento de texto requer o segmento de dados que começa em um limite de 1024 bytes? Tenho a sensação de que isso é algo que geralmente se aplica e não é específico do formato a.out.

    
por Zen Hacker 26.11.2015 / 22:23

1 resposta

1

Isso é feito para alinhar o segmento de dados em um limite de página (o que o força automaticamente a estar em uma página diferente do segmento de texto). Com essa pista, você deve encontrar mais informações, como a explicação de John Levine em Links e carregadores .

    
por 26.11.2015 / 22:46

Tags