Introdução e Organização Básica do UNIX
História
- Início em 1969
- Centenas de versões foram lançadas
- Devido ao conceito de "Sistema Aberto"
- Hoje, há menos versões:
- Linux
- Solaris
- HPUX
- Tru 64
- etc.
- Muito popular como:
- Servidor de banco de dados
- Servidor de aplicações
- Servidor na Internet/Intranet (Web, Mail, ...)
- Workstation
O que é UNIX
- Um sistema com as seguintes características:
- Propósito geral
- Multitarefa (roda vários processos)
- Proteção total entre processos e com o núcleo
- Sistema muito estável, bom para a produção
- Multithreaded (cada processo pode ter paralelismo)
- Multiusuário (bolado desde do início para compartilhamento de informação)
- Sistema de proteção embutido
- Multiprocessado (se o hardware permitir)
- Memória virtual (paginação sob demanda)
- Fornece muita rapidez e mais memória aparente do que o real
- A máquina fica mais "leve"
- Transportável
- Sistemas de arquivos hierárquico
Abstrações Básicas: Processos e Arquivos
- As duas grandes entidades no UNIX são processos e arquivos
- Entendendo essas duas coisas, 90% do UNIX já foi entendido
- Processo
- Programa em execução
- Vários processos executam simultaneamente
- Veremos detalhes adiante
- Arquivo
- Tudo é um arquivo no UNIX:
- Programa fonte, programa executável (comando), dados, dispositivo, conexão de rede,
canal de comunicação entre processos, etc.
Abstração Básica: Shell como Interpretador de Comandos
- Estrutura do UNIX inclui:
- Kernel oferecendo serviços para aplicações
- Proteção total entre todos usando segmentação de memória
- System calls permitem que aplicações acessem serviços do sistema
- A maioria dos system calls trata da manipulação de processos e de arquivos
- Interfaces gráficas existem para UNIX
- Infelizmente, várias GUIs existem
- Não há a consistência presente no Windows
- Programadores e administradores do sistema normalmente usam uma interface de linha de
comando
- Porque é muito mais fácil automatizar tarefas rotineiras
- Porque é muito mais eficaz para o "power user"
- Um programa especial é usado para interpretar comandos
- shell
- Há vários shells disponíveis
- Os mais comuns são:
- sh: Bourne shell
- bash - Bourne Again Shell (no Linux)
- csh: C shell
- ksh: Korn shell
- O mais usado para programação é o Bourne shell
programa anterior próxima