Estrutura dos Sistemas Operacionais Adão de Melo Neto 1
2
3
SISTEMA OPERACIONAL(SO) DEFINIÇÃO É um conjunto de rotinas ou processos (executado pelo processador) que controla o funcionamento do computador como gerente dos diversos recursos do computador (processadores, memórias e dispositivos de entrada e saída). Facilita o acesso aos recursos do sistema Permite o compartilhamento de recursos de forma organizada PROCESSO Todo programa para ser executado gera um ou processos que são colocados na memória para ser executado pelo processador. Podemos definir processo como programa em execução. Exemplo: Firefox pode gerar vários processos 4
Sistema Operacional O Sistema Operacional é formado por um Conjunto de processos (denominado KERNEL) que oferece serviços aos usuários e suas aplicações 5
Listagem de alguns processos (rotinas) IDT USUÁRIO IDT PROCESSO Tempo de utilização do processador PRÁTICA: Abra o terminal de comandos e digite ps la para identificar processos sendo executadas. Entre esses processos existem os do Kernel do Sistema Operacional.
Serviços Oferecidos pelo Kernel Tratamento de interrupções e exceções; Criação, eliminação, sicronização, escalonamento e controle de processos Gerência da memória Gerência do sistema de arquivos. Gerências das operações de entrada e saída; Suporte a redes locais e distribuídas contabilização, auditoria e segurança do sistema O KERNEL de um Sistema Operacional é um Conjunto de processos que oferece serviços aos usuários e suas aplicações 7
System Calls (Nomenclaturas) Unix: system Call OpenVMS: system Services MS Windows: Application Program Interface (API) System Calls (ou chamadas de sistemas) são portas de acesso as rotinas do sistema (de acesso ao kernel). Programas (Firefox, por exemplo) para serem executados precisam acessar o kernel, (usar suas rotinas) e para isso fazem chamadas de sistema. 8
Arquiteturas do Kernel de um sistema operacional O projeto de um sistema operacional depende muito do hardware a ser utilizado e do tipo de SO que se deseja construir (tempo compartilhado, tempo real, etc) Primeiros sistemas operacionais Foram desenvolvidos em linguagem assembly (IBM OS/360) Nos sistemas operacionais atuais Grande parte escrito em linguagem C/C++ (MS Windows). Linguagem de alto nível Vantagem: O SO pode ser facilmente alterado em outra arquitetura de hardware (portabilidade do código) Desvantagem: Perca do desempenho 9
Arquiteturas do Kernel Define como código do Kernel é organizado e o interrelacionamento entre os seus diversos As principais arquiteturas dos Sistemas Operacionais são: Arquitetura monolítica (exemplo DOS) Arquitetura em camadas (exemplo LINUX e Window) Gerência de Máquinas virtuais Arquitetura microkernel (em pesquisa) 10
Gerência de Máquinas Virtuais Permite criar várias máquinas virtuais (VM virtual machine) independentes onde cada uma oferece uma cópia virtual do hardware. Sobre cada Máquina Virtual pode-se instalar um próprio sistema operacional (que gerencia o hardware virtual) distinto do sistema operacional que gerencia o hardware real. Aplicação Máquinas Virtuais SO UBUNTU FEDORA REDHAT Hardware Virtual Gerência das Máquinas Virtuais (virtual box por exemplo) WINDOWS 7 Hardware Real 11
Gerência de Máquinas Virtuais Vantagem Cria um isolamento total entre cada máquina virtual, oferecendo grande segurança para cada uma delas. Posso instalar um serviço em cada máquina virtual. Desvantagem: Necessidade de compartilhar e gerenciar recursos do hardware entre as diversas máquina virtuais. Cada hardware virtual consome recursos do harware real. Aplicação SO UBUNTU FEDORA REDHAT Hardware Virtual Gerência das Máquinas Virtuais WINDOWS 7 Hardware Real 12
HISTÓRICO DO LINUX Adão de Melo Neto
HISTÓRIA DO LINUX MULTICS, UNIX e MINIX : avós do GNU/LINUX (vamos explicar!!!) MULTICS (Ken Thompson): Em um encontro no MIT (Massachutets Institute Technology), cientistas da computação inclinaram-se a idéia de criar um sistema operacional TIME-SHARING (de tempo compartilhado), o MULTICS. O projeto era complexo e resultados não são atingidos. Ele perde força e as entidades patrocinadoras vão abandonando. Sonho de multiprocessamento vai morrendo e 1969 projeto é abandonado. Ken Thompson, ex-integrante do grupo que desenvolvia o MULTICS, continuou estudando o sistema
HISTÓRIA DO LINUX UNIX (Ken Thompson, AT&T) Ken Thompson decidiu criar um sistema operacional mais simples mantendo a mesma ideia do MULTICS, nascendo o UNICS que mais tarde passou a ser chamado de UNIX. AT&T resolveu patrociná-lo. O Unix era escrito em ASSEMBLY (uma linguagem de baixo nível muito complicada), o que gerava dificuldade pois o sistema operacional funcionava apenas em uma arquitetura. Ken Thompson tinha intenção de passar o Unix para uma linguagem de alto nível. Após algumas tentativas mal sucedida, surgiu a linguagem C, e o UNIX foi reescrito sob esta linguagem no ano de 1973.
HISTÓRIA DO LINUX Em 1983, a AT&T começou a comercializar o UNIX cobrando pelo seu uso e não mais disponibilizando o seu código fonte. MINIX (Andrew Tanembaum): Por não ter mais acesso ao seu código fonte, o professor universitário, ANDREWS TANEMBAUN, por fins educacionais, resolveu desenvolver um outro sistema operacional baseando no UNIX, o MINIX
HISTÓRIA DO LINUX Em 1984, Richard Stallman resolver CRIAR a FREE SOFTWARE FOUNDATION com proposta de lutar para que as pessoas tivessem acesso a softwares livres (livre acesso ao código fonte para modificar e distribuir) promovendo livre fluxo de ideias na área de software. Através da FREE SOFTWARE FOUNDATION foi criado o projeto GNU, que idealizada a criação de uma alternativa livre para cada software proprietário. Uma das metas era a criação de um sistema operacional completamente livre e que não poderia ter nenhuma parte do código do UNIX, uma vez que era fechado. Em 1984, liderados por Richard Stallman, um grupo de programadores começaram a desenvolver as principais peças de um sistema operacional e aplicativos diversos. Em 1991, o sistema operacional estava quase pronto, mas faltava sua parte mais importante, o seu núcleo (kernel).
HISTÓRIA DO LINUX Linus Torvalds, estudante de Ciência da Computação da Universidade de Helsink, resolveu criar o KERNEL de um sistema operacional baseado nas ideias do UNIX, cujo código fonte não era mais disponibilizado. Resolveu então construí-lo a partir do MINIX, tendo então divulgado a ideia na USENET (antiga Internet). Queria que todos os programadores que quisessem se envolver no projeto, auxiliassem-no a melhorar sua criação. A comunidade que o ajudou-o a desenvolver deu o nome de LINUX (uma contração de LINUS (idealizador) e UNIX (sistema em que o LINUX foi baseado). Em 1991 disponibilizou a primeira versão do Kernel criado por ele.
HISTÓRIA DO LINUX Mas o LINUX era apenas o kernel (ou núcleo do sistema operacional), operacional) faltava todo restante dos programas para funcionar como um sistema operacional completo. LINUX + GNU LINUX GNU