O documento descreve a história do sistema operacional UNIX, começando com os primórdios da computação e da corrida armamentista entre EUA e URSS após a Segunda Guerra Mundial. Apresenta como projetos como o SAGE e o MULTICS influenciaram o desenvolvimento de sistemas operacionais e como o UNIX surgiu em 1969 na Bell Labs, se tornando um sistema portátil e de código aberto que revolucionou a computação.
1. 1
50 Anos do UNIX
Uma história do sistema operacional
mais importante de todos os tempos
Marcelo Sávio
Arquiteto de TI
msavio@gmail.com
http://www.linkedin.com/in/msavio
6. 6
Teste de Bomba Atômica
no Atol de Bikini,
Ilhas Marshall, EUA
(1946)
Teste de Bomba Atômica
em Semipalatinsk
Cazaquistão, URSS
(1948)
Teste da Bomba-H,
no Atol de Enewetak,
Ilhas Marshall, EUA
(1952)
Teste da Bomba-H
em Semipalatinsk
Cazaquistão, URSS
(1955)
As bombas eram lançadas por aviões especiais...
Bombas nucleares
7. 7
Como se proteger de ataques nucleares?...
B-29
B-36
B-52
TU-20
TU-4
TU-16
Aviões
Bombardeiros
12. 12
Apesar de ter se tornado obsoleto no momento em que ficou
totalmente pronto – em 1962 as principais ameaças já não eram
mais os aviões bombardeiros, mas sim os mísseis balísticos
intercontinentais, contra os quais o sistema era inútil – o SAGE
trouxe uma série de inovações que, em forma de ideias ou
tecnologias, abasteceram a nascente indústria de informática:
Multiprocessamento
Sistema de tempo compartilhado (timesharing)
Processamento distribuído
Memória de núcleos magnéticos
Modem (conversão Analogico/Digital)
Gerenciamento de banco de dados em tempo real
Terminais gráficos interativos e Light Pen
Redes de computadores
Correção automática de erros
I/O “bufferizado”
Engenharia de Software (500 mil linhas de código)
Alta disponibilidade
Avanços tecnológicos do SAGE
13. 13
Além da corrida armamentista houve a corrida espacial
Em 1957 a União Soviética lançou os
satélites Sputnik 1 e 2 e saiu na
frente na corrida espacial.
Selos comemorativos
Aliás a liderança soviética perdurou por mais de uma década:
- 1º satélite (Sputnik 1)
- 1º ser vivo enviado ao espaço (a cadela Laika)
- 1ª nave a pousar na Lua (Lunik 2)
- 1ª nave a fotografar o outro lado da Lua (Lunik 3)
- 1º astronauta (Yuri Gagarin)
- 1º vôo conjunto de duas espaçonaves (Vostok III e IV)
- 1ª mulher ao espaço (Valentina Tereshkova)
- 1ª nave a levar mais de um tripulante (Voskhod 1)
- 1º astronauta a “caminhar” no espaço (Alexei Leonov)
- A espaçonave com maior período de uso na história da exploração espacial (Soyuz).
Paranoia norteamericana
14. 14
Acelerando as pesquisas
Os EUA criaram no mesmo ano de 1957,
dentro do Departamento de Defesa, a
agência ARPA (Advanced Research
Project Agency) para reconduzir o país à
liderança tecnológica.
• No ano seguinte criou a NASA (National Aeronautics and
Space Administration) para coordenar a cuidar
especificamente da corrida espacial.
• A ARPA quase foi desfeita, mas se reposicionou como fomentadora de diversas
tecnologias de longo prazo, sem necessariamente ter um objetivo militar específico.
15. 15
Na ARPA foi criada a divisão IPTO (Information Processing Techniques Office).
O objetivo original do IPTO era incentivar a pesquisa em tecnologias de computadores
– redes, sistemas multiusuário (timesharing), interfaces homem-máquina, etc.,
estendendo a experiência feita no SAGE.
As Instituições inicialmente agraciadas:
MIT (Massachussets Institute of Technology)
Carnegie-Mellon University
RAND Corporation
Stanford Research Institute (SRI)
System Development Corporation
University of California at Berkeley (UCB)
University of California at Santa Barbara (UCSB)
University of California at Los Angeles (UCLA)
University of South Carolina
University of Utah
As pesquisas em computação
1962
16. 16
IBM S/360-75
Santa Barbara (UCSB)
SDS Sygma 7
Los Angeles (UCLA)
SDS 940
Stanford (SRI)
DEC PDP 10
Utah (UU)
I M P
I M P
I M P
O projeto mais famoso do IPTO
1º Set
1º Out
1º Nov
1º Dez
I M P1969
17. 17
Outros projetos financiados pelo IPTO:
NLS (On-Line System)
Stanford Research Institute
Douglas Engelbart Mouse
NLS
1968
18. 18
O Projeto MAC
Massassuchetts Institute of Technology
Este projeto inicialmente criou o
sistema operacional CTSS
(Compatible Time Sharing System)
para o computador IBM 7094 que
suportava 30 usuários on-line
simultaneamente.
.
O IPTO também patrocinou o Projeto MAC (Multiple
Access Computers que visava desenvolver sistemas
de uso compartilhado (time sharing)
1963
19. 19
O Sistema Operacional MULTICS
No Projeto MAC, o MIT começou o desenvolvimento de um novo sistema
operacional multiusuário que fosse capaz de suportar mais de 300 usuários
simultâneos on-line.
Este sistema chamava-se MULTICS (Multiplexed Information and Computing
Service)
A General Electric e a Bell Laboratories se juntaram ao MIT neste projeto e cada um
tinha um objetivo:
O MIT queria desenvolver pesquisas em
sistemas operacionais (timesharing);
A GE queria vender computadores com o
novo Sistema Operacional;
A Bell Labs queria um bom sistema para
usar no ambiente administrativo.
1964
21. 21
A Reação da IBM
A IBM estava perdendo prestígio em dois clientes importantes: MIT e Bell
Apesar de nova no mercado, a GE estava se tornando uma ameaça
Os sistemas timesharing estavam começando a se tornar uma necessidade do
mercado e os computadores da IBM ainda não tinham isso, principalmente o
então novíssimo IBM System/360 (lançado em 1964).
Foi criada uma “Força Tarefa” na IBM para
aprimorar seus sistemas operacionais
1965: Sistema operacional TSS para o
computador IBM S/360 Modelo 67
1967: Sistema operacional CP/67 (CP/CMS)
Evolução dos Sistemas Operacionais dos
computadores de grande porte da IBM:
• CP/CMS --> VM/370 --> VM/XA --> VM/ESA --> VM/390 --> z/VM
• DOS/360 --> DOS/VS --> DOS/VSE --> VSE/ESA --> z/VSE
• OS/360 MVT --> OS/VS2 --> MVS/370 --> MVS/XA --> MVS/ESA -->OS/390 --> z/OS
22. 22
E o projeto MULTICS?
No final de 1969 a Bell Labs deixou o Projeto, que continuou com o apoio
da Honeywell (que comprou a divisão de computadores da GE).
O MIT saiu parcialmente do Projeto em 1970 e totalmente em 1975.
Em 1974 a Honeywell lançou sua primeira versão comercial, que foi um
fracasso em vendas.
A última máquina com o MULTICS foi desligada em Outubro de 2000
(no Depto. de Defesa Nacional do Canadá)
Principais contribuições do MULTICS:
Sistema de arquivos hierárquico
Memória virtual
Implementação em linguagem de alto nível
Multiprocessamento
Suporte a múltiplas linguagens
Segurança
Reconfiguração on-line
Engenharia de Software
24. 24
Continuando as pesquisas em
sistemas operacionais
Kenneth Thompson e Dennis Ritchie
(ambos da AT&T Bell Labs) trabalhavam
no desenvolvimento do sistema de
arquivos do sistema operacional
MULTICS no Projeto MAC.
Quando a Bell abandonou o Projeto
MULTICS, resolveram continuar as
pesquisas dentro da AT&T.
Também quiseram preservar um jogo
simulador chamado Space Travel que haviam
desenvolvido durante o Projeto MULTICS e
quiseram portá-lo para outro computador que
houvesse disponível na Bell.
1969
25. 25
O Sistema Operacional UNIX
Em 1970 o Depto. de Patentes da Bell
comprou um DEC PDP-11/45, para onde o
UNIX foi foi logo portado. A própria Bell
passou a utilizar o sistema.
Conseguiram um minicomputador DEC PDP-7
emprestado de outro departamento interno e
começaram a desenvolver um sistema operacional
para rodar o Space Travel.
Escreveram o sistema operacional, uma
interface shell, um editor de textos, um
assembler e o sistema de arquivos. Este novo
sistema foi inicialmente chamado de “UNICS”
(UNIplexed Information and Computing
Service), que depois virou UNIX
26. 26
O anúncio do UNIX
Ritchie e Thompson apresentaram
pela primeira vez o UNIX em um
simpósio sobre sistemas
operacionais promovido pela IBM
no seu Centro de Pesquisas
Watson nos EUA
Após esse simpósio começaram a
receber contatos de pedidos para
fornecerem uma cópia do sistema.
IBM Watson Research Center
Yorktown, New York (EUA)
1973
27. 27
A disseminação do UNIX
Ritchie e Thompson publicaram
um artigo da Communications of
the Association for Computing
Machinery (CACM), o que
aumentou ainda mais a
visibilidade do sistema.
1974
28. 28
As universidades e a disseminação do UNIX
• A partir de 1974, várias Universidades
(Harvard, Berkeley, Stanford, etc.) se
interessaram pelo sistema e o
adquiriram por um preço simbólico do
custo da fita e manuais (e sem direito a
suporte).
• A AT&T estava proibida por lei (desde
1956) de comercializar produtos fora do
mercado de telefonia e telegrafia. Esta
lei valeu até 1982.
29. 29
A portabilidade do UNIX
Até 1975, para se rodar o UNIX era necessário possuir um computador
DEC PDP 11, até que, na Versão 4 ,o sistema foi completamente
reescrito na linguagem de programação C, o que facilitou sua futura
portabilidade para outras máquinas.
A primeira versão do UNIX em máquina não-
DEC rodou (em 1976) em um computador
IBM System 360 Modelo 91 na
Universidade de Princeton.
Posteriormente, nos Laboratórios da Bell o
UNIX rodou em máquinas Interdata 8/32
30. 30
Falando do C...
A primeira especificação formal da Linguagem C
aconteceu somente em 1978 com o lançamento
do livro “The C Programming Language”, escrito
por Brian Kernighan e Dennis Ritchie
Linguagem de programação criada por Dennis Ritchie, baseada na
Linguagem B.
A Linguagem B era uma adaptação (simplificação) da linguagem BCPL (Basic
CPL) criada por Martin Richards em 1967, no Projeto MAC, que por sua vez
era um adaptação da linguagem CPL.
A linguagem CPL (Combined Program Language) foi desenvolvida na
Inglaterra em 1963, nas Universidades de Cambridge e de Londres e era
baseada na linguagem ALGOL
A linguagem ALGOL (Algorithmic Oriented Language) foi criada em 1958
por um grupo internacional de especialistas. Era uma linguagem estruturada
de alto nível, voltada para aplicações científicas.
31. 31
Berkeley e a disseminação do UNIX
• Em 1975 Thompson foi convidado a dar aulas
sobre sistemas operacionais na Universidade
de Berkeley.
• A partir do ano seguinte o CSRG (Computer
Sciences Research Group) dessa universidade
criou e começou a distribuir fitas com versões de
UNIX com uma série de extensões e
complementos desenvolvidos localmente. Essa
distribuição ficou conhecida como BSD (Berkeley
Software Distribution)
• Uma das extensões mais importantes foi a
implementação do protocolo TCP/IP de forma
nativa, que transformou o UNIX no sistema
padrão da ARPANET (e posteriormente da
Internet).
32. 32
O compartilhamento de software
• Até a década de 70, o valor de um computador (basicamente mainframes
e minicomputadores) estava contido essencialmente no hardware. A
maioria dos fabricantes fornecia o código fonte de seus sistemas
operacionais e aplicativos e, embora as licenças não explicitassem
claramente a liberdade, a redistribuição do software era comum e vista
como ação positiva.
IBM System/360
DEC PDP-8
Burroughs Datatron 220
33. 33
O compartilhamento de software
• Havia um grande compartilhamento de software entre os participantes
dos grupos de usuários de computadores, exemplos:
– SHARE (sistemas IBM)
– DECUS (sistemas DEC)
– CUBE (sistemas Burroughs)
– Etc.
• Os fabricantes até estimulavam o compartilhamento de informações e
melhorias de software produzidas entre seus usuários como forma de
diminuir os custos de suporte. Assim o software era, em geral,
desenvolvido de forma cooperativa e aberta.
• Ou seja, ainda que não houvesse esse termo o software era, na maior
parte dos casos, aberto e livre.
Grupo de Usuários de sistemas IBM
(fundado em 1955 e existe até hoje)
https://www.share.org/
34. 34
O surgimento do Software Business
A partir de meados da década de 70 o cenário começou a mudar:
» Surgiram mais fabricantes de hardware (minicomputadores e
microcomputadores);
» O software começou a ser comercializado em separado do
hardware;
» O software deixou de ser específico de cada fabricante de
hardware;
» Surgiram as empresas especializadas em desenvolver e
comercializar software;
» Surgiram novos modelos de licenciamento, uso e propriedade
intelectual dos códigos (programas).
35. 35
Richard Stallman era um hacker que trabalhava, desde 1971, no
laboratório de Inteligência Artificial do MIT (AI Lab) como analista de
suporte e desenvolvimento.
OBS: O termo hacker havia sido criado no próprio MIT, na década
anterior e designava as pessoas que buscavam incansavelmente conhecer
cada vez mais dos computadores e que acreditavam no livre intercâmbio
de informações.
O (re) surgimento do Software Livre
36. 36
Stallman e o início do
movimento do software livre
Em 1974, o AILab do MIT iniciou o projeto LispMachine, um sistema
operacional monousuário especializado para rodar programas em Lisp,
linguagem de programação voltada para a Inteligência Artificial
Esse projeto, no início da década de 80, deu origem a duas empresas
(Symbolics e Lisp Machines Inc.), que acabaram por contratar todos
os outros hackers do AI Lab e comercializar versões dos programas que
ali haviam sido criados, impondo restrições de uso e de acesso ao
código fonte.
Em 1982 também chegaram ao AILab os novos computadores DEC
VAX, com sistema operacional sem código fonte.
Esses fatos ( principalmente) motivaram Stallman a lançar o
Manifesto GNU e criar o movimento do Software Livre...
37. 37
O Manifesto GNU
Nesse manifesto Stallman convocava
pessoas e empresas a investirem nessa
idéia contribuindo com dinheiro, máquinas
e/ou tempo. As doações serviriam para
desenvolver software totalmente livre.
Em 1983, Stallman divulgou o Manifesto GNU, que
anunciava a intenção da criação de um novo sistema
operacional completo, utilizando-se única e exclusivamente
programas livres (Free Software).
Livro de 2002
38. 38
A Free Software Foundation
Em 1984, Stallman deixou seu emprego no MIT e deu início a
criação dos programas do Projeto GNU.
Em 1985, como mais pessoas já estavam envolvidas no projeto,
era hora de buscar mais investimentos a fim de poder manter
um grupo permanente de desenvolvimento. Foi então criada a
Free Software Foundation (FSF).
39. 39
Definição de Software Livre (segundo a FSF)
“Software Livre é uma questão de liberdade”
Liberdade de executar um programa, para qualquer propósito;
Liberdade de estudar como um programa funciona, e adaptá-lo para as
suas necessidades;
Liberdade de redistribuir cópias de modo que você possa ajudar aos
demais;
Liberdade de aperfeiçoar um programa, e liberar os seus aperfeiçoamentos,
de modo que toda a comunidade também se beneficie;
40. 40
GPL (General Public License)
Não
GPL
GPL
Não distribuir Remover
código
GPL
Distribuir
Sob
GPL
Software proprietário
Software livre
contiver
http://www.gnu.org/licenses/gpl.html
A GPL é a licença com maior
utilização por parte de projetos
de software livre (GNU, Linux,
wikipedia, etc.)
Se
então
– Em Janeiro de 1989 a FSF criou a licença GPL;
– Em Junho de 1991 a GPL evoluiu para a segunda versão;
– Em Junho de 2007 a GPL v3 foi publicada.
41. 41
• Muitas vezes o termo software livre (free software) se
confunde com software aberto (open source). Isso passou
a acontecer principalmente após a criação da
Open Source Initiative (OSI), em 1988.
• Diferentemente da FSF, a OSI não tem licenças próprias, mas certifica
todas as dezenas licenças atualmente existentes no mercado (inclusive as
da própria FSF) dentro de seus próprios parâmetros de software aberto.
• A OSI é uma entidade conciliadora, que tenta garantir às empresas que
praticam o modelo comercial de desenvolvimento de software, uma porta
de entrada no movimento de software aberto sem necessariamente
adotar as licenças da FSF, representando assim uma espécie de
alternativa intermediária.
• Todo software livre é, por definição, aberto, porém nem todo software
aberto é livre.
Software livre e/ou aberto?
https://opensource.org/
43. 43
Mas o que significa GNU?
GNU significa “Gnu is Not Unix”. É o nome de
um sistema operacional completo, compatível
com o UNIX. Esse projeto representa a
concretização da filosofia Software Livre.
E por que não poderia ser UNIX?
44. 44
O produto comercial UNIX
A partir 1982 (System III, versão 7), a
AT&T passou a tratar o UNIX como um
produto comercial e a não liberar mais o
código fonte... e a acionar judicialmente
quem usasse o nome ou código do UNIX
sem licença.
Algumas empresas licenciaram o UNIX para
poderem lançar suas “versões”:
DEC Ultrix
HP UX
IBM AIX
Microsoft Xenix
Sun OS
Unisoft UNIPLUS
Venturcom Venix
etc. Primeira propaganda do UNIX
45. 45
O UNIX no Brasil
• Algumas universidades brasileiras até tentaram licenciar o UNIX, mas
não obtiveram sucesso por causa de contendas comerciais entre o Brasil
e os EUA. Então partiram para desenvolver sistemas próprios,
compatíveis com UNIX, mas sem usar código da AT&T.
• Em 1982 o Núcleo de Computação Eletrônica da UFRJ criou o
Projeto PLURIX. Outras universidades também o fizeram, como a
UFMG (DCC-IX) e USP (Real).
• Algumas empresas nacionais também desenvolveram seus próprios
sistemas, como a COBRA (SOX ), EDISA (Edix), DigiRede (Digix) e
Softec (Analix).
• Mas depois chegaram ao Brasil os sistemas UNIX licenciados e hoje
nenhum desses sistemas nacionais existe mais, com exceção do Plurix,
que se transformou no TROPIX em 1994, e
ainda existe na UFRJ.
http://www.tropix.nce.ufrj.br/
46. 46
O surgimento dos Unixes BSD
• As fitas que Berkeley distribuía continham código original da AT&T,
por isso também necessitavam licenças.
• No início dos Anos 90 surgiram projetos para se escrever um sistema
UNIX BSD sem código da AT&T, como foram os casos do 386BSD e
da BSDi. Mesmo assim as distribuições BSD foram alvo de batalhas
judiciais (que hoje já estão encerradas).
• Em 1993 o 386BSD deu origem aos sistemas NetBSD e FreeBSD.
• Em 1996 surgiu o OpenBSD, derivado do NetBSD.
• Em 2003 surgiu o DragonFlyBSD, derivado do FreeBSD.
47. 47
Outros UNIX “acadêmicos” (e sem código da AT&T)
XINU (Xinu Is Not Unix)
Douglas Comer
1979
MINIX
Andrew Tanenbaum
1987
48. 48
Corte rápido para a batalha das padronizações do UNIX
• Hoje a especificação do UNIX está sob a “guarda” do Open Group
http://www.unix.org/
• Em meados dos anos 80, as duas famílias mais comuns do UNIX eram o BSD e o System V da AT&T.
• Em 1984 um grupo de fornecedores formou a organização X/Open, com o objetivo de desenvolver um padrão para
sistemas abertos. Eles escolheram o UNIX como a base deste sistema.
• O X/Open acabou chamando a atenção da AT&T, que respondeu com um acordo com a Sun Microsystems, a líder de
então no fornecimento de sistemas da família BSD, para aumentar a uniformidade do UNIX e iniciar um trabalho, em
1987, no desenvolvimento de um sistema unificado. Este sistema foi lançado com o nome System V Release 4 (SVR4).
• Outro fornecedores que licenciavam o UNIX temeram que a Sun pudesse receber uma vantagem excessiva e então
formaram em 1988 a Open Software Foundation (OSF). No mesmo ano, a AT&T e outros fornecedores responderam
com a criação da UNIX International (UI) As questões técnicas logo deram lugar a uma disputa comercial pública e
despudorada pelas duas versões "abertas" do UNIX, com o X/Open defendendo um ponto de vista intermediário.
• Em 1993 os principais participantes da UI e da OSF formaram a aliança Common Open Software Environment (COSE),
marcando o final efetivo da parte mais significativa da era das guerras do UNIX. Em junho, a AT&T vendeu os seus
direitos sobre o UNIX para a Novell e, em outubro, a Novell transferiu a marca UNIX para a X/Open. No ano seguinte, a UI
e a OSF se fundiram em uma nova instituição que manteve o nome OSF.
• Surgiram algumas rupturas ocasionais promovidas por “facções” do UNIX, como a aliança "3DA", entre as empresas HP e
SCO, e o Projeto Monterey, de 1998 liderado pela IBM e Intel.
• Em 1996, a X/Open e a nova OSF se fundiram para formar a organização The Open Group. O trabalho da aliança COSE,
como a especificação Single UNIX Specification, tornou-se o padrão para os sistemas UNIX licenciados e hoje é de
responsabilidade do The Open Group. Apesar da convergência, o dano à reputação do UNIX no mercado já havia ocorrido
e o grande vencedor dessa batalha foi o Sistema Operacional Windows NT da Microsoft.
49. 49
O surgimento do Linux
• Kernel de sistema operacional baseado no MINIX, desenvolvido
originalmente por Linus Torvalds, 21 anos, aluno da Universidade de
Helsinki (Finlândia) em meados de 1991.
50. 50
O Linux
• Em duas semanas após o anúncio de Torvalds em
1991, 30 pessoas tinham contribuído com cerca de
200 informes de erros, contribuições de utilitários,
drivers e melhorias para serem adicionadas ao kernel
• Em Julho de 1995, mais de 15.000 pessoas de 90
países em 5 continentes tinham contribuído com
comentários, informes de erro, correções, alterações,
reparos e melhorias.
51. 51
GNU + Linux:
Mas como:
O HURD ainda levaria muito tempo…
Os sistemas BSD estavam sob batalhas judiciais…
O Linux já estava por aí rodando e dando bons resultados...
Então foi só uma questão de tempo unir o kernel
Linux ao sistema GNU, daí o nome GNU/Linux.
O licenciamento através da GPL e a utilização da Internet como o canal
principal de comunicação e desenvolvimento transformaram o Linux no
mais importante exemplo de software livre desenvolvido de forma aberta
e descentralizada.
No início dos anos 90 o sistema GNU estava praticamente completo
faltando um último (e importante) componente: o kernel do sistema.
Foi decidido então pela implementação do HURD, baseado no Mach (um
microkernel desenvolvido na Universidade Carnegie Mellon).
53. 53
A Lenda: “Tanenbaum e Linux são inimigos”
“ Linus and I are not "enemies" or anything like that. I met him once and he
seemed like a nice friendly, smart guy. My only regret is that he didn't develop
Linux based on the microkernel technology of MINIX “
I REALLY am not angry with Linus. HONEST. He's not angry with me either.
54. 54
A distribuições Linux
O Linux é normalmente usado como parte de um distribuição (“distro”).
As distros são criadas por indivíduos, grupos ou empresas.
Apesar de possuírem um kernel comum (Linux versão x.y.z), as distros
divergem quanto às ferramenta de instalação, qualidade/quantidade de
documentação, programas aplicativos adicionais (de diversos tipos),
suporte, preço, etc.
Existem centenas de distribuições. As mais usadas são:
+ uso corporativo + uso pessoal
56. 56
Sputnik DARPA IPTO
MIT
Arpanet
Redes de
Pacotes
RAND
MULTICS
UNIX
CTSS
Linguagem B
Linguagem C
Linguagem CPL
Linguagem BCPL
ALGOL
X-Window
Internet
WWW
Mozilla
TCP/IP
Project MAC
Berkeley
UCLA
BBN
UCSB
Utah
AT&T
Linux
URSS EUA
Mosaic Apache
GNU
Netscape
IBM
Minix
LCS
AI Lab
GE
O Rizoma do UNIX
Plurix, SOX etc