Você está na página 1de 54

SERVIO PBLICO FEDERAL

MEC-SETEC
INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DE MATO
GROSSO
DEPARTAMENTO DA REA DE INFORMTICA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES

WILLDSON GONALVES DE ALMEIDA

MTODO DE VIRTUALIZAO PARA DISPONIBILIZAO DE


SOFTWARES EM LABORATRIOS REMOTOS INTERATIVOS

Cuiab MT
2011

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DE MATO


GROSSO
DEPARTAMENTO DA REA DE INFORMTICA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES

WILLDSON GONALVES DE ALMEIDA

MTODO DE VIRTUALIZAO PARA DISPONIBILIZAO DE


SOFTWARES EM LABORATRIOS REMOTOS INTERATIVOS

Cuiab MT
2011

Ficha Catalogrfica
ALMEIDA, Willdson Gonalves de
MTODO DE VIRTUALIZAO PARA DISPONIBILIZAO DE
SOFTWARES EM LABORATRIOS REMOTOS INTERATIVOS
Cuiab MT, 2011
Total de folhas do TCC: 54
SANTOS, Reginaldo Hugo Szezupior dos
Instituto Federal de Educao, Cincia e Tecnologia de Mato Grosso.
Trabalho de Concluso do Curso de Tecnologia em Redes de
Computadores.

WILLDSON GONALVES DE ALMEIDA

MTODO DE VIRTUALIZAO PARA DISPONIBILIZAO DE


SOFTWARES EM LABORATRIOS REMOTOS INTERATIVOS

Trabalho de Concluso de Curso


apresentado ao Departamento da rea de
Informtica do Curso Superior de
Tecnologia em Redes de Computadores
do Instituto Federal de Educao, Cincia
e Tecnologia de Mato Grosso Campus
Cuiab, como requisito para obteno do
ttulo de Tecnlogo em Redes de
Computadores.

Orientador: Prof. Msc. Reginaldo Hugo Szezupior dos Santos

Cuiab - MT
2011

WILLDSON GONALVES DE ALMEIDA

MTODO DE VIRTUALIZAO PARA DISPONIBILIZAO DE


SOFTWARES EM LABORATRIOS REMOTOS INTERATIVOS

Trabalho de Concluso de Curso em


Redes de Computadores, submetido
Banca Examinadora composta pelos
Professores do Departamento da rea de
Informtica do Instituto Federal de
Educao, Cincia e Tecnologia de Mato
Grosso, como parte dos requisitos
necessrios obteno do ttulo de
tecnlogo.

Aprovado em 30 de dezembro de 2011 s 13:30 horas.

Cuiab MT
2011

DEDICATRIA

Dedico aos meus familiares, amigos, e aos


professores
trabalho.

que

contriburam

para

este

AGRADECIMENTOS

Agradeo primeiramente a Deus por me guiar em todos os momentos.


Aos meus pais, Delgado e Aparecida, por seu amor e carinho, e por me ensinarem o
valor da honestidade e do estudo, incentivando sempre a perseguir meus objetivos, ainda
que sonhadores demais.
Aos meus irmos, Willkson, Willverson e Raianny, por sua amizade e por sempre
me ouvirem, alm de todo o incentivo.
s minhas avs Clara (in memoriam), que com certeza est muito feliz por esta
conquista e av Guanira, por todo o nimo e amor depositado.
Aos no mais colegas, mas sim amigos, da minha turma na faculdade, Maryel
Juliane, Jean Carlos, Catiane Nascimento, Jlio Mrio, Carlos Kempa, Taisy Barros, Vania
Loureno, Rafael Leo, Thiago Nabor, Renan Susuki, Hliton Ponce, Wanderlei Leo, Joo
Carlos, Carolina Galante, Felipe Galdino, Bruno Vitali e Ibrahin Barana.
Ao amigo Lucas Ramalho, pelas contribuies.
Ao meu orientador, Reginaldo Hugo, pelo tempo disponibilizado entre suas tantas
atividades, contribuindo para a elaborao deste trabalho.
Aos demais professores do Departamento da rea de Informtica, em especial
Andr Valente, Guilherme Pires, Juliana Saragiotto, Snia Regina e Jacira Soares.
A Silvana e a Laura do Departamento da rea de Informtica do IFMT, pelo
atendimento sempre cordial.
A todos os outros que passaram por minha vida, colaborando direta ou
indiretamente na realizao deste.
A todos estes, meus mais sinceros agradecimentos.

A vida sem cincia uma espcie de morte.


(Scrates)

RESUMO
Este trabalho descreve um mtodo de disponibilizao de softwares em
laboratrios remotos interativos, no contexto do Ensino a Distncia. Laboratrios
remotos so amplamente utilizados em instituies de ensino, pesquisa e tecnologia.
Um dos desafios na implantao desses ambientes de aprendizagem a
disponibilizao de programas aplicativos com segurana, escalabilidade e
gerenciabilidade. O objetivo deste trabalho a elaborao de um mtodo para
disponibilizar programas da rea de laboratrio para usurios geograficamente
distribudos. O mtodo utiliza mquinas virtuais para hospedagem dos softwares
utilizando servios de terminais remotos para prover o acesso. Permitindo uma
melhor gesto dos usurios e dos recursos a serem disponibilizados bem como do
hardware que hospedar essa infraestrutura.

Palavras-chave: EaD, Laboratrio Remoto, Sistemas Operacionais, Virtualizao,


Xen.

ABSTRACT

This work describes a method of providing remote interactive laboratory


software in the context of e-learning. Remote laboratories are widely used in
educational institutions, research and technology. One of the challenges in the
implementation of these learning environments is the availability of software
applications with security, scalability and manageability. The objective of this work is
to develop a method to provide programs in the area of laboratory for geographically
distributed users. The method uses virtual machines for hosting the software using
terminal services to provide remote access. Allowing better management of users
and resources to be available and the hardware that will host this infrastructure.

Keywords: E-learning, Remote Laboratory, Operating Systems, Virtualization, Xen.

LISTA DE ILUSTRAES
Figura 1 Comparaes entre os modelos de ensino .............................................. 17
Figura 2 Sistema computacional ............................................................................ 19
Figura 3 Funcionamento do sistema operacional ................................................... 20
Figura 4 Cronologia da famlia de sistemas operacionais Windows (1985-2010) .. 24
Figura 5 rea de trabalho do sistema operacional Windows Server 2008 R2 ....... 24
Figura 6 rea de trabalho da distribuio Ubuntu Linux v.10.04 ............................ 27
Figura 7 Modelo conceitual de mquinas virtuais................................................... 28
Figura 8 Viso dos servios na consolidao de servidores .................................. 30
Figura 9 Diminuio do nmero de servidores com a virtualizao ....................... 31
Figura 10 Mquina virtual de processo .................................................................. 33
Figura 11 Monitor de mquina virtual ..................................................................... 34
Figura 12 Funcionamento da tcnica de virtualizao total .................................... 35
Figura 13 Funcionamento da tcnica de paravirtualizao .................................... 36
Figura 14 Modelo de laboratrio remoto interativo ................................................. 38
Figura 15 Esquema de virtualizao e acesso dos usurios s VMs ..................... 39
Figura 16 Estrutura de camadas do paravirtualizador Xen Server ......................... 40
Figura 17 Interface de gerenciamento do Xen Center............................................ 41
Figura 18 Hospedagem dos servios no servidor Xen ........................................... 42
Figura 19 Acesso ao software Microsoft Office Visio via RemoteApp .................... 43
Figura 20 Acesso ao software Microsoft Paint via RemoteApp .............................. 44
Figura 21 Acesso ao software de eletrnica Fritizing via NX Server ...................... 45
Figura 22 Acesso ao Navegador Web Firefox via NX Server ................................. 46
Figura 23 Interface Web do Laboratrio Remoto ................................................... 47

