Apostila Básica
de Unix
Autor: Marcelo Palmieri Martins
(Analista de Sistemas - Imp. Eletr.)
Introdução ao Unix
Histórico
A primeira versão do sistema operacional Unix foi desenvolvida em 1969 por Ken Thompson do grupo de pesquisas da Bell (braço subsidiário da AT&T). Várias versões do Unix foram desenvolvidas a partir daí, até que em 1978 a Universidade de Berkeley lançou uma versão do Unix para computadores VAX, além de incluir diversas facilidades no S.O. Vários fabricantes passaram então a se interessar pelo produto (que já possuía boa receptividade no meio acadêmico) desenvolvendo suas próprias versões.
Características Básicas
O sistema operacional Unix
permite que várias pessoas o utilizem simultaneamente (multiusuário),
arbitrando as várias solicitações para distribuir os recursos do computador
justa e eficazmente. Diversos programas podem “rodar” simultaneamente
(multiprogramação).
O sistema parcela o tempo do computador em uma série de partes e os aloca
entre os vários usuários. O objetivo desta técnica, denominada “tempo
compartilhado”, é dar a cada usuário a ilusão de uso exclusivo da máquina.
Cada tarefa a ser executada pelo computador (programas, editoração, etc...)
recebe uma fatia de tempo da CPU da máquina. Portanto, quanto mais tarefas,
menor o tempo de CPU que cada uma recebe.
Todos estes conceitos demonstram que o sistema Unix é um sistema
operacional complexo e que necessita da figura de um administrador denominado
pelo sistema de “super-usuário”. Este tem privilégios que os demais usuários
do sistema não possuem.
O sistema operacional Unix controla os recursos do computador, faz sua
distribuição entre os vários usuários concorrentes, executa o escalonamento
de tarefas (processos), controla os dispositivos periféricos conectados ao
sistema, fornece funções de gerenciamento do sistema, e de um modo geral
oculta do usuário final a arquitetura interna da máquina. Isso é realizado
através de uma arquitetura que usa camadas de software projetadas para
diferentes finalidades.
Shell
O “shell” é um interpretador de comandos (interpreta os comandos inseridos pelo teclado), ou seja, provê a interface entre o usuário e o sistema operacional. Em muitos sistemas o interpretador de comandos é uma parte da estrutura interna do S.O.. No Unix porém, o “shell” é um programa como outro qualquer, além de ser uma linguagem de programação sofisticada (scripts em shell), que será visto mais adiante. Existem diversos tipos de “shell” como o /bin/sh (“Bourne Shell”), /bin/ksh (“Korn Shell”) e o /bin/csh (“C Shell”).
OBS: No Unix espaços em branco,
letras maiúsculas e minúsculas são extremamente importantes.
Ex.: o comando “echo hello” é dife