Você está na página 1de 6

Breve histrico sobre o UNIX Dcada de 60 Ken Thompson, Dennis Ritchie, Douglas Mcllry e Peter Weiner, num esforo

conjunto da AT&T (American Telephone andTelegraph) Laboratrios Bell, da General Eletric (GE) e do MIT (Massachussetts Instute of Techonology) para o desenvolvimento de um sistema operacional chamado MULTICS, isto em 1965. Em 1969, a Bell retirou-se do projecto. Ainda em 1969, Ken Thompson, usando um ocioso computador PDP-7 (um minicomputador produzido pela Digital Equipment Corporation), comeou a reescrever o MULTICS num conceito menos ambicioso, baptizado de UNICS, usando linguagem de montagem (assembly). Mais tarde, Brian Kernighan rebaptizou o novo sistema de UNIX (Servio de Computao e Informao Uniplexada).

Dcada de 70 UNIX instalado num PDP-11/20 da DEC por Thompson e Dennis Ritchie. Este, usa a linguagem C (linguagem desenvolvida por Dennis Ritchie) para ser portvel em arquitecturas de hardware diferentes. Em 1971 sai a primeira verso do UNIX, Richard Stallman inaugurou o movimento de software livre. UNIX reescrito em linguagem C em 1973. Um ano mais tarde autorizada pela AT&T a distribuio para as faculdades de cdigo-fonte. Em 1975, lanado o V, sendo o Apple I lanando um ano mais tarde. Em 1977 sai o UNIX System III que era a combinao de vrias verses de Ritchie e Thompson em um nico sistema. No fim dos anos 70, UNIX foi portado para o novo VAX (Virtual Address eXtension) da digital. Esta foi a primeira verso vendida comercialmente do sistema mas continuava, na sua maioria utilizada por universidades. Esta verso inclua C K&R completo, uucp e Bourne Shell. O Kernel tinha meramente 40bytes. Dcada de 80 lancado o System V da AT&T em 1983, tambm iniciando-se o Projecto GNU com Richard Stellman. O SV inclua o pacote IPC(shm, msg, sem) para comunicao entre processos. Surgiram outras verses do SV com a incluso de novas caractersticas como sharelibs no SVR4. O 4.2BSD foi talvez uma das mais importantes verses do UNIX. O seu software de conexo de redes tornava muito fcil a tarefa de conectar computadores UNIX a redes locais. Nessa verso que foram integrados os softwares que implementam TCPS/IP e sockets. Dcada de 90 Em 05 de Outubro de 1991, Linus Torvalds anuncia a primeira verso oficial do LINUX.

Em 1992, ncleo LINUX licenciado sob os termos da GNU GPL. As primeiras distribuies do LINUX so criadas e vendidas num cd-rom. 1993: Mais de 100 desenvolvedores trabalhavam no ncleo LINUX. Com a sua ajuda, o ncleo adaptado ao ambiente GNU, o que cria um grande espectro de tipos de aplicao para LINUX. A mais antiga distribuio do LINUX ainda existe, o Slackware, lanado pela primeira vez. Mais tarde, no mesmo ano, estabelecido o projecto Debian. Hoje a distribuio que possui a maior comunidade. 1994: EM marco, Torvalds julga que todos componentes do ncleo esto totalmente amadurecidos: ele lanca a verso 1.0 LINUX. O projecto XFREE86 contribui com uma interface grfica de uduaario(GUI). Nesse ano, as companhias Red e SUSE publicam a verso 1.0 se suas distribuies do Linux. 1995: O Linux portado para o DEC Alpha e para o Sun SPARC. Nos anos seguintes portado para um nmero ainds maior de plataformas. Torvalds anunciou em 1996 que haveria um mascote para o LINUX, um pinguim., ao mesmo tempo a verso 2.0 do ncleo Linux lancada. O ncleo agora pode servir a vrios processadores ao mesmo tempo, tornando-se ento um alternativa seria para muitas companhias. 1998: Muitas grandes companhias como a IBM, a Compaq e Oracle anunciam seu apoio ao Linux. Ademais um grupo de programadores comea a desenvolver a interface grfica de usurio KDE. 1999: Um grupo de desenvolvedores comea a trabalhar no ambiente grfico GNOME, que deveria tornar-se um substituto livre o KDE, o qual dependia, o qual dependia do ento software proprietrio Qt toolkit. A IBM anuncia um grande projecto em apoio ao Linux. Anos 2000 Em 2001, a Apple surpreendeu o mundo da informtica, abandonando o seu prprio cdigo e reescrevendo todo o seu sistema operacional usando o UNIX como base. A partir dai, ele passou a se chamar MAC OSX, sistema que continua forte ate os dias de hoje. 2004: A equipe XFree86 separa-se e junta-se ao padro existente X Window para formar a X.Org Foundation, o que resulta em um desenvolvimento substancialmente mais rpido do X Window Server para Linux. 2007: A Dell comeca a vender laptos com o Ubunto pre-instalado. 2011: A verso 3.0 do ncleo Linux lancado.

Principios do projecto O UNIX foi projectado para ser um sistema de tempo compartilhado, escrito na sua maior parte em linguagem C, que foi desenvolvido para fornecer suporte ao UNIX, j que seus programadores no gostavam de programar em Assembly. Seu sistema de arquivo em rvore com multinvel permite aos usurios criarem seus prprios subdirectrios. Isso simplificou o transporte de sistema de hardware para outro. O UNIX suporta mltiplos processos, onde um processo pode facilmente criar novos processos, o escalonamento de CPU um algoritmo de prioridade simples. O swapping usado se um sistema estiver sofrendo de excesso de paginao. O sistema UNIX primeiramente foi desenvolvido por um programador e depois por outro para sua prpria convenincia, era pequeno o suficiente para ser entendido, foi seleccionado por simplicidade, em vez de por velocidade ou sofisticao, com isso resultou em muitas imitaes e modificaes. Como foi projectado de programadores para programadores ele sempre foi interactivo, e recursos para o desenvolvimento de programas foi sempre uma alta prioridade.

