Organização do sistema operacional Linux O Linux é um sistema operacional do tipo Unix, livremente distribuído. O nome Linux é uma combinação do nome de seu idealizador, Linus Torwalds com Unix. A primeira versão do Linux se tornou disponível em 1991. Em 1994 foi tornada pública a primeira versão estável do sistema. A evolução e a manutenção do sistema é realizada por voluntários, que trabalham no desenvolvimento, na depuração de erros e testando novas versões. O linux é hoje um moderno sistema operacional do tipo Unix, com suporte para: o Multitarefa; o Multiprocessamento; o Diferentes arquiteturas; o Diferentes file systems (MS/DOS, Ext2, Ext3, ..) o Permite a carga de novos módulos; o IPC (pipes, sockets,..) o Um grande número de periféricos o Gerência de memória com paginação por demanda o Bibliotecas dinâmicas e compartilhadas o TCP/IP; o Etc. O sistema operacional Linux é formado por seis grandes níveis lógicos, apresentados na figura abaixo. As funções de cada subsistema são: 1. Escalonador (sched), responsável por selecionar processos para execução e entregar o processador ao processo selecionado. 2. Gerencia de memória, que permite a existência de vários processos na memória principal. O MM implementa memória virtual, que permite a execução de processos maiores que a memória real. 3. Gerencia do sistema de arquivos. Um conceito implementado é o de independência do dispositivo, que cria uma interface uniforme, comum a todos os diferentes tipos de dispositivos. Implementa também diferentes formatos de arquivos, compatíveis com outros sistemas operacionais. 4. Interface de rede, que permite o acesso as redes de comunicação. 5. Inter-Process Communication (IPC), subsistema que implementa os diversos mecanismos de comunicação entre processos. 6. Entrada e Saída, formado pelos drivers dos diferentes periféricos. Organização do sistema operacional Windows NT Windows NT designa uma família de sistemas operacionais da Microsoft, que evoluiu a partir de 1993, ano da sua primeira versão, conforme apresentado a seguir: o NT 3.1 Windows NT 3.1 Workstation (denominado Windows NT), Advanced Server de 1993 ; o NT 3.5 Windows NT 3.5 Workstation, Server de 1994; o NT 3.51 Windows NT 3.51 Workstation, Server de 1995; o NT 4.0 Windows N T 4.0 Workstation, Server, Server Enterprise Edition, Terminal Server, Embedded de 1996; o NT 5.0 Windows 2000 Professional, Server, Advanced Server, Datacenter Server de 2000; o NT 5.1 Windows XP Home, Professional, IA-64, Media Center (2002, 2003, 2004, 2005), Tablet PC, Starter, Embedded, de 2001; o NT 5.2 Windows Server 2003 Standard, Enterprise, Datacenter, Web, small Business Server de 2003; o NT 5.2 Windows XP (x64) Professional x64 Edition de 2005; o NT 6.0 Windows Vista Starter, Home Basic, Home Premium, Business, Enterprise, Ultimate Empresas: November 2006. Lançamento oficial: 30 de Janeiro de 2007. A arquitetura do Windows NT é fortemente baseada na idéia de microkernel, na qual componentes do sistema implementam funcionalidades que são tornadas disponíveis a outros componente. Utiliza também o conceito de níveis lógicos de maneira que cada nível pode utilizar funcionalidades do nível inferior e oferece funcionalidades ao nível superior. O conceito de objetos também é utilizado, sendo que arquivos, dispositivos de I/O, etc. são implementados por objetos e acessados por métodos a eles associados. A estrutura do Windows NT possui duas partes: modo usuário, formada pelos programas de aplicação e pelos subsistemas protegidos (servidores) do sistema, e o modo kernel, chamado de executivo. Os subsistemas protegidos de ambiente fornecem API’ s específicas dos sistemas operacionais suportados. Existem subsistemas (servidores) Win32, POSIX, Win16, OS/2 e MS-DOS. A figura a seguir mostra um servidor Win32 se comunicando com um cliente Win32 através do Executivo do NT, e um servidor POSIX, a espera de solicitações de clientes. O subsistema Win32 torna disponível aos demais subsistemas a interface gráfica do Windows NT e controla todas as entradas e saídas das aplicações, independentemente da API utilizada. Cada subsistema protegido fornece uma API que um programa de usuário pode chamar. Quando um programa de usuário faz uma chamada de sistema, uma mensagem contendo a requisição é gerada e enviada para o servidor apropriado através do mecanismo denominado LPC (Local Procedure Call). O Executivo do NT é o kernel do sistema. Possui funções para Gerenciar objetos, Gerenciar processos, Implementar LPC, Gerenciar memória, Tratar interrupções, escalonar processos, Gerenciar I/O, gerenciar os drivers do sistema e gerenciar memória cache. O sistema possui a HAL, (Hardware Abstration Level), uma camada situada entre o executivo e o hardware no qual o sistema está sendo executado. Neste nível encontra-se o código dependente do hardware. Todo o restante do sistema é escrito em C.\ A figura a seguir mostra a arquitetura do NT.