LISTA DE ABREVIATURAS
API Application Programming Interface
APP Aplicativo
COM - Communication
E/S Entrada e Sada
EaD Educao Distncia
GNU GNU is Not Unix
GPL General Public License
IEEE Institute of Electrical and Electronics Engineers
IIS Internet Information Services
IP Internet Protocol
JVM Java Virtual Machine
LPT Line Print Terminal
LR Laboratrio Remoto
NetBIOS Network Basic Input/Output System
POSIX Portable Operating System Interface
RDC Remote Desktop Connection
RDP Remote Desktop Protocol
S.O. Sistema Operacional
SSH Secure Shell
SSL Secure Sockets Layer
TCP Transmission Control Protocol
TI Tecnologia da Informao
TS Terminal Service
VM Virtual Machine
VMM Virtual Machine Monitor
W.S.2008 Windows Server 2008
Web World Wide Web

SUMRIO
INTRODUO .......................................................................................................... 14
1. FUNDAMENTAO TERICA ............................................................................ 16
1.1 EDUCAO DISTNCIA ............................................................................ 16
1.2 LABORATRIO REMOTO ............................................................................. 17
2. SISTEMAS OPERACIONAIS ............................................................................... 19
2.1 PRINCIPAIS COMPONENTES DE UM SISTEMA OPERACIONAL .............. 20
2.2 CLASSIFICAO DE SISTEMAS OPERACIONAIS ...................................... 21
2.3 WINDOWS...................................................................................................... 23
2.4 LINUX ............................................................................................................. 25
3. VIRTUALIZAO ................................................................................................. 28
3.1 CONTEXTO HISTRICO ............................................................................... 29
3.2 CONSOLIDAO DE SERVIDORES............................................................. 30
3.3 SUPORTE DE HARDWARE PARA VIRTUALIZAO................................... 31
3.4 TCNICAS DE VIRTUALIZAO .................................................................. 32
3.4.1

Mquina Virtual de Processo ................................................................. 32

3.4.2

Monitor de Mquina Virtual .................................................................... 34

3.4.2.1

Virtualizao Total ........................................................................... 35

3.4.2.2

Paravirtualizao ............................................................................. 36

3.5 FERRAMENTAS DE VIRTUALIZAO ......................................................... 37


4. FERRAMENTAS METODOLGICAS .................................................................. 38
4.1 CITRIX XEN SERVER .................................................................................... 40
4.2 TS REMOTE APP ........................................................................................... 42
4.3 NX SERVER ................................................................................................... 44
4.4 POLTICAS PARA GESTO DO LABORATRIO ......................................... 46
CONCLUSES ......................................................................................................... 48
REFERNCIAS ......................................................................................................... 49
ANEXOS ................................................................................................................... 51
ANEXO A Cdigo-fonte do pacote RDP utilizado no RemoteApp ...................... 51
ANEXO B Cdigo-fonte do script de conexo utilizando o NX Server ................ 52

INTRODUO
A Educao a Distncia (EaD) a modalidade de ensino em que professor e
aluno no compartilham do mesmo ambiente fsico de aprendizagem, alm de
possibilitar a separao cronolgica ou espacial entre eles. A comunicao ocorre
por meio das tecnologias, tais como rdio, televiso, vdeo, telefone, e
principalmente a internet. Na EaD o aluno gerencia seu prprio aprendizado,
desenvolvendo sua autonomia e criticidade.
Neste contexto, uma ferramenta muito utilizada so os laboratrios remotos
(LR), ambientes virtuais baseados na web que oferecem acesso a recursos de um
laboratrio fsico para usurios geograficamente distribudos. Em geral os recursos
disponibilizados nesses laboratrios so experimentos reais e softwares especficos
da rea do conhecimento da qual o LR est inserido, exemplo disso so os
laboratrios de engenharia e computao que disponibilizam softwares simuladores,
compiladores diversos, ambientes integrados de desenvolvimento (IDEs), entre
outros.
A gerncia e a hospedagem destes softwares, assim como o controle de
acesso dos usurios, so alguns dos desafios encontrados na implantao deste
tipo de ambiente virtual de ensino, pois fatores importantes devem ser considerados,
como segurana, escalabilidade e gerenciabilidade. Portanto neste trabalho o
problema discutido foi como gerenciar e hospedar os softwares em laboratrios
remotos interativos?.
Para tanto, se estabeleceu como objetivo a elaborao de um novo mtodo
de disponibilizao de softwares em ambientes virtuais de ensino.
Realizou-se neste trabalho a descrio de um mtodo que utiliza sistemas
operacionais (S.O.) virtualizados para hospedagem de softwares em laboratrios
remotos interativos.
Esta pesquisa do tipo qualitativa com aspecto exploratrio descritivo e
como tcnica utilizou-se o estudo de caso.
No primeiro captulo apresentado o referencial terico do trabalho, no qual
foi abordado alguns conceitos de Educao a Distncia e Laboratrios Remotos.
No captulo seguinte foram citados conceitos de Sistemas Operacionais de
modo geral, e de maneira especifica os sistemas operacionais Windows e Linux.
14

No terceiro captulo o foco a Virtualizao em seus aspectos gerais e


especficos, em diferentes cenrios e tcnicas.
No quarto captulo descreveram-se os experimentos realizados e o mtodo
desenvolvido para a resoluo do problema do trabalho, bem como as vantagens na
adoo do modelo.
Na sequncia, apresentam-se as concluses sobre o mtodo desenvolvido.

15

1. FUNDAMENTAO TERICA

Os conceitos apresentados abaixo so essenciais para a compreenso da


motivao e do problema do trabalho.

1.1

EDUCAO DISTNCIA

Nas ltimas dcadas, as perspectivas ps-positivistas desenvolveram uma


nova viso do que o conhecimento, levando a novas estratgias de produo,
validao e transmisso. Nessa perspectiva, o conhecimento no mais visto como
fato intocvel, mas como produto da interao humana com o mundo atravs de
sistemas simblicos, meios tcnicos, estilos relacionais e cognitivos que se do
sempre em um contexto multidimensional que inclui tanto a esttica como a tica e
os afetos (NAJMANIVICH, 2001 apud OGIBOSKI, 2007).
Existe uma forte tendncia da converso de cursos antes oferecidos na
forma tradicional e na modalidade presencial, para a forma eletrnica, a fim de
serem usados a distncia, utilizando-se como mtodo a exposio do contedo por
meio de textos em pginas utilizando a Internet.

Em outras palavras: a prtica

presencial de exposio oral substituda pela textual, por isso consideramos


fundamental a elaborao de novos modelos pedaggicos diferenciados para cursos
na Web (COUTINHO, 2003 apud CAMPOS, 2005).
Atualmente a educao a distncia o instrumento mais promissor em
educao, alm de abrir inmeras possibilidades de aplicao nos negcios e no
comrcio (KIRSCHNER, 2001 apud OGIBOSKI, 2007).

Seus objetivos e

expectativas so:
Aumento do acesso ao ensino;
Ensino mais personalizado e mais individualizado;
Estmulo colaborao e cooperao em todos os nveis educacionais;
Maior poder aos educadores;
Aumento da responsabilidade;
Aumento da eficincia da educao;
16

Reduo de custos com estrutura fsica;


Reduo do tempo de capacitao do educador;
Adoo rpida de novas informaes e de novos programas.
Para reforar as caractersticas e implicaes do novo modelo de ensino em
comparao com o modelo antigo (tradicional), na Figura 1 so apresentadas as
diferenas entre elas bem como as implicaes tcnicas do ponto de vista dos
recursos tecnolgicos utilizados.

Figura 1 Comparaes entre os modelos de ensino


Fonte: Ogiboski, 2007.

1.2

LABORATRIO REMOTO
Os termos laboratrio virtual e remoto podem gerar confuso entre si, mas

basicamente, um laboratrio virtual trata de um software de computador com


capacidade de realizar ou de simular leituras de dados em instrumentos. Por outro
lado, um laboratrio remoto constitudo por uma estrutura de hardware e software
para aquisio de dados em instrumentos reais, com experimentos tambm reais,
17

sendo a manipulao do instrumento realizada necessariamente atravs de uma


