Você está na página 1de 6

Material Complementar EA869 (Prof.

Von Zuben DCA/FEEC/Unicamp) 1


UNIX: Uma Breve Apresentao
UNIX: Uma Breve Apresentao
1. Introduo
Este documento procura explorar os aspectos histricos envolvidos no desenvolvimento do
sistema operacional UNIX com o objetivo de compreender melhor os princpios bsicos associados a este
sistema operacional interativo, de tempo compartilhado e multiprogramado (paralelismo aparente
utilizando um nico processador).
Os pontos fortes do sistema operacional UNIX esto em sua portabilidade atravs de mltiplas
plataformas de hardware, sua interface de programao de aplicativos e sua adoo como sistema
operacional de um grande nmero de sistemas de computadores independentes.
A essncia do UNIX est no fato dele ter sido projetado por programadores para programadores,
com o objetivo de apresentar um pequeno nmero de elementos bsicos que possam ser combinados de
diversas formas na realizao dos mais variados tipos de tarefas. No entanto, fato que as verses mais
recentes do UNIX refletem cada vez menos os aspectos associados com sua idia original de simplicidade
e portabilidade, apresentando inclusive problemas de padronizao e verses incompatveis.
Apesar disso, as diversas verses do UNIX ainda rodam em mais arquiteturas de computador do
que qualquer outro sistema operacional conhecido, tendo inclusive sobrevivido a diversas mudanas
tecnolgicas ocorridas desde seu lanamento.
2. Breve relato da histria do UNIX
Boa parte dos textos que se ocupam em descrever o sistema operacional UNIX apresentam
inicialmente um relato dos aspectos histricos envolvidos em seu desenvolvimento, sem, no entanto,
explicar por que a histria do UNIX importante para o seu entendimento.
Todos os pontos fortes e fracos do UNIX podem ser diretamente relacionados com a histria do
seu desenvolvimento, que teve incio em meados dos anos 60 com a criao de um projeto conjunto entre
Massachusetts Institute of Technology (MIT), General Electric e Bell Labs (mais especificamente Bell
Telephone Laboratories, companhia controlada pela AT&T) para o desenvolvimento de um sistema
operacional com compartilhamento de tempo. Este sistema operacional foi denominado MULTICS
(MULTiplexed Information and Computing Service), no tendo o sucesso esperado, principalmente
porque o projeto era muito ambicioso para a poca e, alm disso, o sistema operacional foi escrito em
uma linguagem muito pesada, com compilador ineficiente (TANENBAUM, 1992). A equipe da Bell Labs
abandonou o projeto em 1969. Mas Ken Thompson, um dos membros desta equipe e conhecedor do
potencial do MULTICS, sentiu a necessidade de desenvolver um sistema operacional com os mesmos
propsitos, mas de uma forma bem mais simples e utilizando linguagem assembly. Como o sistema
desenvolvido por Thompson funcionou muito bem, ele comeou a atrair a ateno de seus colegas da Bell
Labs, sendo que um deles, Brian Kernighan, chamou-o de UNICS (UNiplexed Information and
Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 2
UNIX: Uma Breve Apresentao
Computing Service), parodiando MULTICS. Esta denominao pegou, sendo, mais tarde, reduzida
definitivamente para UNIX.
Conforme o sistema UNIX ia sendo transportado para arquiteturas de computador cada vez mais
poderosas, ficou evidente que era preciso eliminar a necessidade de se reescrever todo o sistema
operacional em linguagem assembly para cada nova mquina. Esta foi uma viso inovadora, pois at
ento a linguagem assembly era considerada indispensvel para garantir funcionalidade efetiva e acesso
irrestrito ao hardware.
Depois de uma tentativa sem muito sucesso de reescrever o UNIX em uma linguagem de alto
nvel desenvolvida pelo prprio Ken Thompson (denominada linguagem B), foi seu colega Dennis
Ritchie quem projetou uma linguagem especificamente voltada para a implementao de um sistema
operacional, a qual ele denominou linguagem C.
A linguagem C uma linguagem de alto nvel, mas apenas o suficiente para manter a
portabilidade junto a vrias arquiteturas de computador. Uma vez implementado o compilador C, Ritchie
e Thompson reescreveram a maior parte do UNIX em C (RITCHIE & THOMPSON, 1974).
Em linhas gerais, a verso original do sistema operacional UNIX satisfazia os seguintes
requisitos, considerados inovadores no contexto de sistemas operacionais:
simplicidade e elegncia;
escrito quase que totalmente em uma linguagem de alto nvel (linguagem C). Apenas uma pequena
parte do cdigo do sistema UNIX teve que ser escrita em linguagem assembly (denominada ncleo do
sistema operacional), por depender das caractersticas da mquina alvo. Destacam-se como cdigos
dependentes da mquina as rotinas para tratamento de interrupo, parte das rotinas para gerncia de
memria e drivers de dispositivos do sistema de entrada/sada;
permisso de reutilizao de cdigo.
Uma vez controlada pela AT&T, monoplio da rea de telecomunicaes, a Bell Labs no tinha
permisso para operar comercialmente na rea de computao. Sendo assim, a Bell Labs no impunha
muitos obstculos para licenciar o UNIX, o que motivou muitas universidades a solicitarem cpias deste
sistema operacional. Foram trs as principais razes para o enorme sucesso do UNIX junto s
universidades:
a ltima implementao do UNIX na Bell Labs havia sido desenvolvida para a mquina PDP-11, a
qual equipava boa parte dos departamentos de computao das universidades;
o sistema operacional original da PDP-11 era muito ruim;
o UNIX era fornecido com o cdigo-fonte completo, o que permitiu que novas idias e muitos
melhoramentos fossem rapidamente incorporados ao sistema.
Com acesso ao cdigo-fonte e contando com a presena de Ken Thompson em seu ano sabtico,
a University of California at Berkeley ganhou condies para desenvolver mais rapidamente sua prpria
verso do UNIX, que gradativamente adicionou recursos como o editor vi, o C shell, memria virtual,
Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 3
UNIX: Uma Breve Apresentao
envio de mensagens eletrnicas e suporte para TCP/IP (Transmission Control Protocol/Internet Protocol).
Por outro lado, a AT&T se desmembrou em 1984, por imposio do governo norte-americano, em vrias
companhias independentes. Uma destas companhias foi a UNIX System Laboratories (USL)
1
.
Como conseqncia destes acontecimentos, o UNIX passou a apresentar duas verses
principais:
System V: mais conservativa, comercial e com melhor suporte, desenvolvida pelo UNIX System
Laboratories (USL);
BSD (Berkeley Software Distribution): desenvolvida na University of California at Berkeley.
H muitas outras verses alm destas duas, mas que geralmente derivam de uma delas.
Recentemente, as verses de UNIX que so efetivamente empregadas incorporam caractersticas das duas
verses principais, sendo que o UNIX de hoje bem diferente do UNIX do incio dos anos 70, tendo
sofrido desde ento um processo evolutivo contnuo, com suas principais fases ilustradas na figura 1.
UNICS (1969)
5
a
edio (1973)
6
a
edio (1976)
7
a
edio (1978)
SVR5 (1983) BSD (1979)
SunOS 5.x/Solaris (SUN)
HP-UX (HP)
AIX (IBM)
IRIX (SGI)
Digital UNIX (DEC)
SunOS 4.x (SUN)
ULTRIX (DEC)
NextStep (NeXT)

