Histórico
Década de 1960
O responsável pelo
desenvolvimento do sistema Unix foi Ken Thompson chamando de Unics(
UNiplexed Information and Computing Service) e, posteriormente Unix.
Inicialmente ele foi desenvolvido em assembly para um minicomputador,
mas para torná-lo mais fácil de ser portado em outras plataformas
foi desenvolvida uma linguagem de alto nível, e reescreveu o código
do sistema nessa nova linguagem.
Em 1991, o finlandês
Linus Torvalds começou o desenvolvimento Linux, com base no em suas
experiências com o sistema Minix. O Linux evoluiu a partir da
colaboração de vários programadores que ajudaram no
desenvolvimento do kernel, utilitários e vários aplicativos.
A imagem a segui mostra as diversas ramificações do Unix.
Microsystem (SunOS e
Solaris), HP (HP-UX), IBM (AIX) e compaq(Compaq Unix).
Características
Unix é um sistema
operacional multiprogramável, multiusuário, que suporta múltiplos
processadores e implementa memória virtual . Com as características
a seguir:
- Escrito em linguagem de alto nível, tornando fácil a compreensão e alteração do seu código e portabilidade para outras plataformas de hardware;
- Oferece um conjunto de system calls que permite que programas complexos sejam desenvolvidos a partir de uma interface simples;
- Flexibilidade, podendo se utilizado como sistema operacional de computadores pessoais, estações de trabalho e servidores de todos os portes, voltados para bando de dados, web, correio eletrônico e aplicação;
- Implementação de threads, em algumas versões , e diversos mecanismos de comunicação e sincronização, como memória compartilhada, pipes e semáforos;
- Suporte a um grande número de aplicativos disponíveis no mercado, sendo muitos gratuitos;
- Suporte a diversos protocolos de rede, como o TCP/IP, e interfaces de programação, como sockets, podendo ser utilizado como servidor de comunicação, roteador, firewall e Proxy;
- Implementação de sistema de arquivos com uma estrutura bastante simples, onde os arquivos são representados apenas como uma sequência de bytes. Além disso, existem diversas opções para sistemas de arquivos distribuídos, como NFS(Network File System), AFS (Andrew File System) e DFS( Distributed File System);
- Oferece uma interface simples e uniforme com os dispositivos de I/O.
A maior parte do código
do Unix é escrita em C e o restante como device drivers, em assembly
o que possibilita uma grande portabilidade para diferentes
plataformas de hardware. O Unix utiliza a estrutura de camadas para a
construção do sistema, implementando dois modos de acesso, modo
usuário e modo kernel: