Sistema Operacional. História Sistema Operacional 1. QI Escolas e Faculdades Apostila de Linux - PDF
Download "Sistema Operacional. História Sistema Operacional 1. QI Escolas e Faculdades Apostila de Linux"
Maria Martini de Abreu
1 4 Capítulo 1 Sistema Operacional É uma coleção de programas que inicializa hardwares, fornece rotinas básicas para controle de dispositivos, mantém a integridade de um sistema. Um sistema operacional de um computador que é usado por muitas pessoas ao mesmo tempo, é um sistema complexo. Para tornar os sistemas operacionais mais fáceis de serem escritos, eles são construídos como uma série de módulos, cada módulo sendo responsável por uma função. O módulo principal é o Kernel (núcleo) Núcleo (Kernel em inglês - também conhecido como "executivo"): responsável pelo controle e programação de dispositivos de hardware, gerenciamento de memória, gerenciamento de processos, escalonamento de tarefas, comunicação entre processos. Gerenciador de processo: responsável pelo funcionamento dos programas. Escalonador (Scheduler, em inglês): decide qual processo será executado. Gerenciador de arquivo: cria e organiza diretórios e arquivos. História Sistema Operacional 1 Historicamente falando, o sistema operacional se divide em 4 gerações. A primeira geração de 1945 à 1955 é marcado pela época das válvulas e painéis de conectores. As máquinas construídas eram de calcular, enormes, ocupando salas inteiras com dezenas de milhares de válvulas, e eram muito mais lentas que as mais simples calculadoras de hoje. Naquele tempo um único grupo de pessoas projetava, construía, programava, operava e mantinha cada máquina. Toda a programação era feita em linguagem de máquina, frequentemente ligando com fios painéis de conectores para controlar as funções básicas da máquina. As linguagens de programação eram desconhecidas e ninguém nunca tinha ouvido falar de SOs. No início da década de 50 a rotina melhorou um pouco com a introdução dos cartões perfurados, tornando-se possível gravar programas em cartões e lê-los, em vez de usar cabos conectores. A segunda geração de 1955 à 1963 marca a fase dos transistores e sistemas de lote. Com a introdução dos transistores os computadores tornaram mais confiáveis, o bastante para serem fabricados e vendidos para clientes com expectativa de que continuariam a funcionar por tempo suficiente para realizar algum trabalho útil. Pela primeira vez estabeleceu-se uma distinção clara entre projetistas, construtores, operadores, programadores e o pessoal de manutenção. As máquinas eram guardadas em salas especiais com ar condicionado e equipes de operadores profissionais para 1 Resumo feito com base no site:
2 5 mantê-las funcionando. Para executar um programa ou conjunto de programas (job), um programador primeiro escrevia o programa em papel (em FORTRAN ou Assembly), e então o transformava em cartões perfurados. Nesta fase SO tipicos era o FMS (FORTRAN Monitor System) e o IBSYS da IBM. Na terceira geração de 1965 à 1980, a maioria dos fabricantes de computadores tinha duas linhas de produto distintas e totalmente incompatíveis. De um lado tinha-se os computadores científicos de grande escala, baseados em palavras, que eram utilizados para cálculos numéricos em ciência e engenharia. Por outro lado havia os computadores comerciais, baseados em caracteres, amplamente usados para classificar e para imprimir fitas para bancos e para companhias de seguro. Surgiu nesta geração um SO extraordinariamente complexo e grande. Consistia de milhões de linhas de linguagem assembler, escritas por milhares de programadores e com milhares de "bugs". Apesar disto o SO/360 e os sistemas operacionais semelhantes de terceira geração produzidos por outros fabricantes de computador realmente satisfizeram a maioria dos seus clientes. Outro importante desenvolvimento durante a terceira geração foi o crescimento fenomenal dos minicomputadores dando origem a toda uma nova indústria. O preço destas máquinas giravam em torno de 120 mil dólares e venderam como pãozinho quente da padaria. Um dos cientistas de computação da Bell Labs, Ken Thompson, descobriu um pequeno microcomputador que ninguém estava usando e começou a escrever uma versão simplificada monousuária que evoluiu para o SO UNIX, que se tornou popular no mundo acadêmico, entre órgãos do governo e entre muitas empresas. Por fim, a quarta geração de 1980 até os dias atuais, O desenvolvimento dos circuitos LSI (Large Scale Integration - Integração em Larga Escala), chips contendo milhares de transistores por cm2 de silício foi o alvorecer da era do computador pessoal. Assim como os microcomputadores da terceira geração possibilitou que cada departamento em uma empresa ou uma universidade tivesse seu computador, o microprocessador possibilitou que as pessoas tivessem seu computador pessoal. Os primeiros foram chamados estações de trabalho. Dois sistemas operacionais inicialmente dominaram a cena do computador pessoal e da estação de trabalho: o MS-DOS da Microsoft e o UNIX. O MS-DOS era amplamente usado na IBM PC e em outras máquinas que empregavam CPU 8088 e seus sucessores80286, e Mais tarde o Pentium e o Pentium PRO. Depois veio o sucessor do MS-DOS, o Windows, originalmente rodando sobre o DOS. Neste sentido os Windows 3.1, 3.11 era mais como uma shell do que um SO. Mas em 1995 foi lançada uma versão independente, o Windows95, de modo que o MS-DOS deixou de ser utilizado com suporte do Windows. O UNIX é outro importante concorrente que dominante em estações de trabalho e em outros computadores topo de linha, como os servidores de rede. Um desenvolvimento importante que começou durante os meados da década de 80 é o crescimento de redes de computadores
3 6 pessoais, executando sistemas operacionais de rede e sistemas operacionais distribuídos. Em um sistema operacional de rede, os usuários estão cientes da existência de múltiplos computadores e podem se comunicar e podem se conectar com máquinas e copiar arquivos de uma máquina para outra. Cada máquina executa localmente seu SO e tem seu próprio usuário (ou usuários). Os SO de rede não são fundamentalmente diferentes dos SO monoprocessadores. E claro que eles necessitam de uma interface de rede e de algum software de baixo nível pra controlá-la, bem como programas para permitir conexões remotas e acesso a arquivos remotos. Entretanto tal condições não mudam essencialmente a estrutura de um SO. Linux O Linux é uma versão gratuita do UNIX desenvolvida inicialmente por Linus Torvalds na Universidade de Helsinque, na Finlândia, com a ajuda de muitos programadores UNIX espalhados pela Internet. Ele foi originalmente desenvolvido como um projeto de passatempo por Linus Torvalds. Foi inspirado no Minix, um pequeno sistema UNIX desenvolvido por Andy Tanenbaum. As primeiras discussões sobre o Linux eram centradas no desenvolvimento de uma versão acadêmica do UNIX para usuários do Minix que queriam um sistema operacional com mais recursos. O desenvolvimento inicial do Linux - na época feito todo em assembly - lidou principalmente com os recursos multitarefa. Nenhum anúncio jamais foi feito do lançamento da versão Os códigos fonte não eram sequer executáveis. Continham apenas os rudimentos do kernel e assumiam que você tinha acesso a uma máquina Minix para compilar e experimentar com eles. Em outubro de 1991 Linus anunciou a primeira versão "oficial" do Linux, que era a versão Nesta fase, Linus conseguia rodar o bash (o Bourne Again Shell do GNU) e o GCC (o compilador C do GNU), mas bem pouco além disto. Novamente, tratava-se de um sistema para hackers. O foco principal era o desenvolvimento do kernel - questões como suporte a usuários, documentação e distribuição nem haviam sido levantadas. Após a versão 0.03, Linus subiu o número de versão para 0.10, já que mais pessoas estavam trabalhando no projeto. Depois de várias outras revisões, Linus subiu o número de versão para 0.95 em março de 1992, refletindo suas expectativas que o sistema estava quase pronto para um lançamento oficial. (De modo geral, um software não recebe o número de versão 1.0 até que esteja teoricamente completo ou livre de bugs). Quase um ano e meio depois, no final de dezembro de 1993, o kernel do Linux ainda estava na versão 0.99, lentamente se aproximando de 1.0.
4 7 Distribuições existentes do Linux Distribuição Linux é um sistema operacional Unix-like incluindo o kernel Linux e outros softwares de aplicação, formando um conjunto. Distribuições (ou distros ) mantidas por organizações comerciais, como a Red Hat, Ubuntu, SUSE e Mandriva, bem como projetos comunitários como Debian e Gentoo montam e testam seus conjuntos de software antes de disponibilizá-los ao público. Como o Linux e a maior parte dos softwares incluídos em distribuições são livres, qualquer organização ou indivíduo suficientemente motivado podem criar e disponibilizar (comercialmente ou não) a sua própria distribuição. Isso faz com que hoje haja registro de mais de 300 distribuições ativamente mantidas, embora menos de 20 delas sejam largamente conhecidas. Algumas distribuições populares oferecem (como opção ou como seu único modo de operação) a possibilidade de execução em modo Live CD, que permite o uso integral do Linux sem instalação ou alteração dos dados armazenados no disco rígido do computador: o sistema roda integralmente a partir de um CD-ROM desde o momento em que o computador é ligado. Exemplos de Live CDs bastante conhecidos são o alemão Knoppix e o brasileiro Kurumin. Software livre O software livre nos da muita liberdade, as mais importante são: - De executar o software para qualquer propósito - De estudar como o programa funciona e adaptá-lo para suas necessidades - De acesso ao código fonte - Para redistribuir cópias - De melhorá-lo e lançar suas melhorias ao público Características do Linux - O Linux convive tranqüilamente com outros SO's instalados no mesmo HD (disco rígido); - Permite fazer conectividade com outras plataformas; - O sistema de arquivos utilizado pelo Linux é inteligente evitando assim a fragmentação dos mesmos; - Utiliza permissões de acesso a arquivos, diretórios e programas, o que faz o sistema ser considerado muito seguro. - Escrito em linguagem C. - Disponibilidade de código fonte: adaptação para as necessidades do usuário
5 8 - Distribuição livre nos termos da GNU, desenvolvida pela Free Software Foundation para este projeto que especifica uma série de regras para a distribuição e modificação de software livre. Livre, neste sentido, refere-se a distribuição, não ao custo - Multiusuário - Multitarefa - Gerenciamento de memória eficiente - Permissões de acesso a arquivos,diretórios e programas - Acessa arquivos gravados em par ções formatadas em outros sistemas de arquivos (FAT, NTFS) Hardware necessário Os requisitos básicos para a instalação de um sistema Linux como o Ubuntu a nível de hardware são: - Processador: 700MHz; - Memória RAM: 512MB; - Disco: 4GB; - Placa Gráfica: qualquer placa gráfica (funcionamento do sistema de efeitos visuais poderá estar condicionado conforme a placa gráfica) Linux no mercado Pesquisa feita no ano de 2011 com 5mil empresa com 10 ou mais funcionário em todo o Brasil, trecho de[idgnow.uol.com.br/ ]: ( )A pesquisa levantou também o porcentual de empresas que utilizam sistema operacional de código aberto, como Linux. Esse tipo de sistema está presente em 30% das empresas pesquisadas entre as que tem 250 funcionários ou mais, o índice sobe para 65%. Dos que adotam sistemas de código aberto, 57% os usam como servidor, 20% como cliente e 21% como ambos. Ambientes de trabalho No Linux temos dois tipos de ambiente de trabalho, o modo gráfico e o modo texto. O X é o servidor gráfico, responsável pelo acesso a placa de vídeo e as imagens que são mostradas no nosso monitor. Mesmo no modo gráfico, temos acesso aos recursos do modo texto. O consola é usado para rodar uma instância do bash dentro do modo gráfico, permitindo executar todos os aplicativos de linha de comando e scripts.
6 9 No modo texto, também chamado de Shell, é responsável de ser o intermediário entre o sistema de exploração e o utilizador graças às linhas de comando escritas por este. O seu papel consiste assim em ler a linha de comando, interpretar o seu significado, executar o comando, seguidamente devolver o resultado às saídas.