rede de computadores (NEDIC et al., 2003 apud OGIBOSKI, 2007).
O uso da Internet e da tecnologia Web em laboratrio interativo de medidas
realizado com o propsito de fornecer flexibilidade no controle de processos
industriais e na educao de alunos em localidades distantes da sala de aula ou da
universidade (ALTPETER et al., 1995 apud OGIBOSKI, 2007).
Os laboratrios remotos, descritos na literatura acadmica, demonstram a
unio de tcnicas de instrumentao virtual com tecnologias de hardware e de
software para controle de experimentos distncia.

Os testes e ensaios so

desenvolvidos com base na instrumentao virtual para que o controle de


experimentos possa ser realizado atravs de um computador conectado diretamente
aos recursos fsicos (OGIBOSKI, 2007).

18

2. SISTEMAS OPERACIONAIS
Sistema operacional um programa que atua como intermedirio entre
usurio e o hardware de um computador, controlando e coordenando o uso do
hardware entre os vrios programas aplicativos para os vrios usurios. Pode ser
compreendido como um alocador de recursos, que so: hardware, software e dados.
O sistema controla a execuo de programas do usurio para evitar a ocorrncia de
erros ou o uso inadequado do computador, alm de ocupar-se em especial da
operao e do controle dos dispositivos de entrada e sada (E/S) (SILBERSCHATZ,
2000 e TANEMBAUM, 2010).
Seu propsito fornecer um ambiente no qual seus usurios possam
executar seus programas. Os principais objetivos de um sistema operacional so:

Tornar conveniente o uso de um sistema computacional;

Usar o hardware do computador de maneira eficiente.

Um sistema computacional pode ser dividido de maneira geral em quatro


componentes, conforme figura 2:

Hardware;

Sistema operacional;

Programas aplicativos;

Usurios.

Figura 2 Sistema computacional


Nota: Construo do Autor.

19

Os sistemas operacionais existem porque constituem uma forma racional de


criar um sistema computacional cujo uso seja fcil e proveitoso para os usurios, e
que possam executar seus programas e tornar mais fcil a soluo de seus
problemas.
O sistema operacional a pea mais bsica de software e opera em modo
ncleo, tambm chamado modo supervisor. Nesse modo ele tem acesso completo a
todo o hardware e pode inserir qualquer instruo que a mquina pode executar. O
programa de interface com o usurio, que pode ser um interpretador de comandos
(shell) ou uma Interface grfica com o usurio (GUI), o nvel mais inferior do
software de modo usurio e permite que este inicie outros programas, como o
navegador web, leitor de email ou reprodutor de msica (TANEMBAUM, 2010). Na
figura 3 mostrado ciclo de funcionamento do sistema operacional.

Figura 3 Funcionamento do sistema operacional


Nota: Construo do Autor.

2.1

PRINCIPAIS COMPONENTES DE UM SISTEMA OPERACIONAL


A grande maioria dos sistemas operacionais possui pontos comuns quanto

s abstraes bsicas, como: processos, espaos de endereamento, sistema de


arquivos, sistema de entrada e sada (E/S), segurana, etc. Pois estes so
20

fundamentais para seu funcionamento. Abaixo sero descritos os principais


mecanismos do S.O, (SILBERSCHATZ, 2000 e TANEMBAUM, 2010).
Processo: basicamente uma abstrao de um programa em execuo.
Fundamentalmente um processo uma caixa que armazena todas as
informaes necessrias para executar um programa. Um processo pode
criar um ou mais processos auxiliares, denominados filhos.
Espaos de endereamento: Cada processo tem um conjunto de
endereos que pode utilizar, geralmente indo de 0 at alguma quantidade
mxima. Estes espaos de endereos permitem que mltiplos processos
tenham acesso a memria, sem que um interfira no outro.
Sistema de arquivos: onde por meio de chamadas de sistema (system
calls) criada a estrutura hierrquica de diretrios. Essencial na organizao
dos arquivos.
Gerenciador de E/S: um subsistema do sistema operacional, utilizado na
gerncia dos dispositivos de E/S.
Auditoria e segurana: Cria e gerencia um ambiente de confidencialidade
ao usurio e aos procedimentos do sistema.
Interpretador de comandos (Shell): O Shell no propriamente um
programa do sistema operacional, pois executa em modo usurio. Criando
uma interface entre o usurio e os recursos do sistema operacional.
Chamadas de sistema (system calls): Interao entre processos dos
usurios e o ncleo do sistema operacional (Kernel).

2.2

CLASSIFICAO DE SISTEMAS OPERACIONAIS


A evoluo dos sistemas operacionais no decorrer do tempo esteve sempre

ligado a evoluo dos computadores (TANEMBAUM, 2010), e este processo


continua acelerado com o desenvolvimento de tecnologias para novos dispositivos
computacionais, para que se tenha uma compreenso mais aprofundada desta
evoluo, na tabela 1 sero apresentadas as geraes dos computadores:

21

Tabela 1 Geraes dos computadores


Fonte: Tanembaum, 2010.

GERAO

PERODO

COMPONENTES

1 Gerao

1945 - 1955

Vlvulas

2 Gerao

1955 - 1965

Transstores

3 Gerao

1965 1980

Circuitos Integrados

4 Gerao 1980 - Presente Computadores Pessoais

Existem diversos tipos de sistemas operacionais, que se diferenciam


principalmente pelo tipo de hardware suportado, sero listados os mais importantes
deles. Porm no os estudaremos a fundo, por no ser o foco do trabalho.
Existem 05 (cinco) tipos de sistemas operacionais (SILBERSCHATZ, 2000):
Sistemas operacionais de batch multiprogramados
Sistemas operacionais de batch simples
Sistemas operacionais de compartilhamento de tempo
Sistemas operacionais distribudos
Sistemas operacionais paralelos
No entanto, a classificao encontra-se desatualizada por no contemplar os
sistemas desenvolvidos para os dispositivos desenvolvidos na ltima dcada. Com
isso, corroborando (TANEMBAUM, 2010):
Sistemas operacionais de cartes inteligentes (smart cards)
Sistemas operacionais de computadores de grande porte (mainframes)
Sistemas operacionais de computadores pessoais
Sistemas operacionais de computadores portteis
Sistemas operacionais de multiprocessadores
Sistemas operacionais de ns sensores (sensor node)
Sistemas operacionais de servidores
22

Sistemas operacionais de tempo real


Sistemas operacionais embarcados

2.3

WINDOWS
O Windows uma coleo de sistemas operacionais desenvolvidos pela

empresa Microsoft, possui licena proprietria e diversas verses diferenciadas


pelas funcionalidades direcionadas a um determinado pblico. O sistema
operacional mais utilizado em computadores pessoais no mundo, sua mais recente
verso para desktops o Windows 7, lanado em 2009. Para servidores o Windows
Server 2008 R2 a verso mais recente e estvel, j para dispositivos mveis a
verso mais recente o Windows Phone 7 (MICROSOFT TECHNET, 2011). Abaixo
sero descritas algumas das principais caractersticas das recentes verses dos
sistemas operacionais da famlia Windows:
Cdigo-fonte das vrias verses do S.O. foi desenvolvido na liguagem de
programao C e algumas partes com C++ e Assembly;
Multitarefa;
Multiusurio;
Suporte a Plug and Play;
Sistema de arquivos NTFS (New Tecnology File System);
Neste trabalho optou-se pela utilizao do Windows Server 2008 R2, por
possuir a ltima verso do Terminal Service (RemoteApp), o detalhamento da
implementao utilizando o Server 2008 ser descrita na seo 4.2. Na figura 4
apresentada uma cronologia dos S.O.s Windows, na figura 5 a rea de trabalho do
W.S.2008.

23

Figura 4 Cronologia da famlia de sistemas operacionais Windows (1985-2010)


Fonte: Wikipedia <http://en.wikipedia.org/wiki/microsoft_windows>.

Figura 5 rea de trabalho do sistema operacional Windows Server 2008 R2


Nota: Construo do autor.

24

