INTRODUÇÃO AOS SISTEMAS OPERACIONAIS agosto/2013

Propaganda
INTRODUÇÃO AOS SISTEMAS OPERACIONAIS
agosto/2013
SEMANA 03
Surgimento, desenvolvimento e evolução dos sistemas operacionais até os
sistemas modernos.
1 - Introdução
A evolução dos sistemas operacionais segue numa via paralela a da evolução dos
computadores, em suas diversas gerações desde o início do anos 1940. Não que o computador tenha
iniciado nessa época, pois sabemos que é muito anterior, mas o que chamamos de computador
moderno tem início com a arquitetura de Von Neumann.
A visão histórica do surgimento e evolução do sistema operacional precisa então partir dos
conhecimentos das gerações de computadores, desde a primeira geração até os dias de hoje.
O surgimento e evolução do sistema operacional teve por propósito aproveitar melhor os
recursos da máquina, e para cada geração de hardware foi desenvolvida uma nova geração de
sistemas operacionais. Essa evolução continua em curso.
2 - Gerações de computadores
2.1 - A primeira geração de computador (1940-1956)
Os computadores usavam válvulas, painéis e relés. Comparadas com as tecnologias atuais,
as válvulas eram muito grandes, custavam caro, eram muito pesadas, muito lentas, consumiam
muita energia, esquentavam muito e queimavam com facilidade.
A programação era manual, feita ligando circuitos em painéis. Não havia sistema
operacional nem o conceito de linguagem de programação.
No início dos anos 1950 passaram a usar cartão perfurado para codificar instruções para o
computador, que dispensou o uso de ligar circuitos em painéis. Isso agilizou a tarefa de programar a
máquina, pois as instruções nos cartões perfurados eram submetidas como jobs para o computador.
2.2 - A segunda geração de computador (1956-1963)
Introdução aos Sistemas Operacionais - www.jairo.pro.br
1/9
A segunda geração é marcada pelo uso do transistor ao invés da válvula, e foi uma grande
evolução: os transistores aumentaram em muito a velocidade de processamento, não queimavam
frequentemente e possibilitaram reduzir as dimensões e consumo de energia do computador.
Nessa geração, os computadores se tornaram confiáveis a ponto de serem comercializados e
adotados por algumas empresas. Com isso, o computador não ficou mais restrito às universidades e
institutos de pesquisa. Ainda assim, apenas grandes empresas e órgãos governamentais podiam
pagar por um computador, pois o preço era excessivamente alto.
Surgiu a programação, em linguagem assembly (montagem) ou Fortran (1956, compilação),
porém a forma de submeter o job continuava em cartão perfurado e ainda havia uma equipe de
técnicos para operar e fazer manutenção no computador. A melhoria veio na técnica de
programação com o uso da linguagem de programação, que facilitava na criação dos cartões
perfurados.
O computador lia uma pilha de cartões perfurados com as instruções e dados do
programador, e então processava a informação.
Nessa época, na maior parte do tempo o processador ficava ocioso, pois muito tempo era
gasto pelos operadores preparando os recursos necessários para a execução de cada job.
Para melhorar o uso do processador nessa
geração criaram o sistema batch1, que possibilitou criar
uma fila de jobs a ser executada sequencialmente, onde
ao final de processamento de um job o próximo já
estava quase pronto para iniciar o processamento. Mas
convém lembrar que a máquina continuava
processando apenas um programa de cada vez, e o que
reduziu substancialmente foi o tempo perdido entre a
leitura de entrada do programa e posterior
processamento, pois o sistema batch inicialmente lia as
instruções dos programas, criava uma fila de jobs e
posteriormente executava sequencialmente um a um.
Em 1963 foi lançado o IBM-7094, a um custo
de US$ 3,134,500.00 [três milhões de dólares].
Fig 1 - O mainframe IBM-7094
2.3 - A terceira geração de computador (1964-1971)
A terceira geração é marcada pelo início do uso de circuitos integrados (CI) e
multiprogramação.
O uso do CI garante melhor performance e menor custo que o transistor na segunda geração,
pois inclui numa única pastilha (chip) muitos transistores. Ao invés de produzir transistores
separados e depois ligá-los numa placa (circuito), o chip trás isso pronto em dimensões bem
reduzidas. Além disso, na segunda geração, o grande número de transistores usados produzia calor a
1 Batch: processamento em lote de jobs.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
2/9
ponto de danificar partes internas do computador. Um CI contendo alguns transistores dissipa bem
menos calor que uma placa de circuito de transistores, para fazer a mesma função desse CI.
A multiprogamação foi desenvolvida para ler um
programa enquanto processava outro. Desse modo, ao contrário
da segunda geração, agora simultaneamente processava um
programa enquanto lia outro para processar posteriormente.
Continuava um sistema batch, porém com melhor
aproveitamento do processador, que não ficava ocioso.
A multiprogamação exigiu separação de jobs na
memória, pois agora poderia haver mais de um.
Não confundir multiprogramação com multitarefa, que
é um conceito possível somente no início dos anos 1970.
Fig 2 - IBM mainframe System/360
Como exemplo, a figura ao lado mostra o IBM
System/360 [mainframe].
Nessa geração, os cartões perfurados e perfuradoras de cartão foram substituídos por
teclados e monitores. Além disso, os computadores ficaram menores e mais baratos e surgiram os
primeiros minicomputadores, fatores que contribuiram para iniciar a popularização do computador.
2.4 - A quarta geração de computador (1971 em diante)
As técnicas de CI levaram à construção do
microprocessador em 1971. A partir de então, o processamento
ficou reunido num único chip. O primeiro microprocessador
foi o Intel 4004, de 4 bits.
Nesta geração surgiu o processamento paralelo, onde o
computador é equipado com mais de uma CPU.
Surgiram diversas arquiteturas de computador, como
CISC, RISC, EPIC e ARM.
Fig 3 - Intel 4004, de 4 bits
Em 1981 a IBM criou o IBM-PC, máquina muito
difundida e usada atualmente.
2.5 - A quinta geração de computador (iniciando agora?)
A característica da quinta geração é o surgimento de máquinas que trabalhem eficientemente
fazendo uso de inteligência artificial e reconhecimento de voz.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
3/9
Espara-se que a computação quântica e a nanotecnologia mudem radicalmente a arquitetura
dos computadores nas próximas décadas.
É de se prever que o computador se torne mais miniaturizado ainda, e que de fato
acompanhe o usuário aonde quer que ele vá, mantendo o acesso à rede.
3 - Gerações de sistemas operacionais
Nesta visão histórica dos sistemas operacionais, é feita uma associação direta com as
gerações de computadores. Muitos autores preferem descrever a história dos sistemas operacionais
década a década.
Na primeira geração de computadores a programação era realizada em código absoluto,
através da fiação para controlar as funções básicas da máquina. Nessa época não havia o conceito
de software, não havia linguagem de programação e nem sistema operacional.
3.1 - Primeira geração de sistema operacional
A primeira geração de sistema operacional surge na segunda geração de computador. O
principal uso destas máquinas era para realizar cálculos científicos e de engenharia.
A programação era feita em linguagem assembly (montagem), Fortran2 ou Cobol3.
Os sistemas operacionais comuns à época eram o FMS (Fortran Monitor System) e o
IBSYS, que foram desenvolvidos pela IBM para rodar no IBM-7094.
3.2 - Segunda geração de sistema operacional
A segunda geração de sistemas operacionais surge na terceira geração de computadores.
Nesta geração, os sistemas operacionais suportam multiprogramação, spool e timesharing.
A multiprogramação envolve dividir a memória em diversas partes, para alocar um job em
cada uma dessas partes. Apenas um job processa até o final, enquanto os demais aguardam a sua
vez de processamento. Isso melhorou o desempenho do sistema pois podia processar um job após o
outro sem necessitar parar para realizar operações de entrada/saída [I/O].
O spool [Simultaneous Peripheral Operation On Line] dava a capacidade de ler jobs de
2 A linguagem Fortran foi a primeira a ser criada, e é voltada para a solução de problemas matemáticos e científicos.
Apesar de ter sido criada em 1957, está em uso até hoje. O nome é um acrônimo da expressão "IBM Mathematical
FORmula TRANslation System".
3 COBOL, Common Business Oriented Language [linguagem orientada aos negócios], foi criada em 1959 e está em
uso até hoje.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
4/9
cartão direto para o disco. Desse modo, assim que o job ativo [processando] terminasse, o sistema
operacional carregava um novo job na partição livre de memória, proveniente do disco. A leitura do
cartão era muito lenta quando comparada com a leitura do disco.
Timesharing [tempo compartilhado] surgiu ao final da terceira geração de computadores, e
permitia que usuários interativos acessassem o sistema simultaneamente, através de um terminal.
Nesta geração surgiu o TOS, Tape Operating System, ou Sistema Operacional de Fita.
Como exemplo, em 1964 veio o TOS/360, que era o sistema operacional da IBM para o
System/360. Esse sistema operacional era armazenado em fita e não mais em cartão.
O DOS/360, Disk Operating System [Sistema Operacional de Disco], veio em 1966.
O Unix começou a ser desenvolvido a partir do final do projeto MULTICS4, em 1969, mas
só passou a ser usado no início dos anos 1970.
3.3 - Terceira geração de sistema operacional
A terceira geração de sistemas operacionais surge na quarta geração de computadores.
A grande disponibilidade de poder computacional dessa geração levou ao crescimento da
indústria de software, que ganhou independência dos fabricantes de computadores. Isso levou ao
surgimento de novos sistemas operacionais, alguns dos quais ainda em uso atualmente.
Em meados dos anos 1980 surgiram os sistemas operacionais para redes e sistemas
operacionais distribuídos. Essa última categoria permite que aplicações rodem em diversos
processadores ao mesmo tempo, usando a rede. A computação distribuída é computação paralela e
descentralizada, realizada por dois ou mais computadores conectados através de uma rede com o
objetivo de concluir uma tarefa comum.
Normalmente, um sistema distribuído é coleção de computadores independentes que se
apresentam ao usuário como um sistema único e consistente. Em outras palavras, nesse caso o
usuário tem a impressão que tudo se passa no computador dele.
A partir do final dos anos 1980 e início dos anos 1990 surgiram computadores com
monitores gráficos, que levaram ao desenvolvimento de sistemas operacionais com interfaces
gráficas. Isso popularizou o computador, pois possibilitou que qualquer usuário leigo operasse a
máquina, sem necessidade de aprender comandos específicos de sistema.
Inicialmente, antes da chegada da internet comercial [no início dos anos 1990], a ênfase
estava nos sistemas operacionais para estações de trabalho e computadores pessoais.
Posteriormente, a rede se tornou onipresente e surgiram os sistemas operacionais servidores,
aplicações servidoras, sistemas clientes e aplicações clientes.
Mais interessante, nos últimos anos têm surgido equipamentos portáteis que permitem o
4 MULTICS [Multiplexed Information and Computing Service] era um sistema operacional mainframe timesharing
que iniciou em 1965 e terminou em 2000.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
5/9
acesso à internet. Como exemplos de portáteis temos smartphone, tablet e ultrabook. Além disso,
equipamentos como PDA [Personal Digital Assistant, Palm] e smart TV também permitem navegar
na internet. O vigoroso crescimento desse segmento mostra que a era do desktop com função de
acesso à internet está com os dias contados.
Por sistema operacional moderno (ou atual) entendemos aqueles que atendem à demanda de
recursos exigida pelos usuários. Por exemplo, se determinado sistema operacional de smartphone
não suporta ou tem problemas com touchscreen, então ele precisa ser atualizado ou está a caminho
da obsolecência.
Exemplos de sistemas operacionais modernos:
Linux5
Windows
Mac OS X
Solaris
AIX
HP-UX
FreeBSD6
OS/400
FreeDOS7
Android
iOS
Windows phone 8
Open source. Usado em todas as arquiteturas de computador;
Microsoft. Usado basicamente em Intel x86;
Apple. Usado em x86. Recentemente era usado em RISC Power;
Sun Microsystems. Usado em arquitetura RISC Sparc e x86;
IBM. Usado em arquitetura RISC Power;
HP. Usado em arquitetura RISC PA-RISC e EPIC Itanium;
Open source. Usado em quase todas as arquiteturas de computador;
IBM. Usado no AS/400, arquitetura RISC Power;
Open source. Usado em x86;
Open source, mantido pela Google. Usado em portáteis;
Apple. Baseado no Mac OS X (FreeBSD). Usado em portáteis;
Microsoft. Usado em smartphones.
4 – Famílias de sistemas operacionais
Um sistema operacional, para ser bem sucedido, precisa estabelecer um ecossistema. Um
ecossistema envolve fabricantes de hardware, desenvolvedores de software e principalmente uma
massa crítica de usuários do sistema. Os usuários têm preferências por sistemas simples e amigáveis
que disponham de uma ampla base de software aplicativo disponível.
Como estabelecer e manter um ecossistema é tarefa difícil, porém fundamental para a
sobrevivência do sistema operacional, então é usual o sistema pertencer a uma família. O conceito
de família envolve sistemas com as mesma características e que compartilhem uma mesma base de
softwares aplicativos, então os sistemas que pertencem a uma mesma família se fortalecem
mutuamente.
Existem duas grandes famílas de sistemas operacionais: família Windows e família Unix.
4.1 – Família Windows
5 Linux, tecnicamente falando, é só um kernel (núcleo) de sistema operacional open source (de código fonte aberto).
O código está disponível em http://www.kernel.org.
6 O sistema operacional FreeBSD está disponível em http://www.freebsd.org/.
7 O sistema operacional FreeDOS está disponível em http://www.freedos.org/.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
6/9
A família Windows atual está baseada na tecnologia NT8. As principais versões são:
Versão Windows
Data
Nome
NT 3.19
1993
NT 3.1
NT 4.0
1996
NT 4.0
NT 5.0
2000
Windows 2000
NT 5.1
2001
XP (eXPerience)
NT 5.2
2003
Windows 2003 Server
NT 6.0
2006
Windows Vista
NT 6.0
2007
Windows 2008 Server
NT 6.1
2009
Windows 7
NT 6.1
2009
Windows 2008 Server Release 2
NT 6.2
2012
Windows 8
NT 6.2
2012
Windows 2012 Server
???
2013 (a ser lançado no final do ano)
Windows 8.1
4.2 – Família Unix
A primeira versão do Unix veio em 1971, e rodava em máquinas DEC10 e Mainframes. Em
1973 o Unix foi reescrito em C, linguagem essa criada especificamente para reescrever o código
fonte do Unix.
Atualmente não existe mais o sistema Unix, mas sim sistemas baseados naquele conceito, e
Unix é uma marca registrada do The Open Group11. Os sistemas Unix se dividem em vários ramos
de sistemas criados e suportados por diversos fabricantes.
Inicialmente o Unix era um sistema aberto, apropriado ao ambiente acadêmico, daí a sua
popularidade. Posteriormente diversas empresas surgiram, cada uma suportando o seu Unix. E para
garantir a não fragmentação da arquitetura Unix em diversos sistemas operacionais incompatíveis
entre si, foi criado o padrão ou comitê POSIX.
O POSIX, Portable Operating System Interface for Unix, de 1988, é um conjunto de
definições e convenções que padroniza a interface [linha de comando], o conjunto de bibliotecas
dos sistemas Unix e as suas chamadas de sistema [system calls].
A partir do POSIX, é mais correto classificar os sistemas Unix como membros de uma
família, isto é, família Unix.
8 NT vem de New Technology (nova tecnologia) que foi criada pela Micrososft no início dos anos 1990 para
contrapor-se ao antigo Windows baseado no MS-DOS.
9 O lançamento foi na versão 3.1.
10 DEC: Digital Equipment Corporation, posteriormente adquirida pela Compaq, que foi comprada pela HP.
11 The Open Group: É um consórcio da indústria de software para prover padrões abertos e neutros para a
infraestrutura de informática.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
7/9
Posteriormente o padrão POSIX foi extendido pelo The Open Group, pela publicação da
Single Unix Specification, que é uma família de padrões para sistemas operacionais qualificados
para o nome Unix. Os sistemas não qualificados em acordo com a Single Unix Specification são
chamados de Unix-like. Por exemplo, os sistemas AIX, HP-UX e Mac OS X são sistemas Unix
registrados, já Linux e FreeBSD são Unix-like.
Após o POSIX, tecnicamente o Unix passa a ser tratado como uma família de sistemas
operacionais. Essa família é composta tanto por membros proprietários quanto membros de código
fonte aberto.
Os principais membros dessa grande família são:
Sistema Operacional
Fabricante
Arquitetura do computador
Solaris [SunOS]
Sun12 Microsystems [proprietário]
RISC - processador Sparc
AIX
IBM [proprietário]
RISC - processador PowerPC
HP-UX
HP [proprietário]
RISC - processador PA-RISC
Linux
Código fonte aberto [open source]
todas
FreeBSD
Código fonte aberto [open source]
todas
Mac OS X
Apple [proprietário]. Porém, o kernel XNU Atual: x8613. Anterior: RISC
é open source
PowerPC
Da tabela acima, a arquitetura do computador vem da época da adaptação do Unix para a
arquitetura RISC, porém atualmente temos também Solaris rodando em CISC [x86] e HP-UX em
EPIC [Itanium].
Apesar da definição de Unix como família de sistemas, no ambiente corporativo costuma-se
ainda usar o termo "Unix" para os membros proprietários e Linux/FreeBSD para os de código fonte
aberto.
Mais recentemente, novos sistemas operacionais surgiram baseados nos sistemas Unix-like
de código fonte aberto. É o caso do iOS e Android.
Sistema Operacional
Fabricante
Arquitetura do computador
ARM15
iOS [iPhone OS]
Apple [proprietário]. Porém, o kernel
XNU14 é open source
Android
Open Handset Alliance16 [open source] ARM, x86
12
13
14
15
Em 2010 a Sun Microsystems foi comprada pela Oracle.
x86: é a linha de processadores da Intel, que é de arquitetura CISC.
XNU: é um acrônimo e significa X is Not Unix.
ARM: significa Advanced RISC Machine e pertence à empresa ARM Holdings. Difere do RISC tradicional por ter
apenas 32 bits e consumir pouca energia. É uma arquitetura específica para equipamentos portáteis. 98% dos
celulares do mundo usam processador ARM.
16 Open Handset Alliance: Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, LG, Samsung, TMobile e Nvidia.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
8/9
O iOS é baseado no Mac OS X. O kernel [núcleo do sistema operacional] do Mac OS X é
XNU, que é um híbrido entre kernel FreeBSD e kernel Mach. Darwin também é considerado kernel,
porém trata-se do kernel XNU acrescido de outras porções do sistema.
Tanto FreeBSD quanto Mach são Unix-like, já o Mac OS X é um sistema Unix registrado.
Por sua vez, o iOS é Unix-like.
O Android usa o kernel Linux. No entanto, Android não é Unix-like, mas pode-se dizer que
é baseado no Linux.
Tanto iOS quanto Android são sistemas desenvolvidos para equipamentos portáteis como
celulares, tablets e ultrabooks17.
Voltando ao Unix e considerando a popularidade dos novos sistemas derivados e baseados
nele, é fácil concluir que essa família continua bem atual, embora tenha mais de 40 anos de idade.
5 - Panorama para os sistemas operacionais no futuro
A associação de reconhecimento de voz com inteligência artificial poderia permitir a
comunicação direta (natural) entre seres humanos e máquinas. Comando de voz já existe, porém é
muito limitado e defeituoso ainda. O que se espera do futuro é efetivamente interagir com a
máquina, como se estivesse falando com uma pessoa.
Além de se tornarem cada vez mais tranparentes para o usuários, os sistemas operacionais
precisarão adaptar-se rapidamente à demanda por novas funcionalidades. E a época em que o
usuário precisava conhecer o sistema operacional para usar eficientemente o computador, também
vai passar a fazer parte da história.
Outro aspecto a ser levado em consideração, é a extinção em massa de sistemas nascidos no
início da terceira geração de sistemas operacionais: CP/M, PC-DOS, MS-DOS, NW-DOS, DRDOS, OS/2, e Digital Unix, só para citar alguns que não tem mais suporte por parte dos fabricantes.
O ponto em comum entre eles é que são proprietários, o que mostra que essa categoria de sistema
tem um ciclo de vida curto. Em contraste, os de código fonte aberto parecem ser mais adaptáveis e
por isso mais resistentes às rápidas mudanças originadas na demanda de novos recursos por parte
dos usuários.
17 Ultrabook é um conceito de notebook/netbook mais fino, leve, de baixo consumo de energia e armazenamento de
dados em memória flash.
Introdução aos Sistemas Operacionais - www.jairo.pro.br
9/9
Download