Arquitetura do Windows NT
Sobre este escolas selecção Wikipedia
Crianças SOS têm produzido uma seleção de artigos da Wikipedia para escolas desde 2005. Crianças SOS tem cuidado de crianças em África há 40 anos. Você pode ajudar o seu trabalho na África ?
A arquitetura de Windows NT, uma linha de sistemas operacionais produzidos e vendidos pela Microsoft , é um projeto em camadas que consiste em dois componentes principais, modo de utilizador e modo kernel. É um de preferência, sistema operacional de reentrada, que foi projetado para trabalhar com uniprocessor e simétrico de multi processador (SMP) -baseado computadores. Processar entrada / saída (I / O) solicitações, eles usam-driven pacote I / O, que utiliza E / S pacotes de solicitação (IRPs) e E / S assíncrona. Começando com Windows 2000 , Microsoft começou a fazer Versões de 64 bits do Windows disponíveis antes disso, esses sistemas operacionais só existia na Versões de 32 bits.
Programas e subsistemas em modo de utilizador são limitados em termos de quais recursos do sistema a que têm acesso, enquanto o modo kernel tem acesso irrestrito à memória do sistema e os dispositivos externos. O Windows NT kernel é conhecido como um semente híbrida. A arquitectura compreende um núcleo simples , camada de abstração de hardware (HAL), drivers e uma gama de serviços (chamados coletivamente Executivo ), que todos existem no modo kernel.
Modo de utilizador no Windows NT é feito de subsistemas capazes de passar os pedidos de E / S para o modo kernel apropriado drivers de software usando o Gerenciador de E / S. Dois subsistemas compõem a camada de modo de usuário do Windows NT: o subsistema de Meio Ambiente (que roda aplicativos escritos para muitos tipos diferentes de sistemas operacionais), eo subsistema Integral opera funções específicas do sistema em nome do subsistema de ambiente. Modo kernel no Windows NT tem acesso total aos recursos de hardware do computador e do sistema. O modo kernel pára os serviços do modo de usuários e aplicativos acessem áreas críticas do sistema operacional que eles não devem ter acesso.
As interfaces Executiva, com todos os subsistemas de modo de usuário, lida com I / O, gerenciamento de objetos, de segurança e de gestão de processos. O kernel fica entre a camada de abstração de hardware e do Executivo para fornecer sincronização de multiprocessador, linha e interromper a programação e expedição, e manuseio armadilha e expedição exceção. O kernel também é responsável por inicializar drivers de dispositivo na inicialização. Drivers de modo kernel existem em três níveis: os drivers mais alto nível, intermediários e drivers de baixo nível. O Windows Driver Model (WDM) existe na camada intermediária e foi projetado principalmente para ser binário e fonte compatível entre Windows 98 e Windows 2000 . Os controladores de nível mais baixo são ou legados drivers de dispositivo do Windows NT que controlam um dispositivo diretamente ou pode ser um Ônibus hardware PnP.
Modo de utilizador
O modo de utilizador é composto de subsistemas que podem passar pedidos I / O para os drivers de modo kernel apropriados através do gerente I / O (que existe no modo kernel). Dois subsistemas compõem a camada de modo de usuário do Windows NT: o subsistema de Meio Ambiente e do subsistema Integral.
O subsistema de ambiente foi projetado para executar aplicativos escritos para muitos tipos diferentes de sistemas operacionais. Nenhum dos subsistemas de ambiente podem acessar diretamente o hardware, e deve solicitar o acesso a recursos de memória através do Gerenciador de memória virtual que é executado em modo kernel. Além disso, os aplicativos são executados em uma prioridade mais baixa do que os processos do modo kernel.
Existem três principais subsistemas de ambiente: a Subsistema Win32, um Subsistema OS / 2 e um Subsistema POSIX.
- O subsistema de ambiente Win32 pode executar aplicativos de 32 bits do Windows. Ele contém o console, bem como suporte janela de texto, o desligamento e manuseio para todos os outros subsistemas de ambiente de erros disco. Ele também suporta Virtual Machines DOS (VDMs), que permitem MS-DOS e Windows de 16 bits ( Win16) aplicações para rodar em Windows NT. Há uma específica MS-DOS VDM que é executado em seu próprio espaço de endereço e que emula um Intel 80486 executando o MS-DOS 5.0. Programas Win16, no entanto, ser executado em um Win16 VDM. Cada programa, por padrão, é executado no mesmo processo, assim, usando o mesmo espaço de endereço, eo Win16 VDM dá a cada um o seu próprio programa thread executar em. No entanto, o Windows NT não permite aos usuários executar um programa Win16 em um Win16 VDM separado, que permite que o programa a ser preventivamente multitarefa como o Windows NT irá antecipar-se todo o processo VDM, que contém apenas um aplicativo em execução. O processo do subsistema Win32 ambiente ( csrss.exe) também inclui a funcionalidade de gestão de janela, por vezes referido como um " gerenciador de janelas ". Ele lida com eventos de entrada (como a partir do teclado e mouse), em seguida, passa mensagens para os aplicativos que precisam receber essa entrada. Cada aplicativo é responsável por desenho ou atualizar suas próprias janelas e menus, em resposta a essas mensagens .
- O subsistema OS / 2 suporta ambiente OS / 2 aplicativos baseados em caracteres de 16 bits e emula OS / 2 1.x, mas não de 32 bits ou gráficos OS / 2 aplicativos, usado com OS / 2 2.x ou posterior.
- O subsistema POSIX ambiente suporta as aplicações que são estritamente escritos, quer ao padrão POSIX.1 ou o relacionado ISO / Normas IEC. O subsistema POSIX tem sido uma área de desenvolvimento ativo recente e é uma das principais características Windows Compute Cluster Server 2003.
O subsistema integrante cuida de funções específicas do sistema operacional em nome do subsistema de ambiente. Ele consiste de um subsistema de segurança, um serviço de estação de trabalho e um serviço de servidor. O subsistema de segurança lida com tokens de segurança, concede ou nega o acesso a contas de usuário com base em permissões de recursos, trata as solicitações de login e inicia autenticação de login, e determina qual sistema de recursos precisam ser auditadas pelo Windows NT. Ele também cuida Active Directory. O serviço de estação de trabalho é um API para o redirecionador de rede, que fornece o acesso do computador à rede. O serviço do servidor é uma API que permite que o computador para fornecer serviços de rede.
Modo kernel
Windows NT modo kernel tem acesso total aos recursos do código de computador e corre hardware e do sistema em uma área de memória protegida. Ele controla o acesso a programação, priorização de discussão, gerenciamento de memória e da interação com o hardware. O modo kernel pára serviços e aplicativos de modo usuário de acessar áreas críticas do sistema operacional que eles não devem ter acesso; processos do modo de utilizador deve pedir ao modo kernel para executar essas operações em seu nome.
Enquanto o arquitetura x86 suporta quatro níveis de privilégios diferentes (numeradas de 0 a 3), apenas os dois níveis de privilégios extremas são usados. UserMode programas são executados com CPL 3, e o núcleo é executado com CPL 0. Estes dois níveis são muitas vezes referidos como "anel de 3" e "anel 0", respectivamente. Essa decisão de projeto tinha sido feito para alcançar a portabilidade de código para Plataformas RISC que suportam apenas dois níveis de privilégios, embora isso quebra a compatibilidade com OS / 2 aplicativos que contêm I / O privilégio segmentos que tentam acessar diretamente o hardware.
Modo kernel consiste em serviços executivos, o que é por si só feito de muitos módulos que fazem tarefas específicas, drivers do kernel, um kernel e uma camada de abstração de hardware, ou HAL.
Executivo
Os serviços Windows Executivos compõem a parte do modo kernel de baixo nível, e estão contidas no arquivo NTOSKRNL.EXE. Trata-se de I / O, gerenciamento de objetos, de segurança e de gestão de processos. Estes são divididos em vários subsistemas, entre os quais estão Cache Manager, Configuration Manager, I / O Manager, Chamada de Procedimento Local (LPC), Gestor de memória, Gerenciador de objetos, Estrutura de Processos e Monitor de Referência de Segurança (SRM). Agrupadas, os componentes podem ser chamados serviços executivos (nome interno Ex). Serviços do Sistema (nome interno Nt), ou seja, chamadas do sistema, são implementados a este nível, também, exceto poucos que chamar diretamente na camada do kernel para um melhor desempenho.
O termo "serviço" neste contexto refere-se geralmente a uma rotina que pode ser chamado, ou um conjunto de rotinas que podem ser chamadas. Isto é distinto do conceito de um "processo de serviço", que é um componente do modo de utilizador de alguma forma análoga a um daemon em Sistemas operacionais Unix-like.
- Gerenciador de Objetos
- O Gerenciador de Objetos (Ob nome interno) é um subsistema executivo que todos os outros subsistemas executivos, especialmente chamadas do sistema, deve passar para ter acesso aos recursos do Windows NT-essencialmente tornando-se um serviço de infra-estrutura de gerenciamento de recursos. O gerente de objeto é usado para reduzir a duplicação de funcionalidade de gerenciamento de recursos objeto em outros subsistemas executivos, o que poderia potencialmente levar a erros e tornam o desenvolvimento do Windows NT mais difícil. Para o gestor de objectos, cada recurso é um objeto, se esse recurso é um recurso físico (tal como um sistema de arquivos ou periférica) ou um recurso lógico (como um arquivo). Cada objeto tem uma estrutura ou objeto tipo de objeto que o gerente deve saber sobre.
- A criação do objeto é um processo em duas fases, a criação e inserção. Criação faz com que a atribuição de um objeto vazio ea reserva de quaisquer recursos requeridos pelo gerenciador de objetos, como um (opcional) nome no espaço de nomes. Se a criação foi bem sucedida, o subsistema responsável pela criação preenche o objeto vazio. Finalmente, se o subsistema de julgar a inicialização bem-sucedida, ele instrui o gerente objeto para inserir o objeto, o que o torna acessível através do seu (opcional) O nome ou a cookie chamado um identificador. A partir de então, a vida útil do objeto é tratado pelo gerente de objeto, e cabe ao subsistema para manter o objeto em uma condição de trabalho até ser sinalizado pelo gerente de objeto para descartá-lo.
- Alças são identificadores que representam uma referência a um recurso de kernel através de um valor opaco. Da mesma forma, a abertura de um objeto através de seu nome está sujeita a verificações de segurança, mas agindo através, um identificador aberto existente só está limitado ao nível de acesso solicitado quando o objeto foi aberto ou criado.
- Tipos de objeto definir os procedimentos de objeto e quaisquer dados específicos ao objeto. Desta forma, o gerente de objeto permite que o Windows NT para ser um objeto do sistema operacional orientado, como tipos de objeto pode ser pensado como polimórfico classes que definem objectos. A maioria dos subsistemas, porém, com uma exceção notável no I / O Manager, contam com a implementação padrão para todos os procedimentos de tipo de objeto.
- Cada instância de um objeto que é criado armazena seu nome, parâmetros que são passados para a função de criação de objeto, atributos de segurança e um ponteiro para o seu tipo de objeto. O objeto também contém um objeto próximo procedimento e uma contagem de referência para contar a gerenciador de objetos como muitos outros objetos no sistema de referência que objeto e, assim, determina se o objeto pode ser destruído quando uma solicitação é enviada para perto dele. Cada objeto nomeado existe em um objeto hierárquica namespace.
- Cache Controlador
- Estreitamente coordenadas com o Gerenciador de memória, I / O Manager e drivers de I / O para fornecer um cache comum para arquivo regular I / O. Excepcionalmente, o Gerenciador de cache do Windows opera em blocos de arquivos (em vez de blocos de dispositivos), para uma operação consistente entre arquivos locais e remotos, e garante um certo grau de coerência com vistas de memória mapeada de arquivos, desde blocos de cache são um caso especial de pontos de vista mapeados na memória e falta de cache um caso especial de falhas de página.
- Configuration Manager
- Implementa o Registro do Windows.
- I O Gerente /
- Permite que os dispositivos para se comunicar com os subsistemas de modo de usuário. Ele traduz o modo de usuário ler e escrever comandos em IRPs ler ou escrever que ele passa para drivers de dispositivo. Ele aceita sistema de ficheiros I / O e os traduz em chamadas específicas de dispositivos e pode incorporar os drivers de dispositivo de baixo nível que manipulam diretamente o hardware, quer ler a entrada ou saída de escrever. Ele também inclui um gerenciador de cache para melhorar o desempenho do disco por solicitações de leitura de cache e gravar o disco em segundo plano.
- Local Procedure Call (LPC)
- Fornece portas de comunicação entre processos com a semântica de conexão. Portas LPC são usados por subsistemas de modo de usuário para se comunicar com seus clientes, por subsistemas executivos para se comunicar com os subsistemas de modo de usuário, e como base para o transporte local para MSRPC.
- Gerenciador de memória
- Gerencia memória virtual, controle de proteção de memória eo paginação de memória dentro e fora da memória física para o armazenamento secundário, e implementa um alocador de uso geral da memória física. Ele também implementa um analisador de executáveis PE que permite que um arquivo executável ser mapeado ou não mapeada em uma única etapa, atômica.
- A partir do Windows NT Server 4.0, Terminal Server Edition, o gerenciador de memória implementa um chamado espaço sessão, um intervalo de memória de modo kernel que está sujeita a troca de contexto, assim como a memória do modo de utilizador. Isso permite que várias instâncias do subsistema do modo kernel Win32 e os drivers GDI correm lado a lado, apesar de deficiências na sua concepção inicial. Cada espaço de sessão é compartilhado por vários processos, colectivamente referidos como uma "sessão".
- Para garantir um grau de isolamento entre as sessões sem a introdução de um novo tipo de objeto, a associação entre processos e sessões é manipulado pelo Monitor de Referência de Segurança, como um atributo de um assunto de segurança (token), e só pode ser alterada, mantendo privilégios especiais .
- A natureza relativamente simples e ad-hoc de sessões é devido ao fato de eles não faziam parte do projeto inicial, e teve de ser desenvolvido, com o mínimo de interrupção para a linha principal, por um terceiro ( Citrix) como um pré-requisito para a sua produto de servidor de terminal para Windows NT, chamado WinFrame. A partir do Windows Vista, porém, sessões finalmente tornou-se um aspecto bom da arquitetura do Windows. Não é mais uma construção gerenciador de memória que se arrasta no modo de usuário indirectamente através de Win32, eles foram expandidas em uma abstração generalizada que afeta mais subsistemas Executiva. Por uma questão de fato, o uso regular de Windows Vista sempre resulta em um ambiente multi-sessão.
- Estrutura processo
- Handles processo e criação de thread e terminação, e ele implementa o conceito de trabalho, um grupo de processos que podem ser denunciado como um todo, ou ser colocado sob restrições compartilhados (um máximo tais total de memória alocada, ou tempo de CPU). Objetos de trabalho foram introduzidos no Windows 2000 .
- PnP Gerenciador
- Handles Plug and Play e suporta a detecção e instalação do dispositivo no momento da inicialização. Ele também tem a responsabilidade de parar e iniciar dispositivos sob demanda-isso pode acontecer quando um ônibus (como USB ou FireWire) ganha um novo dispositivo e precisa ter um driver de dispositivo carregado para apoiá-lo. Sua massa é de fato implementado no modo de utilizador, no serviço Plug and Play, que lida com as tarefas muitas vezes complexas de instalar os drivers apropriados, notificando serviços e aplicações da chegada de novos dispositivos, e exibindo GUI para o usuário.
- Power Manager
- Lida com eventos de energia (power-off, stand-by, Hibernate, etc.) e notifica motoristas afetados com IRPs especiais (Power IRPs).
- Monitor de Referência de Segurança (SRM)
- A principal autoridade para fazer cumprir as regras do subsistema integrante de segurança de segurança. Ela determina se um objecto ou de recursos pode ser acedida, por meio da utilização de listas de controle de acesso (ACLs), que são elas mesmas composta de entradas de controle de acesso (ACEs). ACE conter um identificador de segurança (SID) e uma lista de operações que a ACE dá um seleto grupo de curadores-uma conta de usuário, conta de grupo, ou identifique-sessão permissão (permitir, negar ou auditoria) para esse recurso.
- GDI
- O Graphics Device Interface é responsável por tarefas como desenhar linhas e curvas, tornando fontes e manipulação paletas. O Windows NT 3.x série de lançamentos havia colocado o componente GDI no modo de utilizador Cliente / Server Runtime Subsystem, mas esta foi transferida para modo kernel com o Windows NT 4.0 para melhorar a performance gráfica.
Núcleo
O kernel fica entre o HAL e do Executivo e fornece sincronização de multiprocessador, linha e interromper a programação e expedição, e manuseio de exceção armadilha e despachando; também é responsável por inicializar drivers de dispositivo na inicialização que são necessários para obter o sistema instalado e funcionando operacional. Ou seja, o kernel executa quase todas as tarefas de um tradicional microkernel; a distinção rigorosa entre Executivo e Kernel é o remanescente mais proeminente do projeto microkernel original, e documentação de projeto histórico consistentemente se refere à componente do kernel como "o microkernel".
O kernel frequentemente interage com o gestor do processo. O nível de abstração é tal que o kernel nunca chama para o gerente de processo, apenas o contrário (com exceção de um punhado de casos de canto, ainda nunca ao ponto de uma dependência funcional).
Drivers de modo kernel
Windows NT utiliza de modo kernel drivers de dispositivo para ativá-lo para interagir com dispositivos de hardware. Cada um dos condutores tem bem definido rotinas do sistema e rotinas internas que exporta para o resto do sistema operacional. Todos os dispositivos são vistos por código de modo de usuário como um objeto de arquivo no gerenciador de I / O, embora ao que eu próprio gerenciador de E / S nos dispositivos são vistos como objetos de dispositivo, que ele define como qualquer arquivo, dispositivo ou objectos de controlador. Drivers de modo kernel existem em três níveis: os drivers mais alto nível, intermediários e drivers de baixo nível. Os drivers de alto nível, como drivers de sistema de arquivos para FAT e NTFS, contar com drivers intermediários. Drivers intermediários consistem em condutores ou função-piloto principal para um são opcionalmente imprensado entre controladores de filtro de nível inferior e superior que do dispositivo. O driver de função, em seguida, depende de um driver de barramento ou um motorista que os serviços de um controlador de barramento, adaptador ou-ponte que pode ter um driver de filtro de ônibus opcional que fica entre si eo motorista função. Drivers intermediários contar com os controladores de nível mais baixo para a função. O Windows Driver Model (WDM) existe na camada intermédia. Os controladores de nível mais baixo são ou legado drivers de dispositivo do Windows NT que controlam um dispositivo diretamente ou pode ser um barramento de hardware PnP. Esses drivers de nível inferior controlar diretamente o hardware e não dependem de quaisquer outros drivers.
Camada de abstração de hardware
O Windows NT camada de abstracção de hardware, ou HAL, é uma camada entre o hardware físico do computador e o resto do sistema operacional. Ele foi projetado para esconder as diferenças de hardware e, portanto, fornecer uma plataforma consistente em que o kernel é executado. O HAL inclui código específico de hardware que controla as interfaces I / O, controladores de interrupção e vários processadores.
No entanto, apesar de seu propósito e local designado dentro da arquitetura, o HAL não é uma camada que fica inteiramente abaixo do kernel, a maneira como o kernel fica abaixo do Executivo: todas as implementações de HAL conhecidos dependem em alguma medida no kernel, ou mesmo a Executivo. Na prática, isto significa que o kernel e HAL variantes vêm em conjuntos que são especificamente projetados para trabalhar em conjunto correspondentes.
Em particular hardware abstração não envolve abstraindo o conjunto de instruções, que geralmente cai sob o conceito mais amplo de portabilidade. Abstrair o conjunto de instruções, quando necessário (como para lidar com as várias revisões do conjunto de instruções x86, ou emular um co-processador matemático em falta), é realizada pelo kernel, ou via virtualização de plataforma.