Figura 1 - A rvore genealgica do UNIX
2.1. A padronizao do UNIX
At por volta de 1988, o UNIX no conseguia emplacar fora do meio acadmico e das grandes
empresas comerciais, principalmente devido existncia de duas verses principais incompatveis:
System V e BSD. Isto porque no era possvel que fornecedores de software escrevessem pacotes de
programas UNIX que rodassem em qualquer sistema UNIX, como ocorre com o Windows.

1
A UNIX System Laboratories (USL) passou em 1993 a ser uma subsidiria da Novell (maior fornecedora mundial de softwares de
rede). Em 1995, a SCO (Santa Cruz Operation), empresa de Douglas Michels no norte da Califrnia, adquiriu da Novell os direitos
de licenciamento do cdigo-fonte do UNIX.
Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 4
UNIX: Uma Breve Apresentao
O Comit de Padronizao do IEEE representou a primeira tentativa sria em estabelecer um
padro para o sistema operacional UNIX. O nome escolhido para o projeto foi POSIX (Portable
Operating System), com o sufixo IX lembrando UNIX. A linguagem C tambm foi padronizada pela ISO
e pela ANSI.
No entanto, para rivalizar com a AT&T, um grupo de empresas liderado por IBM, DEC e
Hewlett-Packard (HP) formou o consrcio OSF (Open Software Foundation), cujo objetivo era seguir
no apenas o padro POSIX, mas padres adicionais para definio de janelas, interface grfica e
processamento distribudo. A reao da AT&T foi a formao de seu prprio consrcio, o UI (UNIX
International). Os padres definidos por estes dois consrcios esto evoluindo em direes diferentes, o
que certamente no trar benefcios para usurios e fornecedores de software para UNIX.
3. A linguagem C e a interface de programao de aplicativos
Muitos sistemas operacionais apresentam uma viso simplificada do conjunto de operaes a
serem realizadas por um aplicativo. Um aplicativo tpico l algum dado em disco, fita ou terminal e
realiza algum processamento. A sada produzida em disco, fita, terminal ou impressora. Sendo assim, os
sistemas operacionais geralmente fornecem recursos implementados otimamente e de fcil acesso para
suportar estes tipos de operaes.
No entanto, quando as operaes se tornam mais sofisticadas, um sistema operacional necessita
de novos recursos, como acesso rede, gerenciamento simultneo de mltiplas tarefas e comunicao
entre processos. Em sistemas operacionais tradicionais, estes novos recursos no esto diretamente
disponveis, no so bem documentados e so implementados apenas em linguagem assembly. Com isso,
quando um aplicativo precisa recorrer a estas operaes sofisticadas, os programas associados podem ser
muito mais complexos e de difcil manuteno.
Pelo fato da linguagem C ter sido escrita especificamente para ser utilizada na implementao de
um sistema operacional, ao invs de atender apenas s aplicaes tradicionais de entrada-processamento-
sada, o uso destes novos recursos pode ser implementado diretamente, sem recorrer a qualquer tipo de
cdigo em linguagem assembly. Alm disso, a documentao associada a estas operaes sofisticadas
est no mesmo formato e localizao que a documentao associada aos aplicativos normais.
O padro de desenvolvimento do UNIX fornece uma interface de programao de aplicativos
que permite, com base na linguagem de programao C, o acesso imediato a estas novas facilidades. Isto
possibilita que aplicativos muito mais sofisticados sejam prontamente desenvolvidos. Como exemplo,
boa parte dos pacotes de software disponveis para UNIX e de domnio pblico so distribudos como
programas em linguagem C, que devem ser compilados antes de serem utilizados.
Logo, os desenvolvedores de sistemas UNIX e de aplicativos (para sistema operacional UNIX)
escrevem seus programas na mesma linguagem e utilizando a mesma interface de programao. Este
quadro se ope quele existente no caso de sistemas operacionais tradicionais, em que os
desenvolvedores do sistema operacional programam em linguagem assembly e tm acesso a inmeros
recursos no disponveis aos desenvolvedores de aplicativos.
Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 5
UNIX: Uma Breve Apresentao
4. A popularidade do UNIX
Dentre os motivos mais empregados para justificar o sucesso do sistema operacional UNIX
esto:
apenas uma pequena parcela do cdigo do UNIX escrito em linguagem assembly, o que aumenta a
portabilidade de hardware (capacidade de rodar nos mais variados tipos de sistemas de
computadores);
sua interface de programao de aplicativos permite que os mais diferentes tipos de aplicativos sejam
facilmente implementados sob o sistema operacional UNIX sem a necessidade de se recorrer
linguagem assembly. Com isso, a portabilidade destes aplicativos junto a diferentes plataformas de
hardware relativamente elevada;
como muitas empresas de computadores adotaram o sistema UNIX, possvel construir redes
compostas por mltiplos sistemas de computadores;
a interface do UNIX com o ambiente de rede j parte integrante do sistema operacional, permitindo,
por exemplo, uma implementao eficiente de correio eletrnico e conexo via Internet;
como a filosofia do UNIX projetar cada programa para desempenhar otimamente uma nica funo,
ele flexvel e fcil de adaptar para necessidades especficas.
Com isso, o UNIX pode ser considerado um sistema aberto, que permite portabilidade de
hardware, de aplicativos e de usurio (apresentando a mesma interface com o usurio independente da
mquina). Embora os usurios finais no sejam os beneficirios diretos da portabilidade de hardware e da
portabilidade de aplicativos, a existncia de diversas empresas fornecendo o mesmo sistema operacional e
as mesmas solues de software contribuiu para uma queda acentuada no custo dos sistemas de
computao.
Este um dos pontos chaves para explicar o sucesso do sistema operacional UNIX. O UNIX
representou um papel decisivo no processo de substituio gradual dos grandes computadores
(mainframes) por computadores de mesa, dotados de hardware mais rpido, mais moderno e mais barato.
A importncia do UNIX neste processo se deve aos seguintes fatores:
boa parte das bem-sucedidas empresas de computao, que emergiram a partir do incio dos nos 80,
produziam um melhor hardware que as grandes fabricantes, como DEC e IBM;
estas mesmas empresas emergentes de computao no podiam arcar com os custos de tempo e
dinheiro para desenvolver um sistema operacional proprietrio, e acabaram recorrendo ao UNIX.
Portanto, principalmente a partir de 1985, se algum precisasse adquirir um computador
moderno e barato, esta pessoa certamente iria adquirir um computador rodando UNIX.
Um outro fator importante para o sucesso do UNIX o papel representado pelas universidades.
Por questes histricas, j mencionadas anteriormente, o UNIX teve uma grande aceitao no meio
acadmico, fazendo com que praticamente todos os alunos vinculados rea de computao entrassem
em contato com este sistema operacional. Sendo assim, a cada ano as universidades tm fornecido ao
Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 6
UNIX: Uma Breve Apresentao
mercado de trabalho uma legio de especialistas em UNIX. Com isso, empresas que operam com o
sistema operacional UNIX no tm qualquer dificuldade em encontrar mo-de-obra qualificada,
atualizada e imediatamente disponvel.
Um ltimo fator decisivo tem sido o processo de contnua evoluo do sistema operacional
UNIX, para atender inovaes tecnolgicas que geram demandas por novos recursos. Enquanto os
usurios reclamam por novos recursos, os desenvolvedores de verses do UNIX so compelidos a criar
novos recursos que impulsionem suas vendas com base em requisitos de marketing. No entanto, a
incorporao sem critrios de novos recursos no um ponto positivo do UNIX, que vai ganhando
verses mais complexas e com portabilidade reduzida, alm do perigo representado pela evoluo das
diversas verses em direes distintas.
Apesar disso, o sistema operacional UNIX no pode prescindir deste processo evolutivo sob
pena de perder sua atratividade em comparao com outros sistemas operacionais concorrentes.
5. Referncias bibliogrficas
TANENBAUM, A.S. Modern Operating Systems. Prentice Hall Inc., 1992.
RITCHIE, D.M. and THOMPSON, K. The UNIX Timesharing System. Commun. of the ACM, vol. 17, pp.
365-375, 1974.

Você também pode gostar