[Arquivo de Boletins Informativos ^] [< Volume 1, Número 3] [Volume 1, Número 5 >]
O Boletim Informativo da Systems Internals Volume 1, Número 4
http://www.sysinternals.com
Copyright (C) 1999 Mark Russinovich
5 de agosto de 1999 – Nesta edição:
NOVIDADES NOS SISTEMAS INTERNOS
- Portmon v3.0
- Frob v1.5
- ListDLLs v2.1
- Novas Opções de BOOT.INI
- PsList v1.0
- Agosto "NT Internals"
- Coisas não tão novas
NOTÍCIAS INTERNAS
- Correção Re: Proteção de Arquivos do Sistema
- Win2K RC1 DDK Lançado
- A API do Win2K AWE
- WinDev '99 West
O QUE ESTÁ POR VIR
- Ferramenta DiskEdit Não Documentada do SP4
PATROCINADOR: WINTERNALS SOFTWARE
O Boletim Informativo de Sistemas Internos é patrocinado pela Winternals Software, na Web em http://www.winternals.com. O Winternals Software é o principal desenvolvedor e provedor de ferramentas de sistemas avançados para Windows NT/2K. Os produtos da Winternals Software incluem FAT32 para Windows NT 4.0, ERD Commander (capacidade de disco de inicialização para Windows NT) e NTRecover.
A Winternals Software anuncia o lançamento de seu utilitário de recuperação de sistema mais recente, a Recuperação Remota. A Recuperação Remota permite que você acesse as unidades de um computador não inicializável por meio de TCP/IP de qualquer lugar da sua empresa. Economize tempo e dinheiro com suporte corrigindo remotamente os problemas de driver, sistema de arquivos e configuração que estão mantendo os sistemas NT ou Win9x off-line. Baixe uma versão de avaliação somente leitura gratuita em http://www.sysinternals.com/rrecover.htm, e compre a versão de leitura/gravação em http://www.winternals.com.
Olá, pessoal.
Bem-vindos à quarta edição do boletim do Systems Internals. Atualmente, o boletim informativo tem 7000 assinantes.
No último boletim informativo, indiquei que estaria cobrindo a API da AWE do Windows 2000 (Win2K). Apontei que a AWE significa "Extensões de Janela de Endereço" (para novatos no mundo do Windows, a API significa "Interface de Programação de Aplicativo"). Esta página no site do desenvolvedor de hardware da Microsoft a descreve como tal: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. No entanto, o leitor Laxmikant Gunda me apontou para outra URL no site da Microsoft, http://www.microsoft.com/windows/server/News/fromMS/intelpae.asp, em que a AWE é designada como a API "Extensões Avançadas de Janela". Claramente, "Endereço" faz mais sentido do que "Avançado" no contexto da API (que descrevo mais tarde neste boletim informativo), então acho que algum redator de marketing se confundiu com algo enquanto digeria material técnico bruto para a página de notícias.
Já vi essa confusão acontecer antes na cobertura técnica da Microsoft. Mais recentemente, o programa de instalação da versão Beta 3 do Kit IFS (Sistemas de Arquivos Instaláveis) do Win2K se anunciou em sua tela inicial como uma configuração para o "Kit de Sistemas de Arquivos Internos". O "I" em IFS sempre significou "Instalável", e "Interno" não faz muito sentido aqui (a menos que eles tenham lançado a versão não pública do kit acidentalmente), então eu acho que é outro caso de algo dar errado na tradução (ou o codificador de instalação não tinha um membro da equipe de sistemas de arquivos por perto e fez sua melhor suposição).
Qual é o meu ponto? Eu realmente não tenho um, a não ser que mais cedo ou mais tarde teremos um excesso de acrônimos, onde desenvolvedores e profissionais de marketing começarão a usar inadvertidamente os mesmos acrônimos de três letras para descrever diferentes tecnologias. Alguém no grupo do IIS (Internet Information Server) da Microsoft nomeará uma nova API chamada AIE ("Advanced ISAPI Extensions": ISAPI significa Internet Server API) e alguém no grupo do MTS (Microsoft Transaction Server) criará outra AIE, "Atomic Interface Exchange". E tenho certeza de que um dia um profissional de marketing ou redator técnico receberá um documento técnico da equipe do IIS que se refere ao "AIE" e, sem saber a diferença entre um banco de dados e um sistema de arquivos, chutará que significa "Advanced Internet Explorer".
Já vi confusão de acrônimos no trabalho em outros lugares, também. Um artigo recente da Windows NT Magazine que aborda portas seriais e paralelas usou o termo "porta COM" em seu texto. Depois que o editor de texto fez a revisão final e o artigo foi publicado, a frase ficou "porta COM (Component Object Model)".
Como de costume, passe o boletim informativo para amigos que você acha que pode achar interessante.
Agradecemos!
-Mark
NOVIDADES NOS SISTEMAS INTERNOS
PORTMON V3.0
Aspectos importantes do Portmon foram aprimorados na versão 3.0. O Portmon é um aplicativo de monitoramento de porta serial e paralelo para Windows 95/98/NT/2K. A versão 3.0 apresenta:
- funcionalidade avançada de filtragem e realce de saída
- a capacidade de monitorar a atividade de porta serial e paralela em sistemas remotos
- log ao arquivo e suporte à impressão
- integração da área de transferência
- uma configuração que permite especificar a quantidade de dados de leitura/gravação no log
Baixar o Portmon v3.0 em http://www.sysinternals.com/portmon.htm.
FROB V1.5
O Windows NT 4.0 Server fornece aos administradores nenhuma capacidade de controlar os comprimentos dos quantums (turnos) que o agendador de threads NT dá aos threads. Na Estação de Trabalho do Windows 4.0, o applet do Sistema no Painel de Controle tem uma guia Desempenho com um controle deslizante que permite designar um aumento quântico para threads em primeiro plano (o controle deslizante também está presente no Servidor, mas não faz nada). Quantums mais curtos geralmente resultam em aplicativos que são mais responsivos à entrada do usuário, enquanto quantums longos são bons para sistemas dedicados à execução de aplicativos de servidor não interativos.
O programa Frob da Systems Internals oferece o mesmo grau mais refinado de controle sobre os comprimentos quânticos na Estação de Trabalho e no Servidor, permitindo ajustar os quantums à carga de trabalho executada em um sistema. No entanto, como o Frob modifica as configurações internas para o kernel NT, ele deve ser atualizado para funcionar com cada novo Service Pack. O Frob v1.5 já está disponível e fornece compatibilidade com o Service Pack 5.
Baixe o Frob v1.5 em http://www.sysinternals.com/ntfrob.htm.
LISTDLLS V2.1
O ListDLLs é um utilitário de linha de comando que mostra informações detalhadas sobre a versão das DLLs que os processos carregaram. O ListDLLs extrai informações de versão dos arquivos no disco que correspondem aos caminhos de arquivo das DLLs carregadas e obtém os nomes de caminho usando interfaces não documentadas. Às vezes, um arquivo DLL em disco é atualizado depois que um aplicativo já o carregou e, nesse caso, o ListDLLs mostra informações de versão incorretas.
O ListDLLs v2.1 reconhece quando há uma diferença entre as versões em disco e carregadas de uma DLL e sinaliza a diferença em sua saída. Quando há uma discrepância, o ListDLLs imprime os tempos de link do arquivo em disco e do arquivo carregado. Os tempos de link dos arquivos executáveis e DLL estão localizados no cabeçalho do formato de arquivo PE (Executável Portátil) que o NT usa para empacotá-los.
Baixar o ListDLLs v2.1 em http://www.sysinternals.com/listdlls.htm.
NOVAS OPÇÕES DE BOOT.INI
O Win2K Beta 3 apresenta três novas opções de BOOT.INI. Todos as três estão relacionados às PAE (Extensões de Endereço Físico) da Intel, uma tecnologia que a Intel introduziu com o Pentium Pro para permitir que sistemas x86 resolvam até 64 GB de memória física. Tradicionalmente, os sistemas x86 só podem lidar com 4 GB de memória física, mas com o PAE e o chipset 450NX, essa barreira foi quebrada. O Win2K é o primeiro sistema operacional da Microsoft que aproveitará o PAE (o Sun Solaris 7 e o SCO UnixWare 7 já dão suporte ao PAE). Na verdade, há um build especial do kernel Win2K, chamado ntkrnlpa.exe, que tem o suporte interno. O NTLDR, o gerenciador de inicialização do Win2K, é responsável por carregar o kernel padrão, ntoskrnl.exe, ou o habilitado para PAE, com base em se o sistema consegue endereçar mais de 4 GB de memória e ter essa quantidade presente.
Todas as três novas opções de BOOT.INI destinam-se à depuração de drivers de dispositivo projetados para trabalhar com sistemas de memória grandes (sistemas com mais de 4 GB). O primeiro, /PAE, tem o NTLDR carregando a versão PAE do kernel mesmo que o computador não tenha mais de 4 GB de memória presente. O segundo, /NOPAE, força o NTLDR a carregar o kernel padrão. Por fim, a opção /NOLOWMEM tem o kernel Win2K usando apenas memória física acima de 4 GB. Isso força todos os endereços físicos usados pelo Win2K a exigir mais de 32 bits para representá-los e, portanto, exerce a manipulação do driver de dispositivo de endereços físicos grandes.
Encontre a lista mais completa de opções de BOOT.INI disponíveis em http://www.sysinternals.com/bootini.htm.
PSLIST V1.0
A maioria dos tipos de envio UNIX com uma ferramenta de linha de comando chamada “ps” que os administradores usam para listar estatísticas de CPU e memória do processo. O NT tem uma ferramenta baseada em GUI equivalente, o Gerenciador de Tarefas, mas o NT vem sem nenhuma versão de linha de comando. O Kit de Recursos do Windows NT inclui duas ferramentas semelhantes a “ps” de linha de comando, pstat e pumon. O PsList mostra uma combinação das informações disponíveis com pstat e pumon, mas tem uma funcionalidade que nenhuma ferramenta do Kit de Recursos tem: você pode usar o PsList para consultar informações do processo em um sistema remoto.
O PsList usa vários sinalizadores que permitem exibir estatísticas de CPU, memória ou thread de processo e uma opção que permite especificar um computador NT diferente para consulta. O PsList usa os Contadores de Desempenho internos do NT para obter as informações mostradas e funciona no NT 3.51, 4.0 e Win2K.
Baixar o PsList em http://www.sysinternals.com/pslist.htm.
AGOSTO "NT INTERNALS"
Minha coluna "NT Internals" na edição de outubro do Windows NT Magazine é "Inside Win2K Reliability Enhancements, Part 1". Esta primeira de uma série de três partes descreve os recursos do Win2K destinados a ajudar os administradores a colocar um sistema em funcionamento após ele se tornar não inicializável. Elas incluem a inicialização do "modo de segurança" e o Console de Recuperação.
A partir do início de agosto, as versões on-line dos artigos da Windows NT Magazine ficam acessíveis somente a assinantes, e os artigos postados em linha com cada novo problema. Se você ainda não assinou, acesse o link da assinatura em http://www.sysinternals.com/publ.htm para obter o desconto de assinatura do Systems Internals.
COISAS NÃO TÃO NOVAS
Se você ainda não assustou um ou dois amigos com isso, confira o protetor de tela Bluescreen da Systems Internals. A versão 2.0 exibe a versão Win2K da Tela Azul da Morte (BSOD) e a sequência de inicialização do Win2K ao ser executada em um sistema Win2K. Tenho orgulho de dizer que a proteção de tela Bluescreen foi recentemente premiada com cinco estrelas, a classificação mais alta possível, da Biblioteca de Software da Ziff-Davis.
Baixar a proteção de tela Bluescreen v2.0 em http://www.sysinternals.com/bluescrn.htm.
NOTÍCIAS INTERNAS
CORREÇÃO RE: PROTEÇÃO DE ARQUIVOS DO SISTEMA
No último boletim informativo, afirmei que a Proteção de Arquivos do Sistema (SFP) do Win2K permite que aplicativos como Service Packs (SPs) e hot-fixes atualizem os arquivos do sistema chamando uma função que o SFP exporta chamada SfcTerminateWatcherThread. Embora o SFP exporte essa função, SPs e hot-fixes não usam a função ao atualizar arquivos do sistema. Em vez disso, eles podem atualizar os arquivos de sistema porque substituem os arquivos de sistema existentes por outros assinados digitalmente pela Microsoft. O SFP detecta as atualizações, mas permite que elas sejam mantidas porque o SFP verifica se os novos arquivos são assinados digitalmente. Outra correção em relação à minha cobertura do SFP é que, após o Win2K Beta 3, a Microsoft alterou o nome do SFP para WFP (Proteção de Arquivos do Windows).
Não deixe de conferir a edição de setembro da Windows NT Magazine, onde você encontrará minha coluna da NT Internals "Inside Win2K Reliability Enhancements, Part 2", que descreve detalhadamente o WFP e a assinatura de arquivos digitais da Microsoft.
WIN2K RC1 DDK LANÇADO
Você pode baixar a versão Win2K RC1 do Kit de Desenvolvimento de Driver de Dispositivo (DDK) da Microsoft agora em http://www.microsoft.com/ddk/ddk2kRC1.htm. Você pode baixar o kit gratuitamente ou procurar a documentação online.
A API DA AWE WIN2K
Já mencionei a API da AWE na introdução deste boletim informativo e fiz referência a uma página da Web da Microsoft onde você pode saber mais: http://www.microsoft.com/hwdev/NTDRIVERS/AWE.htm. Em sistemas com mais de 4 GB de memória física, o kernel compatível com PAE do Win2K, ntkrnlpa.exe, consegue aproveitar toda a memória física do computador sem modificar os aplicativos. O Servidor Avançado Win2K usará até 8 GB de memória física e o Win2K Datacenter Server usará até 64 GB de memória física.
Embora cada aplicativo em um sistema de memória grande tenha no máximo 2 GB de memória virtual à disposição (3 GB se a opção /3GB BOOT.INI for especificada), a soma da memória física atribuída a todos os aplicativos em execução pode ser igual à quantidade de memória física. Além disso, no Win2K, o cache do sistema de arquivos é atribuído um máximo de 960 MB de memória virtual, mas a quantidade de dados de arquivo em cache pode ser muito maior e a memória física atribuída ao cache pode exceder 960 MB.
A API da AWE fornece aos aplicativos individuais a capacidade de controlar diretamente a memória física e mais do que o limite de 2 GB ou 3 GB implícito pelo tamanho do espaço de endereço virtual. A ideia básica por trás da API AWE é que um aplicativo designa uma parte de seu espaço de endereço virtual como uma "janela" na memória física. Em seguida, ele aloca uma parte da memória física. O limite superior da quantidade de memória física que um aplicativo pode alocar é essencialmente a quantidade de memória física no sistema menos qualquer memória não paginada já alocada pelo kernel, pelos drivers de dispositivo e por outros aplicativos que usam a API da AWE. Quando o aplicativo deseja acessar parte da memória física alocada, ele mapeia a memória em sua janela de endereço virtual. Assim, a quantidade de memória física que o aplicativo pode acessar com um determinado mapeamento é limitada pelo tamanho da janela reservada. Por fim, quando um aplicativo termina de usar a memória física, ele libera a memória e fecha (desaloca) a janela de endereço virtual criada.
As APIs que correspondem a essas ações são exportadas por kernel32.dll e são as seguintes:
- Um aplicativo chama o VirtualAlloc com os sinalizadores MEM_PHYSICAL e MEM_RESERVE para criar a janela de endereço virtual
- AllocateUserPhysicalPages aloca memória física para um aplicativo
- Um aplicativo usa o MapUserPhysicalPages para mapear partes da memória física em sua janela
- FreeUserPhysicalPages libera a memória física alocada pelo aplicativo
A capacidade de aplicativos manipularem diretamente múltiplos GB de memória é um benefício para programas de uso intensivo de memória, como servidores de banco de dados, servidores de email, servidores Web, aplicativos de análise financeira e científica.
Embora a capacidade de usar mais de 4 GB de memória física só seja permitida em determinadas versões do Win2K, a API da AWE está presente em todas as versões. Isso significa que, em um sistema Win2K Professional com 4 GB de memória, por exemplo, a API da AWE ainda fornece aos aplicativos com uso intensivo de memória a capacidade de gerenciar mais de 2 ou 3 GB de dados na memória física.
A API da AWE tem interfaces de modo kernel equivalentes nas quais kernel32.dll baseia as APIs do modo de usuário. Um driver pode alocar memória física usando MmAllocatePagesForMdl, que é o equivalente ao modo kernel de AllocateUserPhysicalPages. Essa função tem seu protótipo no arquivo Win2K DDK ntddk.h, mas não está documentada. Seu protótipo é:
NTKERNELAPI
PMDL
MmAllocatePagesForMdl (
IN PHYSICAL_ADDRESS LowAddress,
IN PHYSICAL_ADDRESS HighAddress,
IN PHYSICAL_ADDRESS SkipBytes,
IN ULONG TotalBytes
);
LowAddress
é o endereço físico aceitável mais baixo que deseja alocar e HighAddress é o mais alto. SkipBytes é o número de bytes que o kernel deve manter livre acima de LowAddress
e abaixo do endereço no qual ele começa a alocar memória física. TotalBytes
são o número de bytes que o driver deseja alocar. O valor retornado da função é um MDL que, se não for zero, descreverá a memória física que o kernel deu ao driver. Para acessar partes da memória, o driver deve criar subMDLs do MDL retornado que descrevem partes apropriadas da memória física. Quando um driver deseja acessar a memória física descrita por um subMDL, ele deve mapear o subMDL usando MmGetSystemAddressForMdlSafe
.
Os drivers usam o MmFreePagesFromMdl
, o equivalente ao modo kernel de FreeUserPhysicalPages
, para liberar a memória física alocada com MmAllocatePagesForMdl
. Essa função também é protótipo em ntddk.h:
NTKERNELAPI
VOID
MmFreePagesFromMdl (
IN PMDL MemoryDescriptorList
);
Observe que um driver é responsável por desalocar o MDL retornado por MmAllocatePagesForMdl
com uma chamada para ExFreePool, pois MmFreePagesFromMdl
não libera o MDL.
WINDEV '99 WEST
A edição 1999 West Coast da principal conferência para desenvolvedores do Windows está cada vez mais perto. O WinDev 99 West acontece de 13 a 18 de setembro em Santa Clara Marriot, na Califórnia. Vários grandes nomes do desenvolvimento do Windows vão falar, incluindo Jeff Richter, Jeff Prosise e Don Box. Estarei lá com Jamie Hanrahan e Brian Catlin no tema de drivers de dispositivo. Minhas apresentações incluem um tutorial de um dia sobre os elementos do NT, um sobre como gravar drivers do sistema de arquivos do Windows NT/2K, e outro sobre problemas de desenvolvimento avançado de drivers de dispositivo. Venha e diga olá!
Visite a página da Web do WinDev West em http://www.butrain.bu.edu/windev/.
O QUE ESTÁ POR VIR
NT 4.0 SP4 DISKEDIT
O Windows NT 4.0 Service Pack 4 foi fornecido com um utilitário bacana em seu CD que muitas pessoas talvez não tenham notado: DiskEdit. E não é à toa: a ferramenta não é instalada no disco rígido e vem sem documentação. É quase certo que é uma ferramenta usada internamente por desenvolvedores do sistema de arquivos da Microsoft que foi enviada acidentalmente no CD. O DiskEdit é um tesouro para as pessoas que perderam uma ferramenta de edição de disco do Norton Utilities para Windows NT ou apenas querem explorar estruturas de dados no disco NTFS e FAT. Da próxima vez, fornecerei algumas instruções sobre como usar o DiskEdit.
Obrigado por ler o Boletim Informativo da Systems Internals.
Publicado na quinta-feira, 05 de agosto de 1999, 19:13, por ottoh
[Arquivo de Boletins Informativos ^] [< Volume 1, Número 3] [Volume 1, Número 5 >]