Volnys & Midorikawa (c) Introdução ao Sistema UNIX Volnys Borges Bernal [email protected] http://www.lsi.usp.br/~volnys Edson Toshimi Midorikawa [email protected] http://www.lsi.usp.br/~emidorik Laboratório de Sistemas Integráveis http://www.lsi.usp.br/ 1 Volnys & Midorikawa (c) Agenda o o o História do sistema UNIX Arquitetura Geral do Sistema UNIX Shell 2 Volnys & Midorikawa (c) História do sistema UNIX 3 Volnys & Midorikawa (c) História do sistema UNIX o 1965 X Projeto MULTICS êMULTiplexed Information and Computing Service êProjeto conjunto entre u GE (General Eletric) u MIT (Massachusetts Institute of Technology) u AT&T êObjetivo u Desenvolvimento de um sistema operacional chamado MULTICS ÕSistema multi-usuário time-sharing ÕSistema de arquivos hierárquico ÕImplementado em uma linguagem de alto nível u Para executar sobre computador GE-645 4 Volnys & Midorikawa (c) História do sistema UNIX o 1969 X Término do projeto MULTICS êJá tinham uma versão primitiva do S.O MULTICS êProblemas: u Complexidade u Lento u Falta de um compilador estável u Falta de poder computacional do GE-654 êEncerramento do projeto 5 Volnys & Midorikawa (c) História do sistema UNIX o Pesquisadores da AT&T (Bell Labs): X Ficam sem ambiente de desenvolvimento X Ken Thompson e Dennis Ritche êdesenvolvem um projeto de kernel simplificado êpropõem a compra de um computador êProposta rejeitada X Ken Thompson êDesenvolveu um jogo u “Space Travel” u Executava no sistema GECOS - Honwyell 635 u Muito lento 6 Volnys & Midorikawa (c) História do sistema UNIX o Pesquisadores da AT&T (Bell Labs): X Conseguiram um minicomputador PDP-7 êNão estava em uso êBoa capacidade de processamento êBom display gráfico êPorém, não possuia um S.O adequado X Porte do SpaceTravel para o PDP-7 êFoi criado um Sistema Operacional primitivo êForam desenvolvidos vários softwares de apoio 7 Volnys & Midorikawa (c) História do sistema UNIX o 1969 X Primeira versão UNIX (AT&T) êSistema operacional em assembler para o PDP-7 êNome UNIX u Nome derivado de “MULTICS” u Único usuário o 1971 X UNIX (AT&T) êPortado para um PDP-11 êMemória u 16 kbytes sistema u 8 kbytes programa êDisco u 512 kbytes 8 Volnys & Midorikawa (c) História do sistema UNIX o Linguagem B X X X X o Criada por Ken Thompson Linguagem Interpretada Inspirada em BCPL (que por sua vez foi inspirada na PL/1) Semelhante a um macro assembler Linguagem C X Baseada na Linguagem B X Desenvolvida por Dennis Ritche 9 Volnys & Midorikawa (c) História do sistema UNIX o 1973 X UNIX (AT&T) êReescrito em C o 1974 X UNIX (AT&T) êArtigo publicado por Thompson e Dennis Ritche êDescrevia estruturas internas do sistema êPopularidade no meio academico ê“Communications of ACM” 10 Volnys & Midorikawa (c) História do sistema UNIX o 1977 X UNIX 1 BSD êPrimeira versão UNIX BSD êVariação UNIX realizada pela Universidade de Berkley êBaseada na UNIX version 6 (AT&T) êBSD: Berkley Software Distribution o 1978 X UNIX version 7 (AT&T) êLicenças: u Para universidades u Para instituições comerciais êMais de 500 corporações utilizavam UNIX u 125 eram universidades ê Primeiro porte para outra arquitetura u Interdata 8/32 11 Volnys & Midorikawa (c) História do sistema UNIX o 1979 X UNIX 4.0 BSD o 1982 X UNIX System III (AT&T) êPrimeira versão comercial o 1983 X UNIX System V (AT&T) êPrimeira versão com suporte da AT&T 12 Volnys & Midorikawa (c) 13 História do sistema UNIX o 1983 X GNU Project êManifesto “GNU is Not UNIX” êPor Richard Stalman (MIT) êObjetivo: Criação de utilitários e software “livres” para sistemas UNIX u Compiladores, Shells, utilitários (ls,pwd,cat,...) êNão inclui o kernel do sistema operacional o “Free Software” êSoftware não proprietário êAcesso público ao software (fontes) êRedistribuição do código fonte ê“Free Software Foundation” (http://www.fsf.org/) Volnys & Midorikawa (c) História do sistema UNIX o 1985 X X-Windows êMIT êDistribuído com restrições mínimas 14 Volnys & Midorikawa (c) História do sistema UNIX o 1987 - Minix X “Mini UNIX” X Desenvolvida pela equipe de Andew Tanenbaum X Objetivo: êDisciplina de Sistemas Operacionais êLivro de Sistemas Operacionais + Fonte do kernel X Compativel com “UNIX version 7” êSimplicidade + Elegância X Linguagem C e Assembler ê12.000 linhas de código X Plataforma êIBM PC X Não precisava de disco êPodia executar com 2 disquetes 15 Volnys & Midorikawa (c) História do sistema UNIX o 1990 X Anúncio GNU Hurd êInício do desenvolvimento de um “kernel” UNIX êDe domínio público êPela “Free Software Fundation” (GNU) o 1991 - xxxBSD X Artigos em “Dr. Dobb’s Journal” êPor Williand e Lynne Jolitz êComo realizar o porte do BSD UNIX em PCs 386 êInício da família de sistemas operacionais “free-software” baseado na versão BSD u FreeBSD u NetBSD u OpenBSD 16 Volnys & Midorikawa (c) História do sistema UNIX o 1991 - Linux X Abril êLinus Torvalds Inicia o desenvolvimento de um S.O êBaseado no MINIX êUtiliza ferramentas GNU X Outubro êPublica primeiros trechos de código êUnix-like free-source kernel êChama-o de Linux X Dezembro êversão 0.11 u Primeira versão do Kernel 17 Volnys & Midorikawa (c) História do sistema UNIX o 1992 X NetBSD release 2 êVersão PC do UNIX BSD X 386BSD 0.1 êPor William e Lynne Jolitz êPrimeira versão êBaseada no NetBSD Release 2 êNão pode ser utilizado u Batalha legal u Existe código proprietário de Berkley? 18 Volnys & Midorikawa (c) História do sistema UNIX o 1993 X FreeBSD êBaseado no 386BSD êMuito estável o 1994 X NetBSD 1.0 êLiberado o 1995 X FreeBSD 2.0 19 Volnys & Midorikawa (c) 20 História do sistema UNIX xxxBSD BSD 1 3 4.0 4.1 4.2 4.3 SunOS AT&T v6 v7 SystemIII SystemV R1.0 R2.0 R3.0 R4.0 R4.1 R4.2 Minix Linux 76 78 80 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 Volnys & Midorikawa (c) Arquitetura geral do sistema UNIX 21 Volnys & Midorikawa (c) Arquitetura geral do sistema UNIX Aplicativos Sistema Operacional Componentes Físicos 22 Volnys & Midorikawa (c) 23 Arquitetura geral do sistema UNIX Aplicativos Utilitários do Sistema Interface de chamadas ao sistema Processos de gerência Núcleo Sistema Operacional Device Drivers Interface de hardware Hardware Dispositivos Componentes Físicos Volnys & Midorikawa (c) 24 Arquitetura Geral Usuário Aplicativos shell ls Utilitários do Sistema init Interface de chamadas ao sistema inetd nfsd ... Processos de gerência processos Interface de usuário via shell Sistema Operacional Núcleo Device Drivers Interface de hardware Hardware Dispositivos Componentes Físicos Volnys & Midorikawa (c) 25 Arquitetura geral do sistema UNIX o Características X X X X X X X X Portabilidade do Sistema Operacional para outras arquiteturas Portabilidade de código fonte de aplicação para diferentes UNIX Sistema de computação de uso geral Multitarefa Multiusuário Sistema de arquivos hierárquico Possui ambiente de janelas Grande quantidade de ferramentas de desenvolviemento de software X Interoperabilidade X Padronização Volnys & Midorikawa (c) Arquitetura geral do sistema UNIX o Portabilidade X Disponível em todo tipo de sistema êComputador pessoal êEstações Gráficas êServidores êSupercomputadores 26 Volnys & Midorikawa (c) Características do sistema UNIX o Padronização X X X X X IEEE POSIX X/Open OSF SVID (System V Interface Definition) (AT&T) Unix International 27 Volnys & Midorikawa (c) Arquitetura Geral do sistema UNIX o Fabricantes de “Workstations” e suas versões UNIX X X X X X Sun: SGI: HP: Digital: IBM: SunOS / Solaris IRIX HPUX Digital UNIX (OSF) AIX 28 Volnys & Midorikawa (c) Arquitetura Geral o Versões UNIX para arquitetura PC X Comerciais êSunOS/Solaris para PC êSCO UNIX X De domínio público êFreeBSD êNetBSD ê386BSD êLinux êMinix 29 Volnys & Midorikawa (c) Shell 30 Volnys & Midorikawa (c) Shell o Funções do shell: X Interpretador de comandos êInteração com o usuário através do terminal êFunção principal X Interpretador de uma linguagem de programação êÉ capaz de executar uma seqüência de comandos (programa) armazenadas em um arquivo e descrita na liguagem shell apropriada êEstes programas shell são chamados “shell scripts” 31 Volnys & Midorikawa (c) 32 Shell Usuário Interface de usuário via shell shell ls -a Processos init Interface de chamadas ao sistema inetd nfsd Núcleo Device Drivers Interface de hardware Hardware Dispositivos Componentes Físicos Volnys & Midorikawa (c) Shell o Principais shells existentes atualmente: X X X X X sh csh ksh bash tcsh Bourne Shell C-Shell Korn Shell Bourne again Shell T C Shell Original UNIX BSD UNIX Mistura sh/ksh Shell GNU Baseado no C Shell 33 Volnys & Midorikawa (c) Exercícios 34 Volnys & Midorikawa (c) Exercícios 1 - O Linux é uma versão UNIX? 2 - Quais são os dois principais tipos de sistemas UNIX? 3 - O que é o shell no sistema UNIX? 35 Volnys & Midorikawa (c) Bibliografia 36 Volnys & Midorikawa (c) Bibliografia o Operating System - Design and Implementation X Andrew Tanenbaum o IEEE Software - Linux on the Move X Terry Bollinger; Peter Beckman X Jan/Fev 1999 o The Design of the UNIX Operating System X Maurice J. Bach X Prentice-Hall Software Series, 1986 37