1. Sistemas Operacionais 1.1. Conceitos Básicos de Sistema Operacional Em torno de um computador, existem usuários com problemas para serem resolvidos. Por exemplo, um usuário precisa editar texto, enquanto outro precisa fazer a contabilidade da empresa. O problema de cada usuário será resolvido por um programa específico. No exemplo, um editor de textos e um sistema de contabilidade. O dispositivo físico capaz de executar esses programas é o hardware do computador. Os programas possuem muito em comum. Por exemplo, tanto o editor de texto quanto a contabilidade precisam acessar o disco. A forma de acesso aos periféricos é a mesma para todos os programas. Para um melhor aproveitamento do hardware, vários usuários compartilham simultaneamente o computador. Entretanto, os programas podem apresentar necessidades conflitantes, pois disputam os recursos do equipamento. Por exemplo, o editor de texto e a contabilidade podem querer utilizar, ao mesmo tempo, a única impressora disponível. O sistema operacional é uma camada de software colocada entre o hardware e os programas que executam tarefas para os usuários. Essa visão de um sistema computacional é ilustrada na figura abaixo. O sistema operacional é responsável pelo acesso aos periféricos. Sempre que um programa necessita de algum tipo de operação de entrada e saída, ele a solicita ao sistema operacional. Dessa forma, o programador não precisa conhecer os detalhes do hardware. Informações do tipo “como enviar um caractere para a impressora” ficam escondidas dentro do sistema operacional. Ao mesmo tempo, como todos os acessos aos periféricos são feitos através do sistema operacional, ele pode controlar qual programa está acessando qual recurso. É possível, então, obter uma distribuição justa e eficiente dos recursos. Por exemplo, a divisão do espaço em disco entre os usuários é feita pelo sistema operacional. Ela pode ser feita, considerando-se dois aspectos: a eficiência no acesso ao disco e a ocupação equilibrada do disco pelos usuários. 1 O sistema operacional não resolve os problemas do usuário final. Ele não serve para editar texto, nem faz a contabilidade da empresa. Entretanto, através dele, podemos obter uma maior eficiência e conveniência no uso do computador. A eficiência é obtida através do compartilhamento dos recursos. A conveniência é obtida através de uma interface mais confortável para a utilização dos recursos computacionais. Normalmente, o processador está executando programas de usuário. Para isso que o computador foi comprado. Somente quando ocorre algum evento especial, o sistema operacional é ativado. Dois tipos de eventos ativam o sistema operacional: uma chamada de sistema ou uma interrupção de periférico. Uma chamada de sistema corresponde a uma solicitação de serviço por parte do programa em execução. Primeiramente, deve ser verificada a legalidade da solicitação. Por exemplo, um pedido para que arquivos de outros usuários sejam destruídos deverá ser recusado. No caso de uma solicitação legal, ela é realizada, e a resposta é devolvida ao programa. Em função das chamadas de sistema, o sistema operacional envia comandos para os controladores dos periféricos. O controlador deve informar ao sistema operacional quando a operação estiver concluída. Isso é feito através de uma interrupção. Quando a interrupção acontece, o processador pára o que está fazendo e passa a executar uma rotina específica do sistema operacional. Como a interrupção do periférico avisa o término de alguma operação de entrada e saída, possivelmente uma chamada de sistema foi concluída. Nesse caso, um programa à espera de resposta poderá ser liberado. Um sistema operacional (SO) é um conjunto de rotinas executadas pelo processador, da mesma forma que qualquer outro programa. Sua função principal é controlar o funcionamento do computador, como um gerente dos diversos recursos disponíveis no sistema. Funções principais do SO: ª Facilidade de acesso aos recursos do sistema ª Compartilhamento de recursos de forma organizada e protegida 1.2. Máquina de Níveis Usuário Sistema Operacional Hardware Aplicativos Utilitários Sistema Operacional Linguagem de Máquina Microprogramação Dispositivos Físicos Hardware 2 1.3. Histórico A evolução dos SO está relacionada ao desenvolvimento dos equipamentos. 1.3.1. Primeira Fase (1945-1955) ª Durante a Segunda Guerra. ª ENIAC – 18mil válvulas, 70 mil resistores, 30 toneladas. Consumia 140 KWatts, 5.000 adições por segundo. ª Para trabalhar nessas máquinas, era necessário conhecer profundamente o funcionamento do hardware, pois a programação era feita em painéis, através de fios, utilizando linguagem de máquina. ª UNIVAC I – criado para o senso americano de 1950. ª Nesta fase, ainda não existia o conceito de Sistema Operacional. 1.3.2. Segunda Fase (1956-1965) ª ª ª ª Criação do transistor e das memórias magnéticas. Surgimento das primeiras linguagens de programação: Assembly e Fortran. SO com seu próprio conjunto de rotinas para operações de E/S. Processamento batch. Cartões Perfurados Fita de Entrada Fita de Saída Processamento Processamento Processamento Fita de Entrada Fita de Saída Relatórios Inicialmente, os programas passaram a ser perfurados em cartões, que, submetidos a uma leitora, eram gravados em uma fita de entrada. A fita, então, era lida pelo computador, que executava um programa de cada vez, gravando o resultado do processamento em uma fita de saída. Ao término de todos programas, a fita de saída era lida e impressa. A esse tipo de processamento, onde um lote (batch) de programas era submetido ao computador, deu-se o nome de processamento batch. 1.3.3. Terceira Fase (1966-1980) ª Circuitos Integrados (CIs) e microprocessadores. ª Computadores de porte menor e baixo custo (minicomputadores). ª Conceitos de multiprogramação: compartilhamento de memória principal e processador. Permite que, enquanto um programa espera por uma operação de leitura/gravação, o processador executa um outro programa. 3 ª Substituição das fitas por discos magnéticos, permitindo a alteração na ordem de execução das tarefas que antes era puramente seqüencial: spooling. ª Foram adicionados terminais de vídeo e teclado para interação on-line do usuário. ª Multiprogramação (divisão da memória em partições, onde cada programa espera sua vez para ser executado e compartilhamento do processador) usando time-sharing (tempo compartilhado). ª Criação do UNIX (1969), escrito em linguagem C. 1.3.4. Quarta Fase (1981-1990) ª Integração em larga escala (LSI) e muito larga escala (VLSI). ª Surgimento dos microcomputadores PC (Personal Computer), dos sistemas DOS (Disk Operation System) e VMS (Virtual Memory System). ª Surgem as estações de trabalho (workstations) que, apesar de monousuárias, permitem que se executem diversas tarefas concorrentes, criando o conceito de multitarefa. ª Máquinas com mais de um processador, exigindo dos SO mecanismos de controle e sincronismo e possibilitando o multiprocessamento. ª Difusão das redes WAN, MAN e LAN com o desenvolvimento de protocolos de rede e sistemas operacionais para rede. 1.3.5. Quinta Fase (1991-2000) ª Grandes avanços em termos de hardware, software e telecomunicações. ª Evolução das aplicações, que necessitam cada vez mais de capacidade de processamento e armazenamento de dados. Sistemas especialistas, sistemas multimídia, banco de dados distribuídos, inteligência artificial são alguns exemplos da necessidade cada vez maior. ª Evolução da microeletrônica, ULSI (Ultra Large Scale Integration). ª Arquiteturas paralelas, baseadas na organização de multiprocessadores não convencionais. ª Processamento distribuído de forma que as funções do sistema operacional estejam espalhadas por vários processadores através de redes de computadores. ª Arquitetura cliente-servidor, aplicada basicamente a redes locais, passa a ser oferecida em redes distribuídas, permitindo que qualquer pessoa tenha acesso a todo tipo de informação, independente de onde ela esteja armazenada. ª Desenvolvimento de interfaces gráficas para os SO: Windows, Linux, etc. 4 A Evolução dos Sistemas Operacionais O Sistema Operacional é um conjunto de programas que permitem a criação e manutenção de arquivos, execução de programas e utilização de periféricos tais como: teclado, vídeo, unidades de disquete, impressora. O Sistema Operacional serve também de intermediador entre os aplicativos e o computador, pois é ele que coloca os programas na memória para que sejam executados. Vamos ver, então, um pouco da história dos Sistemas Operacionais para microcomputadores padrão IBM PC: • MS-DOS 1.0 e PC-DOS 1.0: Em 1981 surgiram os dois primeiros DOS, ou seja, "Disk Operating System" (Sistema Operacional de Disco). • MS-DOS 1.25 e PC-DOS 1.1: Nesta versão, foram acrescentados suporte a discos de dupla face e correção de "bugs"; foram amplamente distribuídos por OEMs além da IBM. • MS-DOS 2.0 e PC-DOS 2.0: Foram lançados em 1983, juntamente com o IBM PC/XT e nesta versão foram acrescentados suporte aos discos rígidos e à estrutura hierárquica de arquivos semelhante aos do UNIX / XENIX. • PC-DOS 2.1: Lançado com o PCjr e com correção de "bugs". • MS-DOS 2.01: Versão lançada com suporte internacional. • MS-DOS 2.11: Somente com correção de "bugs". • MS-DOS 2.25: Veio com suporte ao conjunto de caracteres estendidos. • MS-DOS 3.0 e PC-DOS 3.0: Lançados em 1984 juntamente com o PC/AT e foram acrescentados o suporte a discos flexíveis de 1.2 Mb e a discos rígidos maiores. • MS-DOS 3.1 e PC-DOS 3.1: Nesta versão foi acrescentado o suporte às redes da Microsoft. • WINDOWS 1.0: Em 1985, foi lançado o Windows, que na realidade não era um sistema operacional, mas somente uma interface gráfica com o usuário do MSDOS, ou seja, para que o Windows funcionasse, havia a necessidade de se carregar previamente o MS-DOS. • MS-DOS 3.2 e PC-DOS 3.2: Em 1986, tiveram acrescentado o suporte a discos de 3,5 polegadas. • MS-DOS 3.3 e PC-DOS 3.3: Em 1987, foram lançados juntamente com o PS/2 da IBM e possuíam amplo suporte a páginas de código fonte. • WINDOWS 2.0: Apareceu, também em 1987, mas com compatibilidade com o OS/2 Presentation Manager. • MS-DOS 4.0 e PC-DOS 4.0: Lançado em 1988, com suporte a volumes lógicos maiores do que 32 Mb; "shell" visual. 5 • MS-DOS 5.0: Lançado em 1989, com alguns recursos a mais. • MS-DOS 5.2: Com correção de bugs. • WINDOWS 3.0: Surgiu em 1990, para ser utilizado em computadores 286 e 386 e foi lançado em grande estilo, mas ainda não teve grande aceitação. • MS-DOS 6.0: Em 1993, possuía recursos para verificação do winchester e defragmentação (Defrag). • WINDOWS 3.1: Passou a ser mais conhecido e aceito. • MS-DOS 6.2: Última versão do MS-DOS lançada, tinha correção de "bugs". • WINDOWS 3.11 For Workgroups: Versão para ligação de computadores em rede, passou a ser utilizado pela grande maioria de usuários de microcomputadores. • WINDOWS 95: Em 1995, o Windows tornou-se verdadeiramente um Sistema Operacional, funcionando sozinho, sem a necessidade do MS-DOS. Foi quando o seu sucesso estourou. • WINDOWS NT: Sistema Operacional para Servidores de Rede. • WINDOWS 95 SE (Second Edition): Versão lançada para correção de bugs. • WINDOWS 98: Versão de aperfeiçoamento da versão 95, mas com uma novidade: passa a ser um aplicativo 32 bits. • WINDOWS 98 SE (Second Edition): Versão com correção de bugs. • WINDOWS 2000: Lançado em 2000, com correção de bugs, e suporte a redes, na realidade uma atualização do Windows NT. • Windows XP: Versão Home: O WinXP Home Edition é a versão indicada apenas para uso caseiro. Essa versão não é indicada para uso em estações (desktop) em empresas pois ela não tem importantes componentes utilizados nesse ambiente (controle de usuários, login em domínio, backup ...). Versão Professional: O WinXP Professional Edition é a versão indicada para uso como estações (desktop) em empresas e profissionais que trabalham em casa com Web. Na tabela abaixo você tem as principais diferenças entre o WinXP Home e WinXP Pro: WinXP Pro Win XP Home Nova interface gráfica Modo de Compatibilidade com Win9x, WinMe, WinNT e Win2000 Windows Media Player 8 Reverter Driver (Driver Rollback, que permite que se 6 utilize um driver antigo se o driver novo apresentar problemas) Clear Type (permite visualização mais nítida dos textos) Alternar usuário sem necessidade de fechar os arquivos abertos System Restore (permite restaurar as configurações do WinXP caso ele apresente problemas após a instalação de um aplicativo ou driver) Fim dos conflitos de DLL ICS (Internet Connection Sharing, que permite compartilhar a conexão da Internet na rede local) Gravação de CR-R/CD-RW embutido no sistema operacional Help integrado com a Internet e Knowledge Base da Microsoft Partições FAT32 e NTFS Controle de permissão de pastas e arquivos em partições NTFS Remote Desktop (permite acesso remoto a um computador com WinXP, permitindo que o usuário trabalhe nele como se estivesse ali presente) Arquivos e pastas Offline Multiprocessamento (aceita 2 processadores) Firewall embutido EFS (Encriptação de dados) Administração centralizada Windows Messenger (substituto do MSN Messenger) Diretivas de Grupos (Group Policy) Perfil móvel de usuários (Roaming User Profiles) Instalação e manutenção remota de software RIS (Remote Installation Service, que permite a instalação remota do WinXP quando não é possível instalá-lo via rede local) MUI add-on (Multi-language User Interface, que permite que se configure um idioma diferente do sistema operacional nos menus, help, caixas de diálogo ...) IIS 5.1 (Internet Information Services) Utilitário de Fax Logon em Domínio WinNT 7