2.4

LINUX
O Linux um sistema operacional criado em 1991 por Linus Torvalds, na

Universidade de Helsinki Finlndia. um sistema Operacional de cdigo aberto


(open source) distribudo gratuitamente pela internet. Seu cdigo-fonte liberado na
licena GPL (General Public License). O sistema segue o padro POSIX que o
mesmo usado por sistemas UNIX e suas variantes. Assim, com a utilizao do Linux
no se encontram grandes diculdades em operar um sistema do tipo UNIX,
FreeBSD, HPUX, SunOS, etc., diferenciados por algumas particularidades de cada
sistema. O Linux desenvolvido por uma comunidade com milhares de pessoas
espalhadas pelo mundo, cada uma fazendo sua contribuio ou mantendo alguma
parte do kernel gratuitamente. Os requisitos mnimos do Linux de um computador
386 SX com 2 MB de memria (para um kernel at a srie 2.2.x) ou 4 MB (para
kernels 2.4 e 2.6) e 100 MB disponveis em seu disco rgido para uma instalao
bsica e funcional (GUIA FOCA LINUX, 2011).
Descreve-se abaixo as principais caractersticas do S.O. GNU/Linux:
livre e desenvolvido voluntariamente por programadores experientes,
hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a
contribuio para a melhoria e crescimento deste sistema operacional;
Recebe apoio de grandes empresas como IBM, Sun, HP, etc. para seu
desenvolvimento;
Convive1 sem nenhum tipo de conito com outros sistemas operacionais
(com o DOS, Windows, OS/2) no mesmo computador;
Multitarefa real;
Multiusurio;
Suporte a nomes extensos de arquivos e diretrios (255 caracteres);
Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh,
Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc;
Utiliza permisses de acesso a arquivos, diretrios e programas em
execuo na memria RAM;
Proteo entre processos executados na memria RAM;
1

Pode ser instalado no mesmo dispositivo de armazenamento com outros sistemas operacionais.

25

Suporte a mais de 63 terminais virtuais (consoles);


Modularizao - O Linux somente carrega para a memria o que usado
durante o processamento, liberando totalmente a memria assim que o
programa/dispositivo nalizado;
No precisa de um processador potente para funcionar. O sistema roda bem
em computadores 386Sx 25 com 4 MB de memria RAM (sem rodar o sistema
grco X, que recomendado 32MB de RAM);
Suporte nativo a mltiplas CPUs, assim processadores como Dual Core
Athlon Duo, Quad Core tem seu poder de processamento integralmente aproveitado;
Suporte nativo a dispositivos SATA, PATA, Fiber Channel;
Suporte nativo a virtualizao, onde o Linux se destaca como plataforma
preferida para execuo de outros sistemas operacionais;
Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2,
NTFS, SunOS, Mac, etc;
Os sistemas de arquivos usados pelo GNU/Linux (Ext2, Ext3, Ext4, reiserfs,
xfs, jfs) organiza os arquivos de forma inteligente evitando a fragmentao e
fazendo-o um poderoso sistema para aplicaes multi-usurias exigentes e
gravaes intensivas;
Pode ser executado em 16 arquiteturas diferentes (Intel, Macintosh, Alpha,
Arm, etc.) e diversas outras sub-arquiteturas;
Uma Distribuio Linux (ou simplesmente Distro), a combinao do kernel
Linux com softwares livres e no-livres. So sistemas completos, prontos para
instalao e uso. Criadas e mantidas por indivduos, grupos e organizaes de todo
o mundo, bem como projetos de comunidades de desenvolvimento.
Algumas das distribuies mais utilizadas: Debian, Fedora, Red Hat,
Slackware, Gentoo, CentOS, OpenSuse, Mandriva, Backtrack, Android (dispositivos
mveis), etc.

26

A distribuio Linux escolhida para a implementao do mtodo foi o Ubuntu


v.10.04, por possuir uma grande comunidade de usurios, maturidade, estabilidade
do sistema e facilidade de uso por usurios comuns. Na figura 6 apresentada a
interface de rea de trabalho do Ubuntu 10.04.

Figura 6 rea de trabalho da distribuio Ubuntu Linux v.10.04


Nota: Construo do autor.

27

3. VIRTUALIZAO
Virtualizao a tcnica que permite particionar um nico sistema
computacional em vrios outros denominados de mquinas virtuais. Uma mquina
virtual nada mais que uma camada de software que oferece um ambiente
completo muito similar a uma mquina fsica. Com isso, cada mquina virtual pode
ter seu prprio sistema operacional, aplicativos e servios de rede (CARISSIMI,
2008).
As mquinas virtuais, por emularem um ambiente computacional sobre outro
impem algumas restries de implementao e de desempenho. aqui que entra o
desenvolvimento dos produtos de software para a virtualizao. Basicamente, as
mquinas virtuais podem ser implementadas como uma aplicao de um sistema
operacional e executarem em modo usurio, ou uma camada de software
posicionada entre o hardware da mquina e o sistema operacional. A primeira opo
o que se denomina de mquina virtual de processo e a segunda de monitor de
mquina virtual ou hypervisor (SMITH e NAIR, 2005).

Figura 7 Modelo conceitual de mquinas virtuais


Fonte: Carissimi, 2008.

28

3.1

CONTEXTO HISTRICO
A virtualizao no uma tcnica nova, vem sendo utilizada h muitos anos

e para diversos fins, e est novamente em plena evidncia elevada pela


virtualizao de sistemas operacionais e de servidores em datacenters. Mas, para
que se entenda como ocorreu essa cadeia de eventos necessrio voltar um pouco
na cronologia.
O tema virtualizao tm se destacado no mundo da tecnologia da
informao (TI), apesar de no ser exatamente uma novidade. A introduo da
linguagem de programao Java trouxe consigo a noo de mquina virtual, mas a
origem das mquinas virtuais remonta ao incio dos anos 70. Nessa poca, era
comum que cada computador (mainframe), mesmo de um nico fabricante, tivesse
seu prprio sistema operacional, e isso se tornou uma das principais razes para o
aparecimento das mquinas virtuais: permitir que software legado executasse nos
caros mainframes. Na prtica, o software no inclua apenas a aplicao, mas sim
todo o ambiente operacional sobre o qual ele executava. Essa abordagem foi usada
com sucesso pela IBM que, na linha de mainframes 370 e seus sucessores, oferecia
uma mquina virtual, portada para vrias de suas plataformas, sobre a qual as
aplicaes executavam. Dessa forma era possvel executar, ou migrar, uma
aplicao de uma plataforma para outra desde que houvesse uma verso de
mquina virtual para a plataforma alvo (CARISSIMI, 2008).
Com a popularizao dos computadores pessoais, o mercado dos sistemas
operacionais afunilou-se para apenas trs arquiteturas: Microsoft, Unix e Macintosh.
Cada qual possua um conjunto de softwares aplicativos e um pblico-alvo bem
definido, tornando-se desnecessrio a utilizao da virtualizao de sistemas,
estagnando por muito tempo a prtica da virtualizao, que foi resgatada pelos
projetos de datacenters, inserindo o contexto de consolidao de servidores, que
ser detalhado do na seo 3.2.

29

3.2

CONSOLIDAO DE SERVIDORES
Ao se executar mltiplas instncias de mquinas virtuais em um mesmo

hardware, tambm se est proporcionando um uso eficiente de seu poder de


processamento. Essa situao comumente denominada de consolidao de
servidores e especialmente interessante em datacenters devido heterogeneidade
de plataformas inerente ao prprio negcio. Alm disso, a diminuio de mquinas
fsicas implica na reduo de custos de infraestrutura fsica como espao, energia
eltrica, cabeamento, refrigerao, suporte e manuteno a vrios sistemas
(CARISSIMI, 2008).
A consolidao de servidores consiste em centralizar e/ou diminuir o nmero
de equipamentos e de aplicaes instaladas em cada um dos servidores da
organizao, com o objetivo de aumentar a produtividade da infraestrutura, melhorar
o gerenciamento do ambiente, aumentar a segurana, diminuir a manuteno e
economizar em recursos humanos, fsicos e financeiros (OLIVEIRA, 2004). A Figura
8 mostra que a diminuio do nmero de servidores no implica na diminuio de
servios operantes.

