Rebasing - Rebasing
Na computação, rebase é o processo de modificação de dados com base em uma referência a outra. Pode ser um dos seguintes:
Rebasing é o processo de criação de uma imagem de biblioteca compartilhada de forma que seja garantido o uso de memória virtual sem entrar em conflito com nenhuma outra biblioteca compartilhada carregável no sistema.
IBM VM / 370 segmentos salvos descontínuos (DCSS) foram um dos primeiros exemplos dessa técnica, embora não sejam chamados de rebase . A técnica é amplamente usada em plataformas Win32 para evitar a sobrecarga de realocação de endereço de DLLs do sistema pelo carregador.
Algumas extensões de segurança para Linux / x86 usam rebasing para forçar o uso dos endereços de código abaixo 0x00ffffff
, a fim de introduzir um 0x00
byte em todos os ponteiros de código; Isso elimina uma certa classe de buffer overflow problemas de segurança relacionados com a verificação imprópria de strings terminadas em nulos , comuns no C linguagem de programação .
Outros usos
- Rebasing é o ato de mover changesets para uma ramificação diferente ao usar um sistema de controle de revisão ou, em alguns sistemas, sincronizando uma ramificação com a ramificação de origem mesclando todas as novas alterações da última com a anterior. Por exemplo, Git e Darcs fazem isso (mas Darcs estende o conceito e chama isso de "comutação de patch").
- O mecanismo que a ferramenta de rebase de horário de verão (DST) do Microsoft Exchange ou Outlook TZMOVE.EXE usa para recalcular e reagendar datas de compromisso que são afetadas pelo DST.
Veja também
- Relocação (computação)
- Código independente de posição
- Executável portátil (PE)
- Área de alta memória (HMA)
- Eliminação de código morto dinâmico
Leitura adicional
- Levine, John R. (2000) [outubro de 1999]. Linkers e carregadores . The Morgan Kaufmann Series in Software Engineering and Programming (1 ed.). São Francisco, EUA: Morgan Kaufmann . p. 218. ISBN 1-55860-496-0. OCLC 42413382 . Arquivado do original em 05/12/2012 . Obtido em 2020-01-12 .Código: [1] [2] Errata: [3]
- Chen, Raymond (2004-12-17). "Como o Windows 95 realocou DLLs?" . A velha coisa nova .
- Riemersma, Thiadmer (2000-12-01). "Rebasing Win32 DLLs" . Diário do Dr. Dobb .
- Mark Baker (25/03/2004). "Otimizando Cargas DLL" . Diário do Dr. Dobb .
- Caldato, Claudio (fevereiro de 2006). "Melhorando o tempo de inicialização do aplicativo" . MSDN Magazine . Microsoft Corporation .
- Biswas, Surupa (maio de 2006). "Os benefícios de desempenho do NGen" . MSDN Magazine . Microsoft Corporation .
- Pietrek, Matt (março de 2002). "Uma análise aprofundada do formato de arquivo executável portátil Win32, parte 2" . MSDN Magazine . Microsoft Corporation .
- Asche, Rüdiger R. (1995-09-18). "Rebasing Win32 DLLs: The Whole Story" . Arquivado do original em 07/07/2011.
- Robbins, John (2000). Aplicativos de depuração: Microsoft . Série de programação da Microsoft. Microsoft Press . pp. 34–36. ISBN 978-0-7356-0886-3.
- Thomas, Reji; Reddy, Bhasker (14/08/2006). "Dynamic Linking in Linux and Windows, part two" . Symantec Corp .