1- UNIX
Histórico
O Unix foi criado a partir do MULTICS (Multiplexed Information and
Computing Service) e do UNICS. Problemas do Multics Problemas: complexidade, lento,
falta de um compilador estável, falta de poder computacional do GE-654.
Em 1973, o pesquisador
Dennis Ritchie criou a linguagem de programação de alto nível chamada C
(baseada na linguagem B de Thompson), e junto com Thompson reescreveu o UNICS
nessa nova linguagem. Nesse momento ele mudou o nome do sistema operacional
UNICS pra Unix (único usuário), e desde então, a linguagem C e o Unix caminham
lado a lado.
O Unix era portado para um
PDP-11, com memória de: 16 kbytes sistema eu 8 kbytes programa, um disco de 512
kbytes.
O desenvolvimento original
do Unix era OpenSource, mas a AT&T autorizou seu licenciamento para várias
universidades em 1974.
Obs.: Primeiros sistemas
UNIX tinham uma arquitetura monolítica, mas a maioria das versões do UNIX tem
uma arquitetura de camadas.
- 1979: UNIX 4.0 BSD;
- 1982: UNIX System III (AT&T) - Primeira versão comercial;
- 1983: UNIX System V (AT&T) - Primeira versão com suporte da AT&T;
- 1987: Minix (“Mini UNIX”) - Desenvolvida pela equipe de Andew Tanenbaum. Seus objetivos: Disciplina de Sistemas Operacionais, livro de Sistemas Operacionais + Fonte do kernel. Era compatível com “UNIX version 7”, simplicidade e elegância, linguagem C e assembler (12.000 linhas de código), não precisava de disco e podia executar com 2 disquetes
Atualmente, uma série de
Sistemas Operacionais são baseados no Unix, entre eles, nomes consagrados como
Gnu/Linux, Mac OS X, Solaris e BSD.
Características
O Unix foi o primeiro
sistema a introduzir conceitos muito importantes para SOs como suporte a
multiusuários, multitarefas e portabilidade.
- Portabilidade: Disponível em todo tipo de sistema (Computador pessoal, Estações Gráficas, Servidores, Supercomputadores...)
- Interativo: Quando o usuário requisita os comandos ele obtém os resultados de sua execução através do terminal.
- Multitarefa: Um único usuário pode requisitar que sejam efetuados vários comandos ao mesmo tempo em seu terminal. Quando um usuário executa mais de um comando ao mesmo tempo, geralmente é somente um que necessita a interação com o usuário. Os demais comandos executados são na sua maioria comandos que não exigem a atenção do usuário, sendo tarefas demoradas. Quando isto ocorre, dizemos que os programas que o usuário está executando sem a interação ficam em Background. O programa que o usuário está executando e interagindo fica em Foreground.
- Multiusuário: O UNIX pode controlar o acesso ao sistema através de vários terminais, virtuais ou reais, cada um pertencendo a um usuário. O UNIX aceita as requisições de comandos de cada um dos usuários e gera as filas de controle e prioridades para que haja uma distribuição correta dos recursos de hardware necessários a cada usuário. Devido a característica de ser um sistema multiusuário, o UNIX implementa um sistema de segurança visando impedir o acesso aos arquivos e diretórios de um usuário por outro. No módulo sobre permissões veremos como se pode liberar ou restringir o acesso entre usuários.
Kernel: É como é chamado o núcleo do
sistema Unix e Linux. Este núcleo faz o gerenciamento direto dos dispositivos
de E/S (device drivers),
gerenciamento de memória e controle do uso da CPU pelos vários processos do
sistema.
Comando: Um comando
Unix/Linux nada mais é que um arquivo (programa executável) guardado em um
diretório específico do sistema. Portanto quando o usuário executa um comando,
ele simplesmente está rodando um programa como qualquer outro do sistema.
Processo: Toda vez que se executa um
programa/comando é gerado um processo no sistema. Todo gerenciamento é feito
sobre este processo. Os processos são comandos/programas em execução.
Shell
É o termo UNIX para
interpretador de comandos. O shell
nada mais é que um programa que recebe os comandos do usuário e ativa o sistema
operacional. Ele faz o controle do terminal, tanto na entrada como na saída.
Existem várias opções de shell para o
usuário, cada um com determinadas características e facilidades. Dentre os mais
conhecidos podemos citar: bash,
sh, rsh, csh e ksh. O interpretador de comandos padrão
do Unix é o ksh e sh (AIX,HPUX) e bash (Linux).
Funções do Shell:
Interpretador de comandos (interação com o
usuário através do terminal, função principal), Interpretador de uma linguagem
de programação (capaz de executar uma sequência de comandos armazenados em um
arquivo e descrita na liguagem shell apropriada, estes programas shell são
chamados “shell scripts”)
Thread
Multithreading é a habilidade do kernel do
S.O. em suportar múltiplas threads concorrentes em um mesmo processo.
O Unix “standard” suporta múltiplos
processos, mas apenas uma thread, já outros sistemas operacionais como Windows
2k, Linux, Solaris: suportam múltiplas threads por processo.
Nenhum comentário:
Postar um comentário