Figura 8 Viso dos servios na consolidao de servidores


Nota: Construo do Autor.

No modelo tradicional utilizava-se um servidor para cada servio, fazendo


com que o custo de implantao e manuteno fosse elevado.
30

Com a consolidao de servidores possvel elevar a utilizao do


hardware, diminuindo a quantidade de mquinas para manter os mesmos servios
operantes. Alm de haver um alto nvel de segurana, os sistemas no ficariam
presos ao hardware. Uma mquina virtual pode ser copiada e transferida sem que
os servios sejam parados, e se por acaso o hardware apresentar defeito, a cpia
poder ser colocada em outro servidor e rapidamente o servio voltar a operar.
Os conceitos da TI Verde2 e a necessidade de reduo de custos
operacionais de TI impulsionaram a adoo da consolidao de servidores, pois
seria gasto menos espao fsico, com isso menos gastos com eletricidade,
refrigerao, manuteno e demais itens j citados.

Figura 9 Diminuio do nmero de servidores com a virtualizao


Nota: Construo do Autor.

3.3

SUPORTE DE HARDWARE PARA VIRTUALIZAO


Gigantes do mercado de processadores, AMD e Intel, possuem tecnologia

de suporte a virtualizao. As extenses da AMD, denominada de AMD-V (AMDVirtualization), codinome Pacfica, se aplica s arquiteturas x86 de 64 bits como o
Athlon, Turion, Phenom e as linhas mais recentes. A Intel apresenta suas extenses
para as arquiteturas x86 de 32 e 64 bits. Essas extenses so conhecidas por IVT
(Intel Virtualization Technology) ou pelo seu codinome, Vanderpool. As solues da
AMD e da Intel foram desenvolvidas independentemente uma da outra e so
2

Consiste na soma da gesto da economia de energia, com a de recursos desde a extrao da


matria-prima at o final da vida til do equipamento (SILVA et. al, 2009).

31

incompatveis, embora sirvam para o mesmo propsito. A AMD implementa funes


especiais no processador que so executadas por um hypervisor e que podem
controlar, em seu nome, acessos de um sistema hspede ao hardware hospedeiro.
A Intel introduziu mecanismos similares (virtual machines extensions) que
complementam a idia do conceito de anis de proteo com dois novos modos:
root e no-root. Esses modos so controlados pelo hypervisor (que executa em
modo root) e que pode transferir a execuo de um sistema operacional hspede
para o modo no-root no qual instrues do anel zero so executadas sem risco
para o sistema (CARISSIMI, 2008).

3.4

TCNICAS DE VIRTUALIZAO

A virtualizao utilizada para diversas finalidades, neste trabalho ser


abordada no mbito da virtualizao de sistemas operacionais em servidores.
Neste contexto, existem basicamente dois tipos de virtualizao:
Mquina Virtual de Processo
Monitor de Mquina Virtual
o Virtualizao Total
o Paravirtualizao

3.4.1 Mquina Virtual de Processo

Uma mquina virtual de processo nada mais que uma aplicao que
executa sobre um sistema operacional A e que emula o comportamento de um
sistema operacional B. Assim, aplicaes desenvolvidas para o sistema B podem
executar sobre um sistema A. importante salientar que essa tcnica de
implementao permite que binrios de um processador sejam interpretados e
substitudos por cdigo equivalente de outro processador. Portanto, alm de emular
sistema operacional possvel emular processadores. As desvantagens dessa
tcnica so basicamente duas: desempenho e desperdcio de capacidades do
hardware fsico. O desempenho sacrificado j que h uma traduo de um sistema
32

a outro, alm de executarem em modo de usurio. O desperdcio de capacidades


fsicas do hardware vem do fato que as mquinas virtuais de processo oferecem
dispositivos de E/S genricos e simples. O exemplo tpico so placas de vdeo. Por
executarem como uma aplicao, ao terminar o processo mquina virtual, nenhum
rastro permanece no sistema (CARISSIMI, 2008).
Mquina Virtual de Processo cria um ambiente de execuo para outras
aplicaes, e pode gerar um conjunto de instrues que so interpretadas para
criao de instrues no-privilegiadas, chamadas de sistemas e APIs de bibliotecas
que correspondem ao abstrata desejada. Pode-se defini-la como uma aplicao
de um Sistema Operacional executando em modo usurio, ou seja, as instrues
so executadas no modo no-privilegiado a partir de instrues abstratas que
representam a ao desejada (VIEIRA, 2008).

Figura 10 Mquina virtual de processo


Fonte: Carissimi, 2008.

Considerando essas interfaces, a implementao de mquinas virtuais pode


ser feita de dois modos. Primeiro possvel fazer um programa de aplicao que
fornea um ambiente de execuo para outras aplicaes. Esse ambiente pode
possuir um conjunto de instrues abstratas que so interpretadas para gerar as
33

instrues de mquinas no privilegiadas, as chamadas de sistema e de API de


bibliotecas que correspondem a ao abstrata desejada. o caso da mquina virtual
Java (JVM). Ainda possvel que esse programa de aplicao emule chamadas de
sistemas de outro sistema operacional, como ocorre quando se executa Linux em
sistemas Windows com a ferramenta VMware player. Esse tipo de virtualizao o
que se denomina de mquina virtual de processo (SMITH e NAIR, 2005).
3.4.2 Monitor de Mquina Virtual
VMM (Virtual Machine Monitor Monitor de Mquina Virtual) ou hypervisor
pode ser compreendida como uma camada de software entre o hardware e as
mquinas virtuais.
O processo ou sistema que executa sobre uma mquina virtual chamado
de hspede, enquanto o ambiente sobre o qual ele executa chamado de
hospedeiro (CARISSIMI, 2008).

Figura 11 Monitor de mquina virtual


Fonte: Carissimi, 2008.

Pode ser implementando por dois mtodos distintos: a virtualizao total e a


paravirtualizao, que sero abordados a seguir:

34

3.4.2.1

Virtualizao Total

Esta tcnica de virtualizao cria uma rplica virtual do hardware hospedeiro


e oferece total acesso ao sistema hspede. Com isso diversos inconvenientes
surgem, pois para que o hardware tenha que ser simulado torna-se necessrio a
utilizao de drivers genricos pelo VMM, causando subutilizao dos componentes
de hardware e consequentemente queda de desempenho. Os sistemas operacionais
hspedes neste caso no so alterados. Outro inconveniente da virtualizao total
o fato de o sistema operacional visitante no ter conhecimento de que est sendo
executado sobre o VMM, ento as instrues executadas pelo sistema operacional
visitante devem ser testadas pelo VMM para que depois sejam executadas
diretamente no hardware, ou executadas pelo VMM e simulada a execuo para o
sistema visitante (CARISSIMI, 2008).

Figura 12 Funcionamento da tcnica de virtualizao total


Fonte: Carissimi, 2008.

35

3.4.2.2

Paravirtualizao

A paravirtualizao uma alternativa de contorno dos problemas que a


tcnica de virtualizao total possui. Com este mtodo, possvel apresentar ao
sistema operacional hspede uma arquitetura virtual que muito similar, mas no
idntica ao hardware real. Essa soluo aumenta o desempenho das mquinas
virtuais que as utilizam (BARHAM, 2003).
Entretanto, so necessrias modificaes nos sistemas operacionais
convidados, que executam na atual arquitetura x86. Ainda assim, as mudanas
necessrias nos sistemas convidados devem ser passveis de implementao, o que
j implementado nas verses mais recentes do Linux (verso 2.6). Isso mostra que
a modificao do sistema operacional convidado possvel de ser feita com um
esforo no to grande a ponto de impactar substancialmente na evoluo de
sistemas operacionais j consolidados no mercado.

Figura 13 Funcionamento da tcnica de paravirtualizao