Interface do programador O UNIX consiste em duas partes separadas, o kernel e os programas do sistema, onde tudo que esta abaixo da interface de chamadas ao sistema e acima do hardware fsico o kernel, que fornece as funes de sistemas de arquivos, escalonamento de CPU, gerncia de memria e outras funes, j os programas de sistema usam as chamadas suportadas pelo kernel para fornecer funes teis, como compilao e manipulao de arquivos.

Manipulacao de Aqrquivos O arquivo no UNIX uma sequncia de bytes, onde so organizados em diretrios estruturados em rvores. Seus diretrios propriamente ditos so arquivos que contm informaes sobre como localizar outros arquivos.

O sistema de arquivos UNIX tem nomes de caminhos absolutos e relativos onde os caminhos absolutos comeam na raiz do sistema de arquivos e so diferenciados por uma barra no inicio do nome de caminho, /usr/local/font um exemplo, j os relativos comeam no diretrio corrente, que um atributo do processo que acessa o nome do caminho, local/font um exemplo.

Controle de Processo Um processo um programa em execuo, onde so identificados por seu identificador de processo que um inteiro. Um novo processo criado pela chamada ao sistema fork e consiste em uma cpia do espao de endereamento do processo original. O pai e o filho continuam a execuo na instruo depois de fork com uma diferena o cdigo de retorno para fork zero para o novo processo (filho), enquanto o identificador de processo (no zero) do filho devolvido para o pai. A forma mais simples de comunicao entre processos por meio de pipes, ou canais, que podem ser criados anates do fork e cujas extremidades so ento configuradas em fork e execve.

Sinais

Os sinais so um recurso para lidar com condies excepcionais, semelhante a interrupes de software. Existem 20 sinais diferentes, cada qual correspondendo a uma condio distinta. Um sinal pode ser gerado por uma interrupo de teclado, por um erro em um processo. O sinal interrupt, usado para parar um comando antes que ele seja completado. O sina quit, interrompe o programa em execuo no momento.

Manipulacao de informaes Existem chamadas ao sistema para ajustar, e retornar um temporizador de intervalo e a hora atual em microssegundos. Alm disso, os processos podem solicitar os seus identificadores de processo, seus identificadores de grupo, o nome da maquina na qual esto executando e muitos outros valores.

Rotinas de Biblioteca

A interface de chamadas ao sistema do UNIX suportada e incrementada por uma grande coleo de rotinas de biblioteca e arquivos de header, onde uma grande biblioteca de funes fornece suporte adicional a programas. Suporte de biblioteca adicional fornecido para funes matemticas, acesso de rede, converso de dados e assim por diante.

Entrada e Sada Padro

Os processos podem abrir arquivos como quiserem, mas partes dos processos esperam que trs descritores de arquivos (nmeros 0, 1, 2) estejam abertos quanto eles comearem. So chamados de entrada padro (0), sada padro (1) e erro padro (2). Todos os trs so abertos com frequncia no terminal do usurio. Assim, o programa pode ler o que o usurio digita, lendo a entrada padro, e o programa pode enviar sada para a tela do usurio escrevendo na sada padra. O descritor de arquivo de erro padro tambm aberto para escrita e usado para sada de erros, a sada padro usada para sada normal. A maioria dos programas tambm aceitam um arquivo para entrada e sada padro.

Blocos de controle de processo Um importante problema de projeto nos sistemas operacionais a representao de processos. Uma diferena substancial entre o UNIX e muito outros sistemas a facilidade com a qual mltiplos processos podem ser criados e manipulados. Esses processos so representados no UNIX por vrios blocos de controle. No existem blocos de controle de sistemas acessveis no espao de endereamento virtual de um processo de usurio, os blocos de controle associados a um processo so armazenados no kernel. As informaes nesses blocos de controle so usadas pelo kernel para o controle de processo e o escalonamento de CPU.

Escalonamento de CPU O escalonamento de CPU no UNIX foi criado para beneficiar os processo interativos, pequenas fatias de tempo de CPU por um algoritmo de prioridade que se reduz ao Round-Robin para Jobs limitados pela CPU. Todo processo tem uma prioridade de escalonamento associada a ele, nmeros maiores indicam prioridade menor. Quanto mais tempo de CPU determinado processo acumula, menor (ou mais positiva) se torna a sua prioridade, e vice-versa, de modo que existe um feedback negativo no escalonamento de CPU e E difcil para um nico processo usar todo o tempo da CPU. O envelhecimento de processos usado para evitar paralisao.

Interface do Usurio

Gesto de processos no UNIX A gesto de processos no UNIX por prioridade e round robin. Em algumas verses tambm usada a gesto por ajuste dinmico da prioridade, de acordo com o tempo que os processos tenham esperado e com o tempo que j tenham usado a CPU. O sistema disponibiliza facilidades para criar pipes entre processos, contabilizar o uso da CPU por processo e uma pilha comum para todos os processos quando necessitam de executar em modo privilegiado (quando fizeram uma chamada ao sistema). O UNIX permite que um processo faa uma cpia de si mesmo por meio da chamada fork, a qual muito til quando se realizam trabalhos paralelos ou concorrentes. Tambm so disponibilizadas facilidades para o envio de mensagens entre processos. Recentemente a Sun Microsystems, a AT&T, a IBM, a Hewlett Packard e outros fabricantes de computadores chegaram a um acordo para usar um pacote chamado ToolTalk para criar aplicaes que usem um mesmo mtodo de transferncia de mensagens.