Sistemas Operacionais Prof:. Msc. Arimatéia Junior [email protected] Fortaleza-2011 Objetivos gerais Introdução e Histórico; Entendendo um sistema Operacional Fundamentos do Linux; Introdução O que é um sistema operacional?? Introdução O que é um sistema operacional?? 1. Sistema operacional é um software que permite a utilização da máquina por outros programas, ativando-a e gerenciando a memória e os dispositivos de entrada e saída, por exemplo. Além disso, ele define o ambiente de trabalho do usuário no computador. 2. É um conjunto de programas (rotinas) executado pelo processador que estabelece uma interface de contato do usuário com o computador e do computador com o usuário. 3. É o primeiro programa que instalamos num micro e o primeiro a ser carregado na memória quando o computador é ligado. Introdução O que é um sistema operacional?? Introdução Características desejáveis de um S.O: 1. 2. 3. 4. Eficiência (baixo tempo de resposta); Confiabilidade (poucas falhas); Facilidade de manutenção e correção de erros; Pequena dimensão (baixa ocupação da memória). Introdução Função de um S.O: Função do SO é trabalhar de modo cooperativo com funções de administrar os recursos do hardware (memória, processador e periféricos) e auxiliar na execução dos programas do usuário oferecendo a ele uma interface de alto nível. Histórico Entre 1965 e 1969, General Electric, Bell Labs e MIT participaram do desenvolvimento conjunto do sistema Multics, que se propunha a oferecer serviços de time-sharing para uso geral. Voltado inicialmente para o computador mainframe GE-645, o Multics se mostrou um sistema muito grande e complexo. Além disso, ele exigia recursos demais para os computadores da época. Por essas dificuldades, o Bell Labs se retirou do projeto em 1969. Alguns membros do grupo do Bell Labs, liderados por Ken Thompson, começaram a trabalhar por conta própria num sistema menos bem menos ambicioso, que acabou resultando no UNIX. Histórico A primeira versão do UNIX foi desenvolvida para um computador PDP-7 e foi totalmente escrita em linguagem assembly. Essa versão, embora fosse monousuário, já implementava um sistema de arquivos, um mecanismo para controle de processos, diversos utilitários e um interpretador de comandos. O nome UNIX foi cunhado por Brian Kerning em 1970, como um trocadilho sobre "Multics". O sistema foi em seguida portado para o PDP-11 (24k bytes de memória, 512k de disco rígido), ainda com sérias limitações, mas já se mostrando útil em aplicações de processamento de texto para a área de patentes do Bell Labs. A linguagem C, criada por Denis Ritchie, foi usada no desenvolvimento de uma nova versão do sistema por volta de 1973. Essa nova versão já oferecia o recurso de multiprogramação, permitindo que o computador fosse compartilhado por um grupo de pessoas. Histórico O fato de estar escrito numa linguagem de alto nível possibilitou o porte do UNIX para outras plataformas e com isso o sistema se espalhou por outros laboratórios e universidades. Em 1980, a Universidade da Califórnia em Berkely foi financiada pelo Departamento de Defesa para desenvolver uma versão de UNIX voltada para os novos sistemas de computação distribuída. Esse esforço resultou no sistema 4.1 BSD, baseado originalmente numa máquina VAX (DEC). No início dos anos 80, a Microsoft, oferecia uma versão comercial do UNIX, denominada XENIX, baseada em micro computadores compatíveis com o IBM PC, de 16 bits (8086, 80286). A própria AT&T, em 1982 passou a oferecer ao mercado o UNIX System III, que evoluiu para o System V. Ao ser proibida de atuar no mercado de computação em consequência das legislação antitruste americana, a AT&T licenciou o System V para outras empresas e instituições de pesquisa. A Sun Microsystems desenvolveu a sua versão do UNIX, denominada SunOs, com base no 4.2 BSD, de Berkeley. Histórico No final dos anos 80, havia duas grandes "famílias" de sistemas UNIX, incompatíveis entre si: 4.3 BSD e System V Release 3 . Além disso, cada fabricante incorporava suas próprias melhorias. Varias tentativas foram feitas no sentido de se padronizar as interfaces do UNIX, principalmente no sentido de permitir o porte das aplicações para as várias versões do sistema. Dessas tentativas, a que pode ser considerada bem sucedida foi patrocinada pelo IEEE Standards Board, que definiu o padrão POSIX. Esse padrão define basicamente o conjunto de funções de biblioteca que todo sistema que o adote deve oferecer aos programas de aplicação. Teoricamente, as aplicações construídas com base nessas funções podem ser executadas em qualquer sistema que siga o padrão POSIX. Histórico Histórico O Portable Operation System IX (POSIX) é uma família de normas definidas pelo IEEE e designada formalmente por IEEE 1003; Seu objetivo consiste em garantir a portabilidade do código-fonte de um programa a partir de um sistema operacional que atenda as normas POSIX para outro sistema POSIX; Desta forma, as regras atuam como uma interface entre sistemas operacionais distintos; A designação internacional da norma é ISO/IEC 9945. Tópicos em Sistemas Operacionais (LINUX) Prof:. Msc. Arimatéia Junior [email protected] Fortaleza-2011