Fonte: Carissimi, 2008.

36

3.5

FERRAMENTAS DE VIRTUALIZAO
Existem diversas solues de mercado para virtualizao de servidores, que

utilizam as tcnicas de virtualizao mencionadas nas sees anteriores. Dentre


elas, listadas na tabela abaixo as mais populares:
Tabela 2 Ferramentas de virtualizao
Nota: Construo do Autor.

PROJETO
VMWare ESXi
VMWare Workstation
Citrix Xen Server
Xen Source
Virtual Box

TCNICA
Virtualizao total
Mquina virtual de processo
Paravirtualizao
Paravirtualizao
Virtualizao total

37

LICENA
Proprietria
Proprietria
Proprietria
GPL
Mdulos do kernel
GPL. RDP e suporte
a USB so
proprietrios.

4. FERRAMENTAS METODOLGICAS
Existem diversos tipos de laboratrios baseados na web, diferenciados pelos
recursos disponibilizados. Para a criao do mtodo, foi elaborado um modelo de
laboratrio remoto interativo, constitudo por uma estrutura de hardware e software
para manipulao de instrumentos e experimentos reais, sendo realizada
obrigatoriamente atravs de uma rede de comunicao, conforme figura 14.

Figura 14 Modelo de laboratrio remoto interativo


Adaptado de: Murray et. al, 2008.

Adotou-se como ferramenta de virtualizao, o paravirtualizador Citrix Xen


Server, nele so hospedadas e gerenciadas as mquinas virtuais onde os softwares
do laboratrio remoto sero instalados.
Para o acesso dos usurios aos softwares instalados nas mquinas virtuais
do Xen Server sero utilizados servios de terminais do Windows e Linux, conforme
figura 15.

38

Figura 15 Esquema de virtualizao e acesso dos usurios s VMs


Nota: Construo do Autor.

O objetivo disto tornar a plataforma do laboratrio remoto compatvel com


clientes utilizando sistemas operacionais Windows e Linux, ou seja, independente de
qual desses sistemas a mquina do usurio estiver rodando ele consiga facilmente
acessar as mquinas virtuais e consequentemente os aplicativos dela. O laboratrio
tem de suportar esses processos de forma transparente para o usurio, para que a
navegao seja leve e tranquila.
Se o usurio utiliza o S.O. Windows, possui suporte nativo aos arquivos de
rea de Trabalho Remota do Windows (RDP Remote Desktop Protocol) e com o
cliente NX instalado ele poder acessar as mquinas virtuais Linux e seus
aplicativos.
Mas, se o usurio utilizar o sistema operacional Linux, para utilizar softwares
hospedados em mquinas virtuais Linux, necessrio instalao do cliente NX.
Porm se for necessrio o acesso a mquinas virtuais Windows, por no possuir
suporte nativo aos arquivos de rea de trabalho remota do Windows ser utilizado o
software rdesktop, aplicativo para conexo remota a mquinas Windows a partir de
mquinas Linux. De acordo com o site da comunidade rdesktop, alm da conexo

39

remota voc tambm pode: redirecionar portas LPT e COM, redirecionar o udio,
criar disco virtual mapeado e redirecionar o drive de CD/DVD, entre outros.
Para a aplicao do mtodo de virtualizao em nvel de teste, foi utilizado
uma mquina com processador Intel Core I5, disco rgido de 2 Terabytes e memria
RAM de 8 Gigabytes como servidor Xen e um notebook com processador Intel Core
2 Duo, disco rgido de 320 Gigabytes e memria RAM de 4 Gigabytes como cliente
para acesso s VMs.

4.1

CITRIX XEN SERVER


Com intuito de criar um ambiente de execuo para as mquinas virtuais,

optou-se pela utilizao de um monitor de mquinas virtuais com a tcnica de


paravirtualizao, por utilizar toda a capacidade do hardware hospedeiro, elevando o
desempenho das mquinas virtuais.
Para tanto, foi escolhido como paravirtualizador o Xen Server. Baseado na
distribuio CentOS Linux, sistema operacional livre, possui algumas melhorias
realizadas por sua atual mantenedora Citrix. Este funciona como um gerenciador de
mquinas virtuais, como mostra a Figura 16.

Figura 16 Estrutura de camadas do paravirtualizador Xen Server


Nota: Construo do Autor.

A gerncia do servidor Xen Server feita pelo software Xen Center, que
deve ser instalado em uma mquina cliente que pode possuir sistema operacional
Windows ou Linux, nele possvel fazer todas as configuraes do servidor, como
40

criao de grupos de servidores Xen (New Pool), adio de servidores Xen (Add
New Server), criao de mquinas virtuais (New VM), alterar o estado de uma
mquina virtual (Start, Shutdown, Reboot e Suspend), configurao de recursos da
mquina virtual como processador, memria, placas de rede, entre outros. A Figura
17 apresenta a tela inicial do Xen Center.

Figura 17 Interface de gerenciamento do Xen Center


Nota: Construo do Autor.

Todos os servios do laboratrio remoto foram hospedados no servidor Xen


(Figura 18), utilizando os conceitos de consolidao de servidores, apresentado na
seo 3.2.

41

Figura 18 Hospedagem dos servios no servidor Xen


Nota: Construo do Autor.

4.2

TS REMOTE APP
O TS RemoteApp uma ferramenta que faz parte do pacote Terminal

Services presente no Microsoft Windows Server 2008. Permite acesso a programas


compatveis com a plataforma Windows de praticamente qualquer lugar para
usurios de qualquer computador, desde que tenham o cliente da Conexo de rea
de Trabalho Remota (RDC Remote Desktop Connection) instalado. Os usurios
podem executar programas RemoteApp lado a lado com seus programas locais. Um
usurio pode minimizar, maximizar e redimensionar a janela do programa e pode
facilmente iniciar vrios programas ao mesmo tempo. Se um usurio estiver
executando mais de um programa RemoteApp no mesmo servidor de terminal, os
programas RemoteApp compartilharo a mesma sesso (sesso 0) dos Servios de
Terminal. Por padro utiliza a porta TCP 3389, que pode ser alterada. (MICROSOFT
TECHNET, 2011). Os usurios podem executar programas RemoteApp de vrias
maneiras:

Clicar duas vezes no arquivo do protocolo RDP (Remote Desktop

Protocol);

Acessar um link para o programa em um site usando o TS Web Access;

Clicar duas vezes em um cone de programa na rea de trabalho ou no

menu Iniciar criado e distribudo em pacote do Windows Installer (.msi).


42

Neste modelo optou-se pela utilizao de arquivos com extenso RDP para
todos os programas RemoteApp e chamados no servidor web do laboratrio remoto,
o cdigo do arquivo RDP pode ser visto no Anexo A.
Na Figura 19 e Figura 20, apresentada a execuo remota dos softwares
Microsoft Office Visio e o Microsoft Paint, respectivamente.

Figura 19 Acesso ao software Microsoft Office Visio via RemoteApp


Nota: Construo do Autor.

43

Figura 20 Acesso ao software Microsoft Paint via RemoteApp


Nota: Construo do Autor.

4.3

NX SERVER
O NX Server um aplicativo baseado na linguagem CGI perl, que permite o

acesso remoto a servidores com o NX instalado, independente da localizao


geogrfica do usurio.
Mantido pela empresa NoMachine, possui verses com licena proprietria
e tambm verses gratuitas, existe tambm a opo de usar o FreeNX, verso
totalmente open-source do servidor NX, que combina as bibliotecas de cdigo aberto
distribudas pela NoMachine e um conjunto de scripts desenvolvidos pela
comunidade. Atualmente, no existe muita vantagem no uso do FreeNX, j que
temos a verso gratuita do NX Server, mas ele j foi a verso mais usada.
44

O servidor NX utiliza o SSH (Secure Shell) como meio de transporte, por


