Programação de Sistemas



Documentos relacionados
Sistema Operacional Linux - História

16:21:50. Introdução à Informática com Software Livre

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

PLANO DE AULA. Ambiente Operacional Unix Profa. Morganna

Introdução a Sistemas Abertos

Introdução ao Sistema UNIX

GNU/LINUX. O exemplo de software livre

Estudo de Caso II: LINUX

Introdução ao Sistema Linux

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

Apontamentos do livro de AI Linux. 1.5 Modo texto e modo gráfico

Sistema Operacional LINUX

SISTEMA OPERACIONAL & SOFTWARE LIVRE

Sistema Operativo Linux

Introdução ao Linux: Parte I

Roteiro. Administração de Sistemas. Administração de Sistemas. discutir algumas regras básicas para melhorar a convivência e o aproveitamento do curso

4. Conceitos Básicos de Computação: Sistemas Operacionais

Informática I. Aula Aula 19-20/11/06 1

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Curso de Linux Básico com o Linux Educacional

Noções de Software. André Aziz Francielle Santos

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Curso básico em técnicas de Manutenção para activistas comunitários

Referencial do Módulo B

Estes apontamentos das aulas teóricas são da autoria de Pedro Vasconcelos (2007) tendo sido adaptados e modificados por Armando Matos (2010)

UNIX & Linux. Histórico, distribuição licença, características. Taisy Weber

História. Sistema Operacional

SOP Sistemas Operacionais Módulo 03: História e Evolução

Administração de Sistemas Operacionais de Rede Linux. Prof. Michel Moron Munhoz

Sistema Operacional Unidade 1 Introdução aos Sistemas Operacionais GNU/Linux. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Programação de Sistemas

Programação de Sistemas

Aula 01. Introdução ao Linux

06/06/2013. O que é Software de Sistema? Sistema Operacional (SO) Tipos de Software de Sistema. Fatia de Mercado :: SO Desktop

Sistema operativo Aula 1

Linux, Windows, Antivírus, Teclado e .

Everson Scherrer Borges João Paulo de Brito Gonçalves

Administração de Sistemas Operacionais

Introdução ao Linux. Professor Breno Leonardo G. de M. Araújo

Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti

AULA 1. Bruno L. Albrecht Felipe A. Chies Lucas F. Zawacki. PET Computação UFRGS

Prof. Jefferson Costa

Escola Básica 2, 3 de Lamaçães Planificação Anual 2007/08 Tecnologias de Informação e Comunicação

NÚCLEO DE CIDADANIA DIGITAL Caminho Livre para o novo mundo! Conceitos básicos de Linux.

PROVA DE EQUIVALÊNCIA À FREQUÊNCIA MATRIZ

Mini curso de GNU/Linux

COMPETÊNCIAS A DESENVOLVER CONTEÚDOS. Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO. Unidade de Ensino/Aprendizagem 1 O SISTEMA OPERATIVO UNIX/LINUX

Kernel Linux. Trabalho Realizador Por: Tiago Conceição Nº Representação artística do núcleo Linux

O AMBIENTE DE TRABALHO DO WINDOWS

Introdução aos Computadores

Curso Tecnológico de Informática Matriz de Exame de Equivalência de Tecnologias Informáticas Prova Prática - Código 259

Instalação e Configuração de Servidores Linux Server. Prof. Alex Furtunato

Principais Sistemas Operacionais. Prof. Fernando Nakayama de Queiroz

Aula 01 Visão Geral do Linux

Curso Introdução ao Linux. Desmistificando o Software Livre. Nícholas André nicholas@iotecnologia.com.

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Universidade Federal da Fronteira Sul Campus Chapecó Sistema Operacional

SCO UNIX. conhecida por vender três variantes de Unix para os processadores Intel x86: Xenix, SCO UNIX, e o UnixWare.

Projecto SDAC Sistema Operativo Open Source. Curso: Técnico de Gestão de Equipamentos Informáticos

Laboratório de Redes de Computadores e Sistemas Operacionais

UFRJ IM - DCC. Sistemas Operacionais I

First Step Linux. Instalação do VirtualBox Para instalar o software VirtualBox siga os seguintes passos :

Objetivos do Curso. Organização do Curso. Apresentação do Curso. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Componentes de um Sistema de Operação

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

Aspectos de Sistemas Operativos

MC102 Algoritmos e Programação de Computadores

SOFTWARE. A parte lógica do Computador. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Novembro de 2006

Programação de Sistemas

Gerenciamento de Boot

Introdução à Programação Aula 1 Apresentação

Projeto de extensão Linux no Campus

Desenvolvimento para Sistemas Embarcados (CEA 513) Conceitos Gerais

Escola Secundária de Emídio Navarro

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Windows NT 4.0. Centro de Computação

Sistemas Embarcados. Filesystem Hierarchy Standard (FHS) Root filesystem. Aula 06

Software que fornece uma interface entre o computador e o usuário. É uma coleção de programas que:

Sistema Operacional. História Sistema Operacional 1. QI Escolas e Faculdades Apostila de Linux

Capítulo 8. Software de Sistema

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Software de sistema Software aplicativo

ISCAP. Pág. 1. Ana Paula Teixeira

Martin Vincent Bloedorn. GNU/Linux

História dos SOs. Tópicos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas Operacionais

Escola Profissional Vasconcellos Lebre

Sistemas operativos unix

ESTUDO DE CASO WINDOWS VISTA

Administração de Redes Linux. Unidade 1 - LINUX

Curso Técnico de Informática de Sistemas

Transcrição:

Programação de Sistemas Breve descrição do Linux Programação de Sistemas Linux : 1/27 História do UNIX (1) [1964] Bell Labs e MIT desenvolvem Multics- MULTiplexed Information and Computing Service para computador GE Ficheiros organizados em árvore. [1969] Ritchie e Thompson reformulam Multics para o minicomputador Digital PDP-7 (Programmed Data Processor, 18 bits) com nome Unix. Ritchie Operações básicas do SO agrupadas num núcleo ( kernel ) Thompson Intrepretador de comandos ( Shell ) permite utilizador com reduzidos conhecimentos informáticos usar o computador. [1973] Unix reprogramado em C para PDP-11 (exemplo com periféricos). Programação de Sistemas Linux : 2/27

História do UNIX (2) UNIX torna-se muito divulgado, porque: PDP-11s adquiridos às toneladas pelas Universidades (cada um ocupa espaço menor que um frigorífico), Unix disponibilizado gratuitamente (e codificado na linguagem C- acessível em comparação com assembly) Desenvolvimento de aplicações gratuitas (comunicação entre computadores, aplicações científicas, ) reforçam popularidade do Unix. Linhas de desenvolvimento do Unix 1975: University of California, Berkeley (BSD), derivado da versão 6 1983: Bell Labs/ATT (System V) Programação de Sistemas Linux : 3/27 Variantes do UNIX (1) 1970 1980 1990 2000 BSD BSD (Berkeley Software Distribution) SunOS Free BSD Solaris Next Step MacOS Xenix GNU Linux/GNU Minix Unix Sistema V HP-UX AIX (IBM) SCO Programação de Sistemas Linux : 4/27

Variantes do UNIX (2) Quando a IBM desenvolveu o PC, a Microsoft vendia licenças do UNIX. Como o PC não possuia memória suficiente a IBM contactou em 1980 Bill Gates, que sugeriu a Digital Research com o CP/M (Control Program for Microcomputers). Os gestores recusaram ceder o sistema operativo. A IBM contactou novamente Bill Gates. Este adquiriu à Seatle Computer Products por $50K os direitos de uma versão própria do CP/M e adaptou-a para o MS-DOS (MicroSoft Disk Operating System). A partir de 1980 a Microsoft manteve o Xenix para PCs. Em 1987 transferiu direitos para SCO-Santa Cruz Operation. Programação de Sistemas Linux : 5/27 POSIX (1) Em 1988 o IEEE-Institute of Electrical and Electronics Engineers publica uma família de normas designadas por POSIX- Portable Operating System Interface for unix. Norma é igualmente designada por ANSI/IEEE Std 1003. É uma interface API, formada por funções: o POSIX não distingue chamadas de sistema e bibliotecas. Exemplo de sistemas operativos em conformidade com a interface POSIX: Solaris, MacOS Nota: o Linux inclui muitas funções do POSIX, mas não é totalmente conforme. A versão base, POSIX.1 com os serviços centrais, foi estendida POSIX.1b com extensões em tempo-real (relógios,semáforos, ) POSIX.1c com fios de execução- threads. Programação de Sistemas Linux : 6/27

POSIX (2) Actualmente dividida em 3 partes (API núcleo, Comandos e utilitários, Testes de conformidade). A versão POSIX existente no Linux é indicada no ficheiro /usr/include/unistd.h /* POSIX Standard approved as ISO/IEC 9945-1 as of December 2001. */ #define _POSIX_VERSION 200112L As extensões são agrupadas em diversas classes: Código AIO SEM THR TMR XSI Extensão Entradas e saídas assíncronas Semáforos Fios de execução ( threads ) Temporizadores Extensão XSI Programação de Sistemas Linux : 7/27 POSIX (3) O POSIX requere 26 cabeçalhos.h Cabeçalho Descrição <unistd.h> Constantes simbólicas <arpa/inet.h> Definições Internet <net/if.h> Interfaces locais sockets <netinet/in.h> Família endereços Internet <sys/socket.h> Interface socket <sys/times.h> <sys/types.h> Temporização em processos Tipos de dados primitivos no sistema Figura 2-2, Advanced Programming in the UNIX Environment Programação de Sistemas Linux : 8/27

História do Linux (1) 1. [1987] Andy Tanenbaum cria um clone do Unix, designado Minix, para fins educativos. 2. [1991] Linus Torvalds, estudante da University of Helsinki, cria derivado do Minix para PC 386. From: torvalds@klaava.helsinki.fi (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready.i'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system(due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40),and things seem to work. This implies that I'll get something practical within a few months, andi 'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(. Programação de Sistemas Linux : 9/27 História do Linux (2) 3. [1992] versao 0.99 incorpora GNU (grupo de desenvolvimento de software livre, criado em 1983 por Richard Stallman do MIT-criador do Emacs) passando a designar-se Linux/GNU. 4. [1995] Versão 1.2 portada para computadores Digital e SUN 5. [1998] IBM, Compaq e Oracle anunciam apoio ao Linux. Desenvolvida a primeira interface gráfica KDE. Programação de Sistemas Linux : 10/27

Arquitectura do Linux (1) O Linux é estruturado em 3 níveis: 1. Utilizador, contendo programas desenvolvidos pelo utilizador e bibliotecas ( libraries ) 2. Núcleo ( kernel ), com Serviços de sistema (criação de processos, ) Subsistema de ficheiros Interfaces de periféricos Interpretador de comandos ( shell ) 3. Hardware Processador Memória Periféricos- device (discos, terminais, interface Ethernet, ) Programação de Sistemas Linux : 11/27 Arquitectura do Linux (2) Aplicações Bibliotecas Interface chamadas sistema 1.Utilizador 2.Núcleo Subsistema ficheiros Memória tampão Gestor de periféricos Caracteres Blocos Subsistema controlo de processos Gestão Comunicação Despacho memória inter-processos Controlador terminal Controlador disco 3.Hardware Programação de Sistemas Linux : 12/27

Distribuição do Linux (1) Linux é gratuito, mas com muitas partes e gestão/instalação complexa. Tipicamente, o Linux é instalado em vários CDs (ex: RedHat Fedora Core instalado em 6 CDs, 2 dos quais são base). Em alternativa, usar DVD ou carregar pela Internet. Ao todo existem 300 distribuidores. Slackware (primeiro a ser criado, em 1993) Projectos comunitários (Debian, Gentoo, ) Comerciais (FC da RedHat, SUSE da Novell derivado do Slackware, Ubuntu da Canonical baseado no Debian,...) Programação de Sistemas Linux : 13/27 Distribuição do Linux (2) Versão Fedora 13 do RedHat Lançado em Maio de 2010. Kernel 2.6.33 Por omissão, sistema de ficheiros ext4. Por omissão, ambiente de utilizador é o GNOME 2.3 Nota: Para se obter a versão de um pacote, executar rpm qi pacote Programação de Sistemas Linux : 14/27

Distribuição do Linux (3) A gestão de pacotes de software (adição, actualização e remoção) é feita com auxílio de ferramentas Package management system (PMS) Uma pacote é distribuído num único ficheiro, que contém checksum, para assegurar integridade lista de dependências versão Vários PMS são usados no Linux tgz, que combina as ferramentas tar e gzip usado pelo Slackware RPM da Red Hat, que evoluiu para YAST da Suse e YUM do RedHat Fedora. dpkg da Debian Programação de Sistemas Linux : 15/27 Distribuição do Linux (4) Se for seleccionada a opção Development na instalação do RedHat, os ficheiros fonte podem ser vistos em /usr/src [rgc@asterix ~]$ ls /usr/src/kernels/2.6.23.15-137.fc8-i686/ arch drivers init lib Module.symvers security block fs ipc Makefile net sound crypto include kernel mm scripts usr Os ficheiros fonte de todas as versões do núcleo podem ser acedidas em http://www.kernel.org/ Versão 1.0 (Março de 1994) até 2.6.35 (Agosto de 2010) Para instalar os ficheiros completos, executar comandos cd /usr/src gzip cd linux-2.0.xx.tar.gz tar xfv Programação de Sistemas Linux : 16/27

Distribuição do Linux (5) Para os utilizadores que recusam retirar o Windows do disco, existem alternativas: Carregar o Linux durante o boot directamente de um CD, usando a distribuição Knoppix (baseada na distribuição Debian) Cópia acessível em http://www. knoppix.com Executar por cima do Windows a interface Cygwin Cópia acessível em http://www. cygwin.com. Instalar o Linux em cima do VirtualBox (pacote da Oracle, que adopta o modelo cliente/servidor: o VirtualBox virtualiza o sistema operativo hospedeiro 1 por forma a suportar em cima outro sistema operativo). 1 Sistemas operativos hospedeiro: Linux,Windows XP/Vista/7. 2 Sistemas operativos suportados: Linux,Windows. Programação de Sistemas Linux : 17/27 Nível de execução (1) [Def] Nível de execução ( run level ): definidos por vendedores, corresponde a estado de sistema. Em cada nível apenas podem ser lançados determinados processos de sistema. Para o RedHat são definidos os seguintes níveis de execução: 0 Halt 1 Modo de único utilizador 2 Modo multi-utilizador sem NFS (i.e., sem acesso a rede de computadores) 3 Modo multi-utilizador pleno 4 - /* não usado */ 5 - X11 (modo gráfico) 6 Reboot Programação de Sistemas Linux : 18/27

Nível de execução (2) O Linux pode ser reinicializado em determinado modo pelo comando init <nível> Ex: init 3 Por omissão, o nível de arranque do sistema é identificado no ficheiro /etc/inittab, na forma id:5:initdefault: Programação de Sistemas Linux : 19/27 Ambiente de utilizador do Linux (1) KDE (K Desktop Environment) - http://www.kde.org Mais rápido, mas com demasiadas opções de configuração Programado em C++ Ambiente de omissão de distribuidores de Linux: SUSE Versão mais recente: 4.5.1 (Ago 2010) Xfce Orientado ao rato Programação de Sistemas Linux : 20/27

Ambiente de utilizador do Linux (2) GNOME (GNU Network Object Model Environment) - http://www.gnome.org Mais amigável ao utilizador ( drag and drop, ) Programado em C Ambiente de omissão de distribuidores de Linux: Debian, Red Hat FC, Ubuntu Versão mais recente: 2.32 (Abril 2010) Qual o melhor? tópico de discussão, your mileage may vary Programação de Sistemas Linux : 21/27 Versões do núcleo (1) Versões do nucleo Linux seguem a designação A.B.C.-D A. Versão do núcleo (1 em 1994, 2 em 1996). B. Alteração profunda do núcleo (até 2.6 as alterações estáveis eram números pares). C. Alteração menor de dispositivo ou serviço. D. Patch 1ª versão de Set 1991 (0.0.1) tem apenas 9300 LOC de C e 600 LOC de Assembly. Versão 1.0 de 1994 tem 165K LOC. Versão 2.0 de 1996, tem 470K LOC de C e 8K LOC de Assembly. Versão de Abr 2006, 2.6.16.11, com 6.98 milhões de LOC. Programação de Sistemas Linux : 22/27

Versões do núcleo (2) Versão instalada pode ser obtida de várias formas comando uname r [rgc@asterix ~]$ uname -r 2.6.23.15-137.fc8 comandolast lista todos os utilizadores que entram em sessão (informação armazenada no ficheiro /var/log/wtmp) bac pts/1 zircao.ist.utl.p Mon Oct 2 18:33-18:47 (00:14) reboot system boot 2.6.21-1.3194.fc7 Mon Oct 2 18:31 (3+03:27) rgc pts/1 nat6-176.cs.ucda Mon Oct 2 17:02-17:02 (00:00) Programação de Sistemas Linux : 23/27 Mascote Linus Torvalds sugeriu para mascote um pinguim, por ser animal simpático e divertido. Desenhado por Larry Ewing em 1996. Nome provém das letras inicias do fraque vestido pelo pinguim (TUXedo). Muitas variações acessíveis em http://lwn.net/gallery/ Programação de Sistemas Linux : 24/27

Carregamento do Linux (1) Após a ligação de um computador (ou premida a tecla reset) são executados os seguintes passos: 1. Executado programa BIOS- Basic Input Output System, a partir da ROM, onde se a) testam funcionalidades básicas (memória RAM, existência de teclado, ) b) se detectado disco, BIOS passa o controlo para o Registo de partição ( Master Boot Record ) - se existir, onde o utilizador selecciona o SO a instalar. Programação de Sistemas Linux : 25/27 Carregamento do Linux (2) 2. Controlo passa para o programa boot, que 1. Carrega em RAM o núcleo do SO, do ficheiro /root/vmlinuz-nnn (nnn é a versão) Devido à sua grande dimensão, o núcleo é guardado de forma comprimida e descomprimido no boot. 2. Executa primeira configuração do sistema, a partir do script /etc/rc.d/rc.sysinit Definidas variáveis de ambiente. Lançados processos essenciais, como swapping. Instalados gestores de dispositicos, como discos e E/S série. 3. Executa configuração de acordo com o nível indicado, correndo todos os scripts existentes no directório/etc/rc.d/rcn.d (N-nível entre 0 e 6) Os scripts executados no boot com opção start possuem prefixo S, os scripts executados no shutdown possuem prefixo K. Na realidade, os scripts são ligações para os serviços definidos em /etc/rc.d/init.d Programação de Sistemas Linux : 26/27

Carregamento do Linux (3) asterix.ist.utl.pt> cd /etc/rc.d/rc5.d/ asterix.ist.utl.pt> ls S* Firewall S04readahead_early@ S18rpcgssd@ S44acpid@ S95anacron@ S06cpuspeed@ S19rpcidmapd@ S54dovecot@ S95atd@ S08iptables@ S19rpcsvcgssd@ S55cups@ S96readahead@ S09isdn@ S25netfs@ S55sshd@ S97messagebus@ S10network@ S26apmd@ S56xinetd@ S97rhnsd@ S12syslog@ S26lm_sensors@ S80sendmail@ S98cups-config-daemon@ S13irqbalance@ S28autofs@ S85gpm@ S98haldaemon@ S13portmap@ S33nifd@ S85httpd@ S99local@ S14nfslock@ S34mDNSResponder@ S90crond@ Servidor WWW S15mdmonitor@ S40smartd@ S90xfs@ Servidor Email Nota: Ctrl+ALT+Del reinicia o computador via sistema operativo ( warm boot ), sem o passo 1. Programação de Sistemas Linux : 27/27