isso, para utiliz-lo necessrio que o servidor SSH esteja ativo. justamente
devido necessidade do servidor SSH e do servidor de terminal X que o servidor NX
roda apenas sobre o Linux e Solaris. Voc pode se conectar ao servidor a partir das
estaes Windows, mas no rodar o servidor NX sobre elas.
A ferramenta foi adotada por ser uma excelente alternativa para o acesso a
mquinas Linux via SSH Forwarding, que utiliza a porta TCP 22. O Anexo B mostra
um script para conexo via NX.
A Figura 21 mostra a execuo remota do software Fritzing e a Figura 22 a
execuo remota do Navegador Web Mozilla Firefox.

Figura 21 Acesso ao software de eletrnica Fritizing via NX Server


Nota: Construo do Autor.

45

Figura 22 Acesso ao Navegador Web Firefox via NX Server


Nota: Construo do Autor.

4.4

POLTICAS PARA GESTO DO LABORATRIO


Os laboratrios remotos so amplamente utilizados por instituies de

ensino, pesquisa e tecnologia, que necessitam gerenciar a utilizao dos


experimentos pelos usurios, bem como o uso de softwares essenciais ao ensino. O
mtodo de virtualizao de S.O. possibilitar o gerenciamento de:

Mquinas virtuais;

Licenas de software;

Tempo de uso do software por cada usurio;

Recursos de hardware do servidor.


A disponibilizao de softwares em laboratrio remoto traz desafios como a

utilizao simultnea de uma mesma chave por mltiplos usurios, violando assim
as leis de direitos autorais. Como soluo, este mtodo prev o agendamento de
46

uso do software por meio da diviso flexvel do tempo para todos os usurios. Esta
flexibilidade permite que a expirao do tempo possa ser prorrogada, caso haja
disponibilidade de horrio. Assim, cada software no poder ser utilizado
simultaneamente pelos usurios. O agendamento de software pode ser visto na
Figura 23, o cone Meus Softwares apresenta ao usurio os aplicativos agendados.

Figura 23 Interface Web do Laboratrio Remoto


Nota: Construo do autor.

47

CONCLUSES
Com o modelo de virtualizao proposto espera-se contribuir com
instituies interessadas na criao de ambientes virtuais de ensino, potencializando
suas atividades de pesquisa.
Conclui-se que a disponibilizao de softwares atravs de mquinas virtuais
traz diversos benefcios como a centralizao da gerncia dos softwares bem como
do controle de acesso dos usurios. Alm de prover escalabilidade, confiabilidade,
flexibilidade e independncia de plataformas por parte dos usurios.
Espera-se ainda permitir a racionalizao dos recursos no estabelecimento
dos critrios de agendamento obedecendo s leis vigentes de licenciamento de
software.
A implementao do mtodo apresentado neste trabalho proporcionou
resultados satisfatrios, demonstrando a viabilidade no desenvolvimento de uma
infraestrutura de instrumentao remota utilizando a virtualizao de sistemas
operacionais para a hospedagem e disponibilizao de softwares que possam ser
utilizados em laboratrios remotos.
Contudo, o mtodo ainda poder sofrer modificaes no decorrer do tempo.
Pois, em trabalhos futuros novas ferramentas de virtualizao e de acesso aos
aplicativos remotos podero ser testados e possivelmente possibilitaro novas
funcionalidades e perspectivas na utilizao, como o suporte a conexo USB para
mquinas hspedes e substituio de ferramentas proprietrias por livres, desde que
se mantenha a qualidade.

48

REFERNCIAS
ALTPETER, F., S. CH., et al. A General Instrument for Real-Time Control and
Data Acquisition. 3rd IFAC/IFIP Workshop on Algorithms and Architecture for
Real Time Control. Ostend, Belgica. Junho, 1995. 323-327 p.
BARHAM, P.; DRAGOVIC, B.; FRASER, K.; HAND, S.; HARRIS, T.; Ho, A.;
NEUGEBAUER, R.; PRATT, I.; WARFIELD, A. Xen and the Art of Visualization. In
Proc. 19th ACM Symp. On Operating System Principles (SOSP03), 2003.
CARISSIMI, A. Virtualizao: da teoria a solues. In Simpsio Brasileiro de
Redes de Computadores e Sistemas Distribudos, 2008, Rio de Janeiro. Livro
texto dos minicursos. Rio de Janeiro: SBC, 2008. p. 174-199.
CAMPOS, G. H. B.; COUTINHO, L.; ROQUE, G. O. B. Design didtico: O desafio
de um Metacurso. PUC-RJ, 2005.
COUTINHO, L. Web Didtica: um modelo para auxlio na elaborao de cursos
baseados na Web, Dissertao de mestrado, Programa de Ps-graduao do
Instituto de Matemtica, Ncleo de Computao Eletrnica, UFRJ, 2003.
GUIA DO HARDWARE, Documentao sobre a instalao do NX Server, 2011.
<http://www.hardware.com.br/artigos/instalando-nx-server-versao-gratuita/ >
Acesso em: 01/11/2011.
GUIA FOCA GNU/LINUX, Documentao Completa sobre o GNU/Linux.
<http://www.guiafoca.org> Acesso em: 22/11/2011.
KIRSCHNER, P. A. e F. PAAS. Web-enhanced higher education: a tower of
Babel. Computers in Human Behavior, v.17, n.4, p.347-353. 2001.
MICROSOFT TECHNET, RemoteApp Servios de Terminal (TS RemoteApp).
<http://technet.microsoft.com/pt-br/library/cc753844(WS.10,printer).aspx>
Acesso em: 14/11/2011.
MURRAY, S.; LOWE, D.; LINDSAY, E.; LASKY, V.; and LIU, D. Experiences with a
Hybrid Architecture for Remote Laboratories, IEEE. NY USA, 2008.
NAJMANOVICH, D. O sujeito encarnado questes para pesquisa no/do
cotidiano. Rio de Janeiro: DP&A, 2001
NEDIC, Z., J. MACHOTKD, et al. Remote Laboratories versus Virtual and Real
Laboratories. 33rd ASEE/IEEE Frontiers in Education Conference. Boulder,
Colorado, USA: IEEE, 2003. T3E p.
NOMACHINE. Documentao sobre o servidor NX Server.
<http://www.nomachine.com/documents.php> Acesso em: 01/11/2011.

49

OGIBOSKI,L. ESCOLA POLITCNICA DA UNIVERSIDADE DE SO PAULO.


Laboratrio remoto baseado em software livre para realizao de experimentos
didticos. So Paulo, 2007. Dissertao de Mestrado.
OLIVEIRA, G. INSTITUTO SUPERIOR TUPY. Estudo comparativo de
metodologias de consolidao de servidores para a elaborao de uma
proposta de implementao, 2004.
RDESKTOP, Conexo remota de mquinas Linux a mquinas Windows.
<www.rdesktop.org/> Acesso em: 17/11/2011.
SILBERCHATZ, A.; GALVIN, P. Sistemas Operacionais: Conceitos. 5 Edio.
Prentice Hall, So Paulo, 2000.
SILVA, M. R. P.; ZANETI, G. B.; ZAGO, M. G e SOUZA A. N. TI Verde Princpios
e Prticas Sustentveis para Aplicao em Universidades, 2009.
SMITH, J.E; NAIR, R. The architecture of virtual machines. IEEE Computer, v.38,
n.5, pp. 32-38, 2005.
TANEMBAUM, A. S. Sistemas Operacionais Modernos, 3 Edio. Pearson
Prentice Hall, So Paulo, 2010.
VIEIRA, W. V. CENTRO FEDERAL DE EDUCAO TECNOLGICA DO ESPRITO
SANTO. Virtualizao. Mostra Tecnolgica do CEFET-ES, 2008.
WIKIPEDIA, Documentao sobre o sistema operacional Windows.
< http://en.wikipedia.org/wiki/microsoft_windows > Acessado: 24/11/2011.

50

ANEXOS
ANEXO A Cdigo-fonte do pacote RDP utilizado no RemoteApp
1. redirectclipboard:i:1
2. redirectposdevices:i:0
3. redirectprinters:i:1
4. redirectcomports:i:1
5. redirectsmartcards:i:1
6. devicestoredirect:s:*
7. drivestoredirect:s:*
8. redirectdrives:i:1
9. session bpp:i:32
10. span monitors:i:1
11. prompt for credentials on client:i:1
12. remoteapplicationmode:i:1
13. server port:i:3389
14. allow font smoothing:i:1
15. promptcredentialonce:i:1
16. authentication level:i:0
17. gatewayusagemethod:i:2
18. gatewayprofileusagemethod:i:0
19. gatewaycredentialssource:i:0
20. full address:s:SRV-REMOTE
21. alternate shell:s:||VISIO
22. remoteapplicationprogram:s:||VISIO
23. gatewayhostname:s:
24. remoteapplicationname:s:VISIO.EXE
25. remoteapplicationcmdline:s:
26. signscope:s:Full Address,Server
Port,GatewayHostname,GatewayUsageMethod,GatewayProfileUsageMethod,Gat
ewayCredentialsSource,PromptCredentialOnce,Alternate
Shell,RemoteApplicationProgram,RemoteApplicationMode,RemoteApplicatio
nName,RemoteApplicationCmdLine,Authentication
Level,RedirectDrives,RedirectPrinters,RedirectCOMPorts,RedirectSmartC
ards,RedirectPOSDevices,RedirectClipboard,DevicesToRedirect,DrivesToR
edirect
27. signature:s:AQABAAEAAACgCwAAMIILnAYJKoZIhvcNAQcCoIILjTCCC4kCAQExCzAJ
BgUrDgMC [...]

Comentrios do autor:
Linha 13 Porta do servidor Terminal Services (RemoteApp).
Linha 20 Nome NetBIOS completo do servidor.
Linha 21 Nome do aplicativo para chamada via prompt do comandos do Windows.
Linha 22 Nome do aplicativo para conexo remota.
Linha 22 Parmetros de configurao da conexo entre cliente e servidor.
Linha 27 a [...] Resposta aos parmetros de configurao da conexo entre cliente
e servidor. Este campo criptografado para a segurana da comunicao.

51

ANEXO B Cdigo-fonte do script de conexo utilizando o NX Server


1. <!DOCTYPE NXClientSettings>
2. <NXClientSettings application="nxclient" version="1.3" >
3. <group name="Advanced" >
4. <option key="Cache size" value="16" />
5. <option key="Cache size on disk" value="64" />
6. <option key="Current keyboard" value="true" />
7. <option key="Custom keyboard layout" value="" />
8. <option key="Disable DirectDraw" value="false" />
9. <option key="Disable ZLIB stream compression" value="false" />
10. <option key="Disable deferred updates" value="false" />
11. <option key="Enable HTTP proxy" value="false" />
12. <option key="Enable SSL encryption" value="true" />
13. <option key="Enable response time optimisations" value="false" />
14. <option key="Grab keyboard" value="false" />
15. <option key="HTTP proxy host" value="" />
16. <option key="HTTP proxy port" value="8080" />
17. <option key="HTTP proxy username" value="" />
18. <option key="Remember HTTP proxy password" value="false" />
19. <option key="Restore cache" value="true" />
20. <option key="StreamCompression" value="" />
21. </group>
22. <group name="Environment" >
23. <option key="Font server host" value="" />
24. <option key="Font server port" value="7100" />
25. <option key="Use font server" value="false" />
26. </group>
27. <group name="General" >
28. <option key="Automatic reconnect" value="true" />
29. <option key="Command line"
value="/home/fritzing.2011.08.18.linux.i386/Fritzing.sh" />
30. <option key="Custom Unix Desktop" value="application" />
31. <option key="Desktop" value="console" />
32. <option key="Disable SHM" value="false" />
33. <option key="Disable emulate shared pixmaps" value="false" />
34. <option key="Link speed" value="adsl" />
35. <option key="Remember password" value="true" />
36. <option key="Resolution" value="available" />
37. <option key="Resolution height" value="600" />
38. <option key="Resolution width" value="800" />
39. <option key="Server host" value="000.000.000.000" />
40. <option key="Server port" value="22" />
41. <option key="Session" value="unix" />
42. <option key="Spread over monitors" value="false" />
43. <option key="Use default image encoding" value="0" />
44. <option key="Use render" value="true" />
45. <option key="Use taint" value="true" />
46. <option key="Virtual desktop" value="false" />
47. <option key="XAgent encoding" value="true" />
48. <option key="displaySaveOnExit" value="true" />
49. <option key="xdm broadcast port" value="177" />
50. <option key="xdm list host" value="localhost" />
51. <option key="xdm list port" value="177" />
52. <option key="xdm mode" value="server decide" />
53. <option key="xdm query host" value="localhost" />
54. <option key="xdm query port" value="177" />
55. </group>
56. <group name="Images" >

52

57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.

<option key="Disable JPEG Compression" value="0" />


<option key="Disable all image optimisations" value="false" />
<option key="Disable backingstore" value="false" />
<option key="Disable composite" value="false" />
<option key="Image Compression Type" value="3" />
<option key="Image Encoding Type" value="0" />
<option key="Image JPEG Encoding" value="false" />
<option key="JPEG Quality" value="6" />
<option key="RDP Image Encoding" value="3" />
<option key="RDP JPEG Quality" value="6" />
<option key="RDP optimization for low-bandwidth link" value="false"
/>
68. <option key="Reduce colors to" value="" />
69. <option key="Use PNG Compression" value="true" />
70. <option key="VNC JPEG Quality" value="6" />
71. <option key="VNC images compression" value="3" />
72. </group>
73. <group name="Login" >
74. <option key="Auth" value="(]N@1;%oaYB3!yjQC>+qc[G4${jSE@.se_*" />
75. <option key="Guest Mode" value="false" />
76. <option key="Guest password" value="" />
77. <option key="Guest username" value="" />
78. <option key="Login Method" value="nx" />
79. <option key="Public Key" value="-----BEGIN DSA PRIVATE KEY----80. MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9
81. C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF
82. aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi
83. xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z
84. 5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG
85. fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY
86. +Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa
87. QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3
88. mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf
89. 8xAPsSKs6yZ6j1FNklfu
90. -----END DSA PRIVATE KEY----91. " />
92. <option key="User" value="usuario" />
93. </group>
94. <group name="Services" >
95. <option key="Audio" value="false" />
96. <option key="IPPPort" value="631" />
97. <option key="IPPPrinting" value="false" />
98. <option key="Shares" value="false" />
99. </group>
100. <group name="VNC Session" >
101. <option key="Display" value="0" />
102. <option key="Remember" value="false" />
103. <option key="Server" value="" />
104. </group>
105. <group name="Windows Session" >
106. <option key="Application" value="" />
107. <option key="Authentication" value="2" />
108. <option key="Color Depth" value="8" />
109. <option key="Domain" value="" />
110. <option key="Image Cache" value="true" />
111. <option key="Password" value="senha" />
112. <option key="Remember" value="true" />
113. <option key="Run application" value="true" />
114. <option key="Server" value="" />
115. <option key="User" value="" />
116. </group>

53

117. <group name="share chosen" >


118. <option key="Share number" value="0" />
119. </group>
120. </NXClientSettings>

Comentrios do autor:
Linha 12 Opo de encriptao da conexo com protocolo SSL.
Linha 16 Nmero da porta HTTP a ser utilizada.
Linha 29 Local onde inserido o comando que chama o aplicativo, ou seja, o
endereo do arquivo executvel do software remoto. No exemplo est sendo
executado software Fritzing.
Linhas 37 e 38 So configuradas a altura e largura da janela do aplicativo que ser
executado, que pode ser configurada livremente. A resoluo utilizada no exemplo
800x600.
Linha 39 IP do servidor NX.
Linha 40 Porta do protocolo da conexo, no caso porta 22, protocolo SSH.
Linhas de 79 a 90 Chave pblica compartilhada na conexo.
Linha 29 Usurio a ser conectado no servidor NX.
Linha 29 Senha para o usurio a ser conectado no servidor NX.

54