Upload
natanael-ribeiro
View
792
Download
11
Embed Size (px)
Citation preview
NATANAEL RIBEIRO DA SILVA
APOSTILA IFPI CARGO
ANALISTA DE TECNOLOGIA
DA INFORMAO
ANO DE 2014
P g i n a | 1
S U M R I O
1. SISTEMAS OPERACIONAIS WINDOWS E LINUX................................................................................................................ 03
1.1 Windows ......................................................................................................................................................................... 03
1.2 Linux ................................................................................................................................................................................ 02
1.3 Servios de diretrio: Active Directory e LDAP ............................................................................................................... 09
2. VIRTUALIZAO COM CITRIX XEN SERVER E VMWARE ESXI ........................................................................................... 12
2.1 Citrix XenServer ............................................................................................................................................................... 12
2.2 VMWare ESXi .................................................................................................................................................................. 12
2.3 Diferenas entre o Xen Server e VMware ESXi ............................................................................................................... 12
3. COMPUTAO EM NUVEM ............................................................................................................................................. 15
4. SERVIDORES HTTP APACHE ............................................................................................................................................. 19
5. LINGUAGEM DE PROGRAMAO PYTHON E FRAMEWORK DE DESENVOLVIMENTO WEB DJANGO ................................ 20
5.1 Framework de Desenvolvimento Web Django ............................................................................................................... 20
5.2 Linguagem Python ........................................................................................................................................................... 21
6. BANCO DE DADOS ORACLE, POSTGRESQL E MYSQL ....................................................................................................... 29
6.1 Oracle .............................................................................................................................................................................. 29
6.2 PostgreSQL ...................................................................................................................................................................... 31
6.3 MySQL ............................................................................................................................................................................. 32
7. SERVIDORES SMTP POSTFIX E ZIMBRA............................................................................................................................ 32
7.1 Servidor POSTFIX ............................................................................................................................................................. 32
7.2 Servidor ZIMBRA ............................................................................................................................................................. 33
8. TOPOLOGIA TPICA DE AMBIENTES COM ALTA DISPONIBILIDADE E ESCALABILIDADE ................................................... 34
8.1 Balanceamento de carga ................................................................................................................................................. 34
8.2 Fail-over........................................................................................................................................................................... 38
9. TECNOLOGIAS E ARQUITETURA DE DATA CENTER .......................................................................................................... 38
9.1 Conceitos bsicos ............................................................................................................................................................ 38
9.2 Servios de armazenamento, padres de disco e de interfaces ..................................................................................... 44
9.3 RAID.............................................................................................................................................................................. 48
10. TECNOLOGIAS DE BACKUP ............................................................................................................................................ 53
10.1 Conceitos Bsicos .......................................................................................................................................................... 53
10.2 Deduplicao ................................................................................................................................................................. 57
10.3 ILM - Information Lifecycle Management ..................................................................................................................... 58
10.4 Software Livre para backup pessoal e corporativo ....................................................................................................... 60
11. ADMINISTRAO, MONITORAMENTO E CONTROLE ..................................................................................................... 61
11.1 Ferramentas automatizadas de gesto de infra-estrutura ........................................................................................... 61
11.2 Administrao de aplicao para monitoramento de servidores e servios ................................................................ 62
11.3 Configurao, administrao e gerenciamento de servios de rede Windows e Linux ................................................ 63
11.3.1 Servio de compartilhamento de arquivos SAMBA ................................................................................................... 63
11.3.2 Servio de compartilhamento CIFS ............................................................................................................................ 68
11.3.3 Servio de compartilhamento NFS ............................................................................................................................. 69
11.4 Autenticao, autorizao e auditoria .......................................................................................................................... 70
11.4.1 Protocolos AAA .......................................................................................................................................................... 70
11.4.2 Controles de Acesso baseado em Papeis ................................................................................................................... 71
11.4.3 Autenticao .............................................................................................................................................................. 72
11.5 Single sign-on ................................................................................................................................................................ 74
11.6 Captive Portal ................................................................................................................................................................ 76
12. TECNOLOGIAS E PROTOCOLOS DE REDES LOCAIS .......................................................................................................... 76
12.1 Padres Ethernet .......................................................................................................................................................... 76
12.2 Endereamento IP ......................................................................................................................................................... 86
12.3 Mscara de sub-rede ..................................................................................................................................................... 87
12.4 Protocolos de Rede ....................................................................................................................................................... 92
P g i n a | 2
12.5 Cabeamento estruturado EIA/TIA 568 .......................................................................................................................... 105
12.6 Redes tipo campus ........................................................................................................................................................ 109
12.7 Modelo OSI .................................................................................................................................................................... 110
12.8 Redes de longa distncia: PPP, ATM e MPLS ................................................................................................................ 113
12.8.1 Protocolo PPP ............................................................................................................................................................. 113
12.8.2 Protocolo ATM ........................................................................................................................................................... 115
12.8.3 Protocolo MPLS .......................................................................................................................................................... 116
12.9 Redes sem fio (wireless) ................................................................................................................................................ 119
12.10 Elementos de interconexo de redes de computadores ............................................................................................ 128
13. GERENCIAMENTO DE REDES DE COMPUTADORES ........................................................................................................ 132
13.1 Conceitos ....................................................................................................................................................................... 132
13.2 Qualidade de servio (QoS) ........................................................................................................................................... 148
13.3 Voz sobre IP (VoIP): conceitos, arquiteturas e protocolos ............................................................................................ 155
13.4 Videoconferncia: conceitos, arquiteturas e protocolos .............................................................................................. 161
13.5 Roteamento Multicast: conceitos e protocolos ............................................................................................................ 165
13.6 Instruo Normativa IN04 ............................................................................................................................................. 167
P g i n a | 3
1. SISTEMAS OPERACIONAIS WINDOWS E LINUX
1.1 Windows
Microsoft Windows uma famlia de sistemas operacionais criados pela Microsoft, empresa fundada por Bill Gates e Paul
Allen. Antes da verso NT, era uma interface grfica para o sistema operacional MS-DOS. O Windows um produto
comercial, com preos diferenciados para cada uma de suas verses. o sistema operacional mais utilizado em
computadores pessoais no mundo. O impacto deste sistema no mundo atual muito grande devido ao enorme nmero
de cpias instaladas. Conhecimentos mnimos desse sistema, do seu funcionamento, da sua histria e do seu contexto
so, na viso de muitos, indispensveis, mesmo para os leigos em informtica. A atual verso estvel do Windows para
desktops o Windows 8.1, lanado em 17 de outubro de 2013. Para servidores o Windows Server 2012 a verso mais
recente e estvel.
A palavra windows em portugus significa janelas. A sua interface grfica baseada no padro WIMP e utiliza o conceito
WYSIWYG, previamente desenvolvido em Xerox PARC: possui janelas que exibem informaes e recebem respostas dos
utilizadores atravs de um teclado ou de cliques do mouse. O registro da marca Windows foi legalmente complicado, pelo
fato dessa palavra ser de uso corrente em ingls ("windows" significa "janelas").
A Microsoft comeou a desenvolver o Microsoft Windows em setembro de 1981. O Windows 1.01 era uma interface
grfica bidimensional para o MS-DOS e foi lanado em 20 de Novembro de 1985. Era necessrio o MS-DOS 2.0, 256 KB
RAM e um disco rgido. Naquela altura, o MS-DOS s conseguia suportar 1 MB de aplicaes. Era uma primeira tentativa
de criar um sistema multitarefa. Nessa poca, instalado em computadores XTs que tinham apenas 512Kb de memria,
ocupava praticamente toda a memria disponvel. O Windows 1.01 no foi nenhum grande sucesso comparado com seus
sucessores da dcada de 1990, devido limitao do hardware da poca. Inicialmente, ele foi lanado em quatro
disquetes de 5.25 polegadas de 360 KB cada um. Continha o Reversi (jogo), um calendrio, bloco de notas, calculadora,
relgio, prompt de comando (uma janela direta para o DOS), Write, Control Painel, Paint e programas de comunicao.
Permite a utilizao de mouse, janelas e cones. Nesta verso ainda no havia sobreposio de janelas. A verso 1.02 foi
lanada internacionalmente em maio de 1986 e ganhou edies em vrias lnguas europeias. A verso 1.03 foi lanada em
agosto de 1986 internacionalmente. A verso 1.04 foi lanada em abril de 1987 e ganhou grficos VGA.
O Windows s comea a ser tecnicamente considerado como um SO a partir da verso Windows NT, lanada em Julho de
1993. O que havia antes eram sistemas grficos sendo executados sobre alguma verso dos sistemas compatveis com
DOS, como MS-DOS, PC-DOS ou DR-DOS. Somente o MS-DOS era produzido pela prpria Microsoft.
O MS-DOS um sistema operativo que no dispe de interface grfica, funciona atravs de comandos de texto
introduzidos no teclado pelo utilizador. O Windows surgiu inicialmente como uma interface grfica para MS-DOS, que
permitia correr programas em modo grfico, o que permitiu a utilizao do mouse, que at altura era considerado
suprfluo em computadores de tipo IBM-PC.
Os primeiros Windows, como o 1.0, 2.0, so compatveis apenas com parties formatadas em sistema de ficheiros FAT,
ou como chamado, FAT 16. O 3.x poderia ser instalado em FAT 32, porm necessita ser instalado o MS-DOS 7.10, que
era incluido nos disquetes de inicializao do Windows 95 OSR2 e Windows 98, necessitando modificar alguns arquivos
para permitir seu funcionamento. Ao mudar do 3.1 para o 95B (Windows 95 OSR 2/OSR 2.1), os HD's poderiam ser
formatados em FAT 32. Inicialmente lanado com o Windows NT, a tecnologia NTFS agora o padro de fato para esta
classe. Com a convergncia de ambos sistemas, o Windows XP passou tambm a preferir este formato.
A principal linguagem de programao usada para escrever o cdigo-fonte das vrias verses do Windows o C e
algumas partes com C++ e Assembly.
At a verso 3.11, o sistema rodava em 16 bits (apesar de poder instalar um update chamado Win32s para adicionar
suporte a programas 32 bits), da em diante, em 32 bits. As verses a partir do XP e Server 2003 esto preparadas para a
tecnologia 64 bits.
P g i n a | 4
Os sistemas de 64 bits no possuem mais suporte para rodar nativamente aplicativos de 16 bits, sendo necessrio uso de
emuladores/mquinas virtuais.
Os bits so relacionados ao volume de dados que um microprocessador capaz de lidar. Se um processador tem uma
arquitetura de 64 bits, ele capaz de lidar com dados na ordem de 264
, ou seja, 18446744073709552000. S que para isso
ser possvel, necessrio que o sistema operacional seja de 64 bits, caso contrrio ele trabalhar com somente com
instrues de 32 bits (Se o sistema for de 32 bits). Sistemas operacionais de 64 bits tambm endeream uma quantidade
maior de RAM, suportando at 192GB (Windows 7 Ultimate) ou 128GB (Windows XP Professional), contra 3,2GB dos
sistemas de 32 bits.
Outra caracterstica denominada de hearana maldita devido o fato de ter herdade essa regra do DOS o fato de no se
poder criar pastas com os determinado nomes: con, prn, aux, com1 e ltp1. Trata-se de uma antiga herana que os SOs
Windows carregam do MS-DOS e so palavras reservadas para a comunicao interna do SO. Portanto, mesmo o mais
recente sistema da Microsoft incapaz de interpretar tais sentenas como simples nomes atravs do Windows Explorer.
Atravs do Prompt de Comandos possvel criar pastas e arquivos com qualquer um dos nomes acima. Mas o sistema
impede que os documentos sejam editado e excludos pelo Windows Explorer.
1.2 Linux
1.2.1 Histria do Linux
Linux um termo utilizado para se referir a sistemas operacionais que utilizem o ncleo Linux. O ncleo Linux foi
desenvolvido pelo programador finlands Linus Torvalds, inspirado no sistema Minix. O seu cdigo fonte est disponvel
sob a licena GPL (verso 2) para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de
acordo com os termos da licena.
1.2.2 Linux como Sistema Operacional
Linux se refere ao Kernel. O conjunto de aplicativos que so executados no Kernel se chama distribuio. A funo do
Kernel (ncleo do sistema operacional) ser a interface entre o Hardware e os sistemas de gerenciamento de tarefas
e aplicativos. O Kernel do Linux mais leve que o de outros sistemas operacionais para servidores. So 12
milhes de linhas de cdigo, enquanto outras verses do Unix tm 30 milhes e o Windows NT, 50 milhes. Isso
significa que o Linux trs vezes mais rpido que outros Unix e at cinco vezes mais rpido que o Windows NT.
1.2.3 Principais caractersticas do Linux
um Software Livre (Open Source). O Windows considerado um software proprietrio.
Licena de uso: GPL/GNU. GPL/GNU significa Licena Pblica geral, consiste na designao de licena para
softwares livres.
um sistema operacional Multitarefa, assim como o Windows. Multitarefa o sistema multitarefa executar
mais de um aplicativo ao mesmo tempo.
um sistema operacional Multissesso, assim como o Windows. Multissesso consiste em ter vrios contas
de usurios em um mesmo computador.
Preemptivo permite a interrupo de processos. ( tambm caracterstica do Windows). Preemptivo a ideia
de ter vrios programas sendo processados ao mesmo tempo, e com isso, conseguimos alternar de um para o
outro, interrompendo desta forma, o processo de um para executar outro.
um sistema Multiusurio. (tambm caracterstica do Windows). Multiusurio quando existe uma rede de
computadores e um servidor (pode este ser usado tanto Linux como Windows), e com isso, os usurios podem
ter acesso simultneo ao sistema (vrios usurios acessando o servidor ao mesmo tempo).
Multiprocessamento (tambm caracterstica do Windows). Multiprocessamento um computador com mais de
um processador.
P g i n a | 5
Sistema Monoltico (tambm caracterstica do Windows). Sistema monoltico todos processos em um s
ncleo.
Compartilhamento de bibliotecas (tambm caracterstica do Windows). o compartilhamento de recursos com
os softwares instalados no computador. Exemplo: as fontes instaladas no computador podem ser utilizadas em
vrios programas como Word, Excel, Power Point, Photoshop e etc.
Capacidade de processamento 32/ 64 bits (tambm caracterstica do Windows) H verses de 32 e 64 bits.
Pode ser instalado tanto em processadores de 32 bits, como de 64 bits.
# Superusurio (tambm presente no Windows, mas com o nome de Administrador) o usurio com controle
total do computador.
$ Usurio comum (tambm presente no Windows, mas com o nome de Usurio Limitado) o usurio que no
tem poder para manipular todos os recursos existentes no computador.
Interface grfica e Prompt de comando (tambm existente no Windows) possvel interagir com o Linux de
duas maneiras: Pela Interface Grfica ou Prompt de Comando (Shell, bash sh, etc).
1.2.4 Sistemas de arquivos do Linux
A lista de sistemas de arquivos suportados pelo Linux muito grande mas, ser mostrado somente os mais comuns.
Atualmente, uma importante caracterstica dos atuais sistemas de arquivos o "journaling". Sistemas de arquivos que
possuem essa caracterstica so preferidos em detrimento aos que no possuem. Journaling um recurso que permite
recuperar um sistema aps um desastre no disco (ex.: quando um disco est sujo) em uma velocidade muito maior que
nos sistemas de arquivos sem journaling. Segue abaixo uma breve descrio sobre os sistemas de arquivos mais comuns
disponveis para o Linux:
Ext2: O sistema de arquivos ext2 conhecido como "Second Extended FileSystem". Foi desenvolvido para ser
mais "eficiente" que o sistema de arquivos "Minix", seu antecessor. O Minix era muito utilizado nas primeiras
verses do Linux, e foi utilizado por muitos anos. O sistema de arquivos ext2 no possui journaling e foi
substitudo pelo ext3.
Ext3: O sistema de arquivos ext3 uma verso do ext2 com suporte a journaling. Portanto, o ext3 tem as
mesmas caractersticas do ext2, mas com suporte journaling. Essa caracterstica foi uma evoluo e tornou o
ext3 um sistema de arquivos muito estvel e robusto. Como no ext3 s foi adicionado o suporte a journaling,
podemos converter um sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e tambm podemos
converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling.
ReiserFS: O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase todas as distribuies
Linux o suportam. Sua performance muito boa, principalmente para um nmero muito grande de arquivos
pequenos. ReiserFS tambm possui suporte a journaling.
XFS: O sistema de arquivos XFS tambm possui suporte a journaling. Foi desenvolvido originalmente pela Silicon
Graphics e posteriormente disponibilizado o cdigo fonte. O XFS considerado um dos melhores sistemas de
arquivos para banco de dados, pois muito rpido na gravao. XFS utiliza muitos recursos de cache com
memria RAM, e para utilizar XFS recomendado utilizar sistemas que possuem redundncia de energia.
SWAP: SWAP um espao reservado para troca de dados com a memria RAM. Em alguns lugares ele no
mencionado como um Sistema de Arquivos, mas resolvi descrever aqui pois faz parte deste artigo.
VFAT: O sistema de arquivos VFAT tambm conhecido como FAT32 (M$ Windows). O sistema de arquivos VFAT
no possui suporte a journaling. utilizado normalmente para transferir dados entre sistemas M$ Windows e o
Linux instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas operacionais. O sistema de
arquivos VFAT est longe de ser um sistema de arquivos utilizado para Sistemas Linux, exceto para
compartilhamento/compatibilidade entre o M$ Windows e Linux. Se voc utilizar VFAT no Linux, esteja certo de
perder alguns atributos, tais como: permisso de execuo, links simblicos, entre outras coisas. Ambos os
sistemas de arquivos ext3 e ReiserFS so maduros o bastante para serem utilizados como padro no Linux. Esses
dois so os mais utilizados pelas distribuies Linux.
Ext4: a evoluo do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 uma
profunda melhoria sobre o Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a
adio de Journaling sobre o Ext2, mas Ext4 teve mudanas importantes na estrutura do sistema de arquivos
P g i n a | 6
destinado ao armazenamento de dados. O resultado um sistema de arquivos com um designer aperfeioado,
melhor performance, confivel e com muitos recursos.
1.2.5 Estrutura do Linux
Kernel
- o prprio sistema operacional ( o ncleo essencial do sistema);
- a parte mais prxima do nvel fsico;
- Composta de chamadas ao sistema, de acesso aos dispositivos E/S e gerncia dos recursos da mquina.
Shell
- Representa uma camada entre o Kernel do sistema operacional e o usurio;
- o interpretador de comandos digitados que passa para o kernel e vice-versa. Os mais conhecidos so o Bourne Shell
(bsh), o C Shell (csh), o Korn Shell (ksh) e o Bourne Again Shell (bash).
Aplicativos
Demais recursos de software que compem a distribuio do Linux.
1.2.6 Distribuies do Linux
O que uma distribuio
Ao "kernel" freqentemente acrescentado uma srie de aplicaes, formando um sistema ou distribuio Linux.
Distribuio nada mais que um pacote do kernel do sistema operacional mais os programas que o acompanham.
Este pacote, incluindo as ferramentas necessrias para sua instalao, chamado de distribuio. Uma
distribuio atende a uma determinada necessidade. As distribuies podem ser produzidas em diferentes verses
do Kernel, podem incluir diferentes conjuntos de aplicativos, utilitrios, ferramentas e mdulos de driver, e podem
oferecer diferentes programas de instalao e atualizao para facilitar o gerenciamento do sistema.
Existem vrias distribuies no mercado. Citaremos algumas:
Red Hat: Famoso por suas ferramentas de instalao e atualizao do sistema operacional e por seu sistema bem
projetado de instalao, desinstalao e controle de pacotes de aplicativos de software.
Slackware: Era a distribuio mais popular. No vem com RPM. Ganha em performance, mas peca na
interatividade. Usado mais para servidores de rede.
Caldera OpenLink: O OpenLink 1.3 inclui o K Desktop Environment, uma licena no-comercial do StarOffice
for Linux, Suporte Netware, uma licena do DR-DOS para compatibilidade DOS.
S.u.S.E Linux: uma conhecida distribuio de Linux, disponvel principalmente na Europa e oferecida nas
verses em ingls e alemo.
Debian/GNU: No possui uma organizao comercial patrocinadora. produzida por uma equipe de voluntrios.
Utiliza seu prprio sistema de gerenciamento de pacotes.
1.2.7 Gerenciadores de Inicializao
So programas que permitem ao usurio gerenciar a inicializao dos SO's, podendo escolher qual deles carregar, caso
haja mais de um em sua mquina.
LILO: Linux Loader um gerenciador modo texto, que gerencia o setor de Boot da MBR (Master Boot Record -
Primeiro setor de um HD que lido na inicializao para dar partida no computador) do HD permitindo a
P g i n a | 7
inicializao seletiva do sistema operacional, ou seja, ele apresenta um menu de opes para que o usurio
possa escolher um entre os sistemas operacionais disponpiveis para aquela inicializao.
GRUB: Grand Unified Bootloader um loader que trabalha com interface grfica, logo na inicializao do
computador, antes de carregar o SO.
1.2.8 Estrutura de Diretrios
a forma como so organizados os arquivos e as pastas no SO. No Linux, o diretrio raiz est tomado pelas pastas de
sistemas, enquanto as pastas e arquivos pessoais devem ficar armazenadas no diretrio /home.
H uma padronizao para os diretrios Linux, o Filesystem Hierarchy Standard - FHS, que especifica como a
organizao de arquivos e diretrios em sistemas Unix/Linux. Segue abaixo:
Diretrio Descrio dos arquivos contidos nesse diretrio
Diretrio Descrio dos arquivos contidos nesse diretrio
/ Diretrio raiz do sistema de arquivos. abaixo dele que se situam todos os outros.
/bin Arquivos executveis de comandos essenciais. Nele ficam os executveis e bibliotecas dos sistemas.
/boot Arquivos estticos necessrios a inicializao do sistema.
/dev Arquivos de dispositivos de hardware do sistema discos rgidos, impressoras e etc
/etc Arquivos de configurao do sistema
/home Lugar onde ficam os diretrios dos usurios
/lib Arquivos de biblioteca essncias do sistema, utilizados pelos programas em /bin.
/mnt Usualmente o ponto de montagem de dispositivos de mquinas. CDs, DVSs e etc.
/proc Informaes sobre o Kernel e os processos.
/root Diretrio local do superusurio
/sbin Arquivos essncias ao sistema. Normalmente s o superusurio tem acesso a estes arquivos.
/tmp Diretrio de arquivos temporrios.
/usr Arquivos pertencentes aos usurios. ( a segunda maior hierarquia de diretrio do Linux, s perdendo para o diretrio raiz.)
/var Diretrio onde so guardadas informaes variveis sobre o sistema.
1.2.9 Principais comandos do Linux
O Linux possui uma infinidade de comandos que podem ser explorados. Segue abaixo os principais:
apropos: permite localizar programas por assunto;
info: um sistema mais moderno de obteno de ajuda sobre um comando;
help: permite obter uma lista dos principais comandos suportados diretamente pelo shell;
locate: localiza arquivos;
man: mostra uma ajuda de um comando;
whatis: exibe o que determinando comando;
whereis: localizar a pgina de ajuda (man page), cdigo fonte, ou ficheiros binrios, de um determinado
programa;
adduser: permite criao de novas contas de usurio;
arch: informa a arquitetura do computador;
exit: finaliza sesso atual.
free: informa a utilizao da memria;
halt: utilizado pelo usurio root para desligar o sistema imediatamente;
init: pode ser usado para desligar (0) ou reiniciar (6);
last: informa o histrico de logs do usurio atual;
P g i n a | 8
login: inicializa uma sesso;
logname: mostra o login de um usurio;
logout: finaliza a sesso atual;
passwd: utilizado para alterar a senha. Parmetros: (-e: faz com que a senha do usuro expire, forando-o a
fornecer uma nova senha no prximo login; -k: permite a alterao da senha somente s esta estive expirada; -i:
deixa a conta inativa, caso a senha tenha expirado; -l: bloqueia a conta do usurio; -u: desbloqueia uma conta; -
S: exibe o status da conta.);
shutdown: tambm til para desligar o sistema. Parmetros: (-r: reinicializa o computador; -h now: desliga o
sistema imediatamente; -r +15: reiniciar em 15 minutos; -h +60: desligar em 60 minutos.);
whoami: mostra o login do usurio atual;
useradd: adiciona usurios ao sistema;
userdel: apaga usurios do sistema; se for usada a tag "-f" at mesmo a pasta do usurio ser removida.
alias: possibilita a criao de apelidos para os comandos desejados;
cal: exibe o calendrio;
cat: concatena ou mostra o contedo de pequenos arquivos de texto;
cd: mudar o diretrio;
chown: permite alterar o dono e o grupo de um determinado arquivo, a tag "-R" permite a aplicao em todos os
arquivos e subdiretrios;
cp: copia arquivos e diretrios;
cron: executar comandos agendados;
du: informa o espao ocupado pelos arquivos ou diretrios;
find: procura arquivos;
chmod: altera permisses de acesso de arquivos ou diretrios, o "+" acrescenta uma permisso e o "-" tira uma
permisso. Parmetros: (-u: referente ao dono; -g: referente ao grupo; -o: referenre a outros; -a: referente a
todos; -r ou 4: leitura; -w ou 2: escrita/gravao; -x ou 1: execuo; -0: sem permisso alguma.);
df: informa os dados de ocupao do sistema de arquivo, mostra as parties usadas ou livres do HD;
history: mostra os comandos que o usurio j digitou;
kill: encerra um ou mais processos em andamento;
ln: conecta arquivos e diretrios, ou seja, cria links para arquivos ou diretrios;
mkdir: cria diretrio;
more: mostra contedo de um arquivo de texto;
mount: permite fazer a montagem dos dispositivos;
mv: move ou renomeia arquivos;
ps: exibe os processos em execuo;
pwd: mostra o diretrio atual;
rm: apaga arquivos. Parmetros: (-r: apara diretrios nao vazios se utilizar; -rf: apaga o diretrio sem mostrar as
confirmaes de excluso de arquivos.);
rmdir: remove diretrios vazios;
ls: lista o contedo de uma diretrio, semelhante ao comando dir no MS-DOS;
ipconfig: visualizar os ips da nossa mquina, entre outras funes relacionadas com IPs;
clock: define a hora do processador;
date: exibe a data e hora;
su: usado geralmente para alternar entre diferentes usurios dentro de um terminal virtual.
tar: cria ou extrai arquivos, muito usado como programa de backup ou compresso de ficheiros;
vi: editor de texto full-screen;
vim: editor de texto full-screen melhorado;
file: determina o tipo de ficheiro
grep: procura um ficheiro por um padro, sendo um filtro muito til e usado, por exemplo um cat a.txt | grep ola
ir mostrar-nos apenas as linhas do ficheiro a.txt que contenham a palavra ola.
P g i n a | 9
sort: ordena, une ou compara texto, podendo ser usado para extrair informaes dos ficheiros de texto ou
mesmo para ordenar dados de outros comandos como por exemplo listar ficheiros ordenados pelo nome;
wc: conta linhas, palavras e mesmo caracteres num ficheiro;
tail: funciona de forma inversa ao comando head, mostra-nos as ltimas linhas de um ficheiro ou mesmo do
output de outro comando, quando usado como filtro;
bg: coloca um processo suspenso em background;
fg: ao contrrio do comando bg, o fg traz de volta um processo ao foreground;
top: lista os processos que mais cpu usam, til para verificar que processos esto a provocar um uso excessivo de
memria, e quanta percentagem de cpu cada um usa em dado momento;
wget: permite-nos fazer o download completo de pginas web, com todos os ficheiros, de forma fcil e no
interactiva.
1.3 Servios de diretrio: Active Directory e LDAP
AD - Active Directory
O Active Directory um sistema baseado em banco de dados que fornece autenticao, diretrio, poltica e outros
servios em um ambiente Windows. Ele armazena informaes sobre usurios, computadores e outros dispositivos
existentes na rede. O diretrio do Active Directory composto por Objetos. Um objeto representa qualquer recurso que
possumos na rede. Uma conta de usurio que existe no Active Directory um objeto, um grupo um objeto, at uma
impressora pode ser um objeto para o AD.
Objetos
Quando criamos um objeto no AD, por exemplo uma conta de usurio, a mesma possui certas propriedades, como por
exemplo seu nome, seu nome de logon, telefone, endereo, entre outras. Essas propriedades so o que chamamos de
atributos dos objetos. Os principais tipos de objetos que o Active Directory no Windows 2003 nos disponibiliza so:
Contas de usurios
Grupos
Contas de computadores
Pastas Compartilhadas
Impressoras
Contatos.
Domnio
O Active Directory composto por domnios. Um domnio uma unidade administrativa do Active Directory, que ir
armazenar seus objetos. Qualquer Windows Server poder ser o Controlador de Domnio, com exceo da verso Web
Edition.
rvores
A definio de uma rvore um arranjamento hierrquivo de domnios. Quando criamos o nosso domnio, criamos
tambm uma rvore. O nome de nossa rvore ser o mesmo nome que configuramos para o nosso domnio. Atravs da
arvore possvel criarmos subdomnios. Um subdomnio um domnio que est abaixo de outro domnio na hierarquia
da rvore (usamos tambm o termo child domain para o subdomnio).
Florestas
Uma floresta Windows 2003 composta de por uma ou mais rvores de domnios Windows 2003 que no compartilham
um namespace comum. Uma floresta o limite mais externo do Active Directory. Se tivermos uma rvore e dois
domnios, todos participam da mesma floresta. Mas para ter uma floresta eu preciso de pelo menos uma rvore e um
P g i n a | 10
domnio certo? Sim! E quando a floresta criada? Ela criada quando criamos o nosso primeiro domnio. O nome da
floresta o nome do primeiro domnio criado, o qual tambm chamamos de forest root domain.
Unidades Organizacionais
Para podermos entender a utilizao de Organizational Units, vamos pensar em um exemplo simples: voc tem os seus
arquivos, o qual voc coloca em pastas para organiz-los melhor, certo? Voc poderia coloc-los direto na raiz de sua
unidade? (por exemplo, colocar todos os seus arquivos direto em C:) Sim, poderia. Isso iria funcionar? Sim, iria funcionar.
Mas isso seria funcional? Com certeza no. Tudo bem, voc saberia onde esto seus arquivos, mas e at voc encontrar o
que voc precisa? Levaria muito mais tempo dessa maneira do que se eles estivesse organizados em pastas especficas. A
idia de Organizational Units, ou como so mais conhecidas OUs, termos pastas para poder organizar melhor os
objetos do domnio, poder aplicar configuraes de segurana e delegar autoridade administrativa. Por exemplo, se na
nossa empresa tivssemos cinco departamentos com mais ou menos 70 funcionrios em cada um deles. Poderamos
colocar todas as contas de usurios, grupos, impressoras, e computadores diretamente no domnio. Mas e se
precisssemos aplicar um poltica de segurana s para os funcionrios do departamento de vendas? Teramos de aplicar
a configurao no domnio e ela sobrecairia em todos os objetos do domnio, o que no era o desejado. Mas poderamos
criar uma OU para o departamento vendas, colocar todos os objetos respectivos ao departamento vendas na OU e aplicar
a poltica de segurana na OU, o que nada afetaria os outros objetos do nosso domnio. Alm disso, mesmo que no fosse
necessrio aplicar polticas de segurana especficas para os outros departamentos, poderamos criar uma OU para cada
departamento e colocar os objetos especficos nas OUs. Para visualizarmos as OU que existem em nosso domnio,
utilizamos a feramente Active Directory Users and Computers que fica na pasta Administrative Tools.
Resumindo... De forma resumida podemos dizer que os objetos so os usurios e os computadores cadastrados. As
unidades organizacionais podem ser criadas para organizar estes usurios e computadores em estruturas para receber
configuraes da poltica de grupo (group policy). O domnio a estrutura que centraliza as unidades organizacionais
dentro da rede. As rvores de domnio reunem diversos controladores de domnio em uma estrutura empresarial. E as
florestas organizam as rvores de domnios da empresa.
Outros conceitos de AD
RODC (Controladores de domnio somente leitura): um RODC (controlador de domnio somente leitura) um novo tipo
de controlador de domnio do sistema operacional Windows Server 2008. Com um RODC, as organizaes podem
facilmente implantar um controlador de domnio em locais onde no possvel garantir a segurana fsica. Um RODC
hospeda parties somente leitura do banco de dados dos Servios de Domnio Active Directory (AD DS).
Funo Active Directory Rights Management Services: o AD RMS, uma tecnologia agnstica de aplicativo e formato,
fornece servios para permitir a criao de solues de proteo de informaes. O contedo que pode ser protegido
pelo uso do AD RMS inclui sites de intranet, mensagens de email e documentos. O AD RMS foi criado para ajudar a tornar
o contedo mais seguro, independentemente de o contedo protegido por direitos poder ser movido.
O AD RMS depende dos Servios de Domnio Active Directory (AD DS) para verificar se o usurio que est tentando
consumir contedo protegido por direitos est autorizado a fazer isso.
Funo Servios AD LDS: A funo de servidor AD LDS (Active Directory Lightweight Directory Services) um servio de
diretrio do protocolo LDAP. Ela oferece armazenamento e recuperao de dados para aplicativos habilitados em
diretrio, sem as dependncias necessrias aos Servios de Domnio Active Directory (AD DS). O AD LDS oferece grande
parte da mesma funcionalidade que o AD DS (na verdade, ele foi criado em cima da mesma base de cdigo), mas no
requer a implantao de domnios ou controladores de domnio.
Como o AD LDS foi desenvolvido para ser um servio de diretrio para aplicativos, esperado que os aplicativos iro criar,
gerenciar e remover objetos de diretrio.
LDAP - Lightweight Directory Access Protocol
P g i n a | 11
O LDAP (Lightweight Directory Access Protocol) um protocolo de aplicao para consultar e modificar itens de
prestadores de servios de diretrio como o Active Directory, que suporta uma forma de LDAP. Sua funo atualizar e
pesquisar diretrios rodando sobre TCP/IP. Ele foi criado como uma alternativa ao DAP (Directory Access Protocol) para
navegar em diretrios no formato X.500. O LDAP permite manipular informaes sobre pessoas, senhas, impressoras,
recursos e servios, unidades organizacionais, entre outros, e define as formas como essas informaes podem ser
consultadas, inseridas, removidas ou atualizadas. Uma verso segura desse protocolo, o LDAPS, tambm est disponvel.
O LDAP:
Centraliza, em um nico local da rede, informaes acerca de usurios, senhas e diretrios.
Permite acesso aos dados de forma segura usando SSL.
independente de plataforma, podendo ser usado tanto no Active Directory do Windows como no Open
LDAP do Linux.
Armazena as informaes de forma hierrquica em uma estrutura de rvore.
Sofre mais consultas que atualizaes.
Suporta tanto a autenticao por meio de certificados quanto o uso de TLS.
Um cliente comea uma sesso de LDAP ligando-se a um servidor LDAP normalmente pela porta padro TCP 389. Este
envia requisies para o servidor, que devolve respostas das consultas e alteraes. As operaes bsicas so divididas
em trs categorias, conforme a seguir:
Categoria Operao Descrio
Autenticao e controle Bind Autentica e especifica a verso do protocolo LDAP.
Autenticao e controle Abandon Aborta uma requisio prvia.
Autenticao e controle Unbind Fecha a conexo, no o inverso de Bind.
Pesquisa e comparao Search Procura por e/ou recupera entradas dos diretrios.
Pesquisa e comparao Compare Testa se uma entrada tem determinado valor como atributo.
Atualizao Add Adiciona uma nova entrada.
Atualizao Delete Apaga uma entrada.
Atualizao Modify Modifica uma entrada.
Atualizao Modify DN Move ou renomeia uma entrada.
Start TLS Protege a conexo com a Transport Layer Security (TLS).
Extended Operation Operao genrica para definir outras operaes.
A estrutura bsica das informaes LDAP baseada em uma rvore conceitual, chamada de DIT (Directory Information
Tree). Cada folha dessa rvore um objeto identificado por um DN (Distinguished Name), que representa um endereo
na estrutura LDAP sendo considerada. Os identificadores DN possuem uma utilizao parecida com os sistemas de
arquivo, com a diferena de que a parte mais significativa no LDAP aparece primeiro (ex:
cn=Henrique,o=funcionrio,ou=administrativo), enquanto nos endereos de arquivo acontece o contrrio (ex:
/home/user/arquivo). A identificao de elementos do LDAP semelhante estrutura utilizada no DNS, com a parte mais
significativa aparecendo primeiro (mais esquerda).
Para cada objeto (folha da rvore) so definidos atributos. Alguns dos atributos que podem ser associados aos objetos
so:
Atributo Descrio
c country (Pas)
cn common name
dc domainComponent
dn distinguished name (define uma entrada sem ambigidades. o caminho de registros que fica entre o registro a ser especificado e a raiz)
P g i n a | 12
Givenname Primeiro nome
ou organizationalUnitName
rdn relative distinguished name (identifica um registro em seu nvel)
sn surname (sobrenome)
uid user ID
Registro: contm informaes sobre o objeto armazenado (usurio, impressora, etc.).
Object class: define quais atributos so obrigatrios e quais so opcionais em um registro. Um registro tem uma ou mais
object class.
Schema: conjunto de regras que define os tipos de dados possveis (int, string, etc.) e organizao desses dados. Busca
manter a consistncia dos dados no diretrio LDAP.
Modelos de abordagem do LDAP
Modelo de informaes: define o tipo de informao que pode ser armazenada em um diretrio LDAP.
Trata dos atributos, das object class, dos schemas, etc.
Modelo de nomes: define como a informao no diretrio LDAP pode ser organizada e referenciada.
Trata da organizao da DIT, como os RDNs e o DNs.
Modelo funcional: define o que pode ser feito com a informao no diretrio LDAP e como ela pode ser
acessada e alterada. Descreve o que fazer com o diretrio e atravs de quais ferramentas, como por
exemplo, fazer autenticao, buscar no diretrio, modificar dados, etc.
Modelo de segurana: define como a informao no diretrio LDAP pode ser protegida de acessos ou
modificaes no autorizadas. No LDAP, podemos ter vrios usurios alm do administrador. Na verdade,
caso voc deseje, o LDAP pode tratar cada registro da DIT como um usurio. Para dizer o que cada usurio
ter permisso de fazer (ler ou modificar) e em quais registros ele poder fazer isso (registros prprios
dele ou dos outros), existem as ACLs (Access Control Lists). O modelo de segurana utiliza o TLS
(criptografa a comunicao entre cliente e servidor) e a SASL Simple Authentication and Secutiry Layer
(mtodo de negociao seguro de autenticao entre cliente e servidor para provar ao servio que um
cliente vlido).
Resposta curta: AD um banco de dados de servios de diretrio, e LDAP um dos protocolos que voc pode usar para
falar com ele.
2. VIRTUALIZAO COM CITRIX XEN SERVER E VMWARE ESXI
Virtualizao de servidores uma tecnologia que permite, atravs do compartilhamento de hardware, que mltiplos
sistemas operacionais possam ser executadas em um nico servidor fsico. Utilizando-se do Citrix XenServer ou VMWare
ESXi cada mquina virtual completamente isolada das outras mquinas virtuais. Com a virtualizao cada mquina
virtual configurada neste processo comporta-se como servidor completo, seguro e totalmente isolado como se fosse um
servidor independente.
2.1 Citrix XenServer
O XenServer uma soluo de classe empresarial comprovada para computao em nuvem e virtualizao de servidores,
que reduz drasticamente os custos do datacenter ao transformar os ambientes de TI estticos e complexos em
datacenters virtuais dinmicos e fceis de gerenciar. Oferece capacidades de gerenciamento avanadas para integrar e
automatizar os datacenters virtuais por uma frao do custo de outras solues.
Requerimentos para instalao
XenServer executado diretamente no seu hardware, ento no haver nada entre o hardware e o XenServer. Em outras
palavras, o XenServer funcionar literalmente como o sistema operacional. Ele vai falar diretamente com o hardware,
incluindo a interface de rede (NIC) e controlador de armazenamento.
P g i n a | 13
Ele requer uma CPU 64-bit com a tecnologia Intel VT ou AMD-V habilitado, isso mais como uma especificao
recomendada, no significa que XenServer no ser instalado se o seu processador no possuir suporte a Intel VT ou
AMD-V habilitado. Porm, ele ter seus recursos e funcionalidades bem limitadas.
O XenServer um hypervisor paravirtualizado, usa a tcnica de paravirtualizao. Portanto, requer que o processador
existente em seu servidor fsico possua suporte a tecnologia de virtualizao para que voc aproveite todas as
funcionalidades e vantagens dessa tecnologia. peciso de um mnimo de 2 GB de RAM s para instalar
XenServer, mas o recomendado de pelo menos 8 GB, especialmente se voc pretende hospedar mltiplas mquinas
virtuais. XenServer sozinho vai exigir 16 GB de espao em disco. Mas, novamente, voc vai precisar de mais para as
mquinas virtuais caso deseje hosped-las localmente.
Pode-se instalar at 1 TB de RAM, 16 placas de rede, e 64 processadores lgicos em um host fsico que executa o
XenServer. Lembre-se que os processadores lgicos uma combinao dos ncleos, o hyperthreading que est ativado,
etc.
Abaixo algumas caractersticas:
Console de gerenciamento Citrix XenCenter: O Citrix XenCenter oferece funes de monitoramento ,
gerenciamento e administrao geral de VMs em uma nica interface que permite equipe de TI gerenciar
facilmente centenas de mquinas virtuais a partir de um console de gerenciamento centralizado e altamente
disponvel, que pode ser instalado em qualquer desktop Windows.
Virtual Switching Distribudo: O XenServer possui todas as ferramentas necessrias para criar uma estrutura de
rede virtual multi-tenant, extremamente flexvel e isolada. Esta estrutura baseada em poltica assegura que a
configurao de rede das mquinas virtuais siga a VM quando migra dentro de um pool de recursos. As polticas
so definidas no nvel da rede virtual garantindo que os requisitos de segurana de rede sejam atendidos
independente das configuraes da VM convidada.
Balanceamento dinmico da carga de trabalho: O XenServer aprimora o uso do sistema e a performance dos
aplicativos ao balancear automaticamente as mquinas virtuais com base em polticas definidas pelos usurios
dentro do pool de recursos, para colocao inicial e operaes contnuas.
Alta disponibilidade: O XenServer move e reinicializa automaticamente as mquinas virtuais se houver uma
falha na mquina virtual, no hypervisor ou no servidor. Esta capacidade de auto reinicializao permite aos
administradores protegerem todos os aplicativos virtualizados e proporciona nveis mais altos de disponibilidade
para a empresa.
Gerenciamento de energia: O XenServer aproveita os recursos do hardware para relocar VMs dinamicamente e
ligar e desligar hosts conforme a demanda por recursos flutuar.
Recuperao de desastres: O XenServer possui recursos de recuperao de desastres com um planejamento de
recuperao de desastres de site-to-site e servios para ambientes virtuais. Estes recursos so fceis para
configurar, rpidos para recuperar e tm a habilidade de testar frequentemente os planos de recuperao de
desastres para garantir que permanecem sempre vlidos.
IntelliCache: O XenServer usa o armazenamento local como repositrio para as imagens de boot e dados
temporrios reduzindo o volume de trfego no Storage para instalaes XenDesktop.
Otimizao de memria: O XenServer reduz os custos e melhora a performance e a proteo de aplicativos ao
compartilhar a memria de servidores sem uso entre as mquinas virtuais no servidor host.
Servios de provisionamento: O Citrix Provisioning Services reduz os requisitos de armazenamento ao criar um
conjunto de imagens padro que podem ser transmitidas para servidores fsicos e virtuais para que as
instalaes de aplicativos sejam mais rpidas, consistentes e confiveis.
Administrao baseada em funes: A administrao baseada em funes do XenServer aumenta a segurana e
permite acesso delegado, controle e uso dos recursos do pool ao manter uma estrutura de acesso em camadas
com nveis de permisso variveis.
P g i n a | 14
Citrix StorageLink: O Citrix StorageLink oferece integrao com as plataformas lderes de armazenamento de
rede, o que permite aos gerentes de armazenamento aproveitarem as ferramentas existentes de gerenciamento
de dados para manter os processos de gerenciamento consistentes em ambientes fsicos e virtuais.
Proteo e recuperao das mquinas virtuais: O XenServer protege contra a perda de dados em caso de falha
nas mquinas virtuais ao tirar snapshots regularmente e arquivar as imagens em um local especfico de
armazenamento.
2.2 VMWare ESXi
O VMware ESXi fornece a base para criao de uma infra estrutura de confiabilidade e dinamismo. Esta ferramenta
abstrai os recursos de processador, memria, armazenamento e rede de uma s mquina passando para varias mquinas
virtualizada,esta a ferramenta de Virtualizao mais implantada do mercado.
O VMware ESXi a ferramenta mais recente da VMware,ela possui grande arquitetura e no depende de um sistema
operacional. O VMware ESXi criou um novo nvel de segurana e confiabilidade, possui uma codificao menor, com
menos cdigo para corrigir menos erros , tornando esta ferramenta muito difcil de receber ataques. Este software pode
ser integrado diretamente aos servidores x86, que padro do setor dos fabricantes lderes no mercado de fabricao ,
como Dell, IBM, HP e Fujitsu-Siemens.
A ferramenta ESXi est disponvel no site da fabricante gratuitamente para utilizaes de servidores nicos. Assim,a rea
de Tecnologia da Informao utiliza de outra ferramenta gratuita, o VMware vShere client, para gerenciamento dos
recursos.
O VMware ESXi instalado diretamente no hardware da mquina, inserindo a camada de Virtualizao entre o hardware
e o sistema operacional, com o controle geral da mquina, como os servidores que foram instalados, o armazenamento e
a rede. As ferramentas VMware ESXi permitem que em um s espao fsico consigamos executar diversos aplicativos em
diversas mquinas virtuais ao mesmo tempo.
Abaixo algumas caractersticas:
Ocupa pouco espao no disco aps a instalao;
Suporta Storages (SAN, NAS,...);
Possibilita a criao de Redes Virtuais (switches virtuais);
Suporte a VLAN, Traffic Shapping;
Suporte a Paravirtualizao;
Suporte a multiprocessadores;
Melhoria no gerenciamento de recursos( atravs da funcionalidade "Pool de Recursos");
Upgrades(para verses pagas) sem precisar de reinstalao;
Snapshots do disco e da memria;
Downloads e Uploads de VMs (download pode ser "a quente");
Priorizao de I/O ao disco;
Ordem de Boot e Shutdown.
2.3 Diferenas entre o Xen Server e VMware ESXi
Funcionalidades Citrix XenServer 6 VMware ESXi 5
Suporte a Vrios Sockets (Processador Fsico)
Sem restries Suporte a Somente 01 Socket
(Processador Fsico)
Memria Ram no Host 1 TB RAM no Host 32 GB no Host
Tamanho mximo de Memria RAM na VM
128 GB RAM 32 GB RAM
Instalao Bare-metal Gratuito Gratuito
P g i n a | 15
Ferramentas de migrao P2V e V2V Gratuitas
Gratuito Gratuito
Gerenciamento Mltiplo de Servidores
Gratuito No possui. Gerenciamento
Comprar vCenter Server
Pools de Recursos (Cluster) e Storage Compartilhado
Gratuito. Para servidores com mesmo hardware
No possui
Snapshots de mquinas virtuais (VM)
Gratuito No possui
Monitoramento de performance em tempo Real
Grauito No possui
Migrao a Quente (XenMotion) e Backup de VMs Incluso
Gratuito No possui
Quantidade de vCPU (Processador Virtual) por mquina Virtual
Suporte a 16 vCPU para VMs Windows e suporte a 32 vCPU para VMs Linux
8 vCPU para cada VM
Modo Manuteno Incluso No possui
Atualizao do Hypervisor Facilitado com Assistentes
dentro do XenCenter Linha de comando
Templates VMs Gratuito No Possui
Clonar VMs Gratuito No Possui
Suporte a SNMP Gratuito No Possui
3. COMPUTAO EM NUVEM
O conceito de computao em nuvem (em ingls, cloud computing) refere-se utilizao da memria e das capacidades
de armazenamento e clculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo
o princpio da computao em grade.
O armazenamento de dados feito em servios que podero ser acessados de qualquer lugar do mundo, a qualquer hora,
no havendo necessidade de instalao de programas ou de armazenar dados. O acesso a programas, servios e arquivos
remoto, atravs da Internet - da a aluso nuvem. O uso desse modelo (ambiente) mais vivel do que o uso de
unidades fsicas.
Num sistema operacional disponvel na Internet, a partir de qualquer computador e em qualquer lugar, pode-se ter
acesso a informaes, arquivos e programas num sistema nico, independente de plataforma. O requisito mnimo um
computador compatvel com os recursos disponveis na Internet. O PC torna-se apenas um chip ligado Internet a
"grande nuvem" de computadores sendo necessrios somente os dispositivos de entrada (teclado, mouse) e sada
(monitor).
Empresas como Amazon, Google, IBM e Microsoft foram as primeiras a iniciar uma grande ofensiva nessa "nuvem de
informao" (information cloud), que especialistas consideram uma "nova fronteira da era digital". Aos poucos, essa
tecnologia vai deixando de ser utilizada apenas em laboratrios para ingressar nas empresas e, em breve, em
computadores domsticos.
O primeiro servio na Internet a oferecer um ambiente operacional para os usuriosantigamente, disponvel no
endereo www.webos.orgfoi criado por um estudante sueco, Fredrik Malmer, utilizando as linguagens XHTML e
Javascript. Atualmente, o termo AJAX adotado para definir a utilizao dessas duas linguagens na criao de servios na
Internet.
Em 1999, foi criada nos EUA a empresa WebOS Inc., que comprou os direitos do sistema de Fredrik e licenciou uma srie
de tecnologias desenvolvidas nas universidades do Texas, Califrnia e Duke. O objetivo inicial era criar um ambiente
operacional completo, inclusive com API para o desenvolvimento de outros aplicativos.
Tipologia
P g i n a | 16
Atualmente, a computao em nuvem dividida em sete tipos:
IaaS: Infrastructure as a Service ou Infraestrutura como Servio (em portugus): quando se utiliza uma
percentagem de um servidor, geralmente com configurao que se adeque sua necessidade.
PaaS: Plataform as a Service ou Plataforma como Servio (em portugus): utilizando-se apenas uma plataforma
como um banco de dados, um web-service, etc. (p.ex.: Windows Azure e Jelastic).
DevaaS: Development as a Service ou Desenvolvimento como Servio (em portugus): as ferramentas de
desenvolvimento tomam forma na computao em nuvem como ferramentas compartilhadas, ferramentas de
desenvolvimento web-based e servios baseados em mashup.
SaaS: Software as a Service ou Software como Servio (em portugus): uso de um software em regime de
utilizao web (p.ex.: Google Docs , Microsoft SharePoint Online).
CaaS: Communication as a Service ou Comunicao como Servio (em portugus): uso de uma soluo de
Comunicao Unificada hospedada em Data Center do provedor ou fabricante (p.ex.: Microsoft Lync).
EaaS: Everything as a Service ou Tudo como Servio (em portugus): quando se utiliza tudo, infraestrurura,
plataformas, software, suporte, enfim, o que envolve T.I.C. (Tecnologia da Informao e Comunicao) como um
Servio.
DBaas: Data Base as a Service ou Banco de dados como Servio (em portugus): quando utiliza a parte de
servidores de banco de dados como servio.
Servios oferecidos
Os seguintes servios atualmente so oferecidos por empresas:
Servidor Cloud
Hospedagem de Sites em Cloud
Load Balancer em Cloud
Email em Cloud
Caracterstica de computao em nuvem
Provisionamento dinmico de recursos sob demanda, com mnimo de esforo;
Escalabilidade;
Uso de "utilility computing", onde a cobrana baseada no uso do recurso ao invs de uma taxa fixa;
Viso nica do sistema;
Distribuio geogrfica dos recursos de forma transparente ao usurio.
Modelo de implantao
No modelo de implantao, dependemos das necessidades das aplicaes que sero implementadas. A restrio ou
abertura de acesso depende do processo de negcios, do tipo de informao e do nvel de viso desejado. Percebemos
que certas organizaes no desejam que todos os usurios possam acessar e utilizar determinados recursos no seu
ambiente de computao em nuvem. Segue abaixo a diviso dos diferentes tipos de implantao:
Privado: As nuvens privadas so aquelas construdas exclusivamente para um nico usurio (uma empresa, por
exemplo). Diferentemente de um data center privado virtual, a infraestrutura utilizada pertence ao usurio, e,
portanto, ele possui total controle sobre como as aplicaes so implementadas na nuvem. Uma nuvem privada
, em geral, construda sobre um data center privado.
Pblico: As nuvens pblicas so aquelas que so executadas por terceiros. As aplicaes de diversos usurios
ficam misturadas nos sistemas de armazenamento, o que pode parecer ineficiente a princpio. Porm, se a
implementao de uma nuvem pblica considera questes fundamentais, como desempenho e segurana, a
P g i n a | 17
existncia de outras aplicaes sendo executadas na mesma nuvem permanece transparente tanto para os
prestadores de servios como para os usurios.
Comunidade: A infraestrutura de nuvem compartilhada por diversas organizaes e suporta uma comunidade
especfica que partilha as preocupaes (por exemplo, a misso, os requisitos de segurana, poltica e
consideraes sobre o cumprimento). Pode ser administrado por organizaes ou por um terceiro e pode existir
localmente ou remotamente.
Hbrido: Nas nuvens hbridas temos uma composio dos modelos de nuvens pblicas e privadas. Elas permitem
que uma nuvem privada possa ter seus recursos ampliados a partir de uma reserva de recursos em uma nuvem
pblica. Essa caracterstica possui a vantagem de manter os nveis de servio mesmo que haja flutuaes rpidas
na necessidade dos recursos. A conexo entre as nuvens pblica e privada pode ser usada at mesmo em tarefas
peridicas que so mais facilmente implementadas nas nuvens pblicas, por exemplo. O termo computao em
ondas , em geral, utilizado quando se refere s nuvens hbridas.
Vantagens
A maior vantagem da computao em nuvem a possibilidade de utilizar softwares sem que estes estejam instalados no
computador. Mas h outras vantagens:
Na maioria das vezes o usurio no precisa se preocupar com o sistema operacional e hardware que est usando
em seu computador pessoal, podendo acessar seus dados na "nuvem computacional" independentemente disso;
As atualizaes dos softwares so feitas de forma automtica, sem necessidade de interveno do usurio;
O trabalho corporativo e o compartilhamento de arquivos se tornam mais fceis, uma vez que todas as
informaes se encontram no mesmo "lugar", ou seja, na "nuvem computacional";
Os softwares e os dados podem ser acessados em qualquer lugar, basta apenas que haja acesso Internet, no
so mais restritos ao ambiente local de computao, nem dependem da sincronizao de mdias removveis.
O usurio tem um melhor controle de gastos ao usar aplicativos, pois a maioria dos sistemas de computao em
nuvem fornece aplicaes gratuitamente e, quando no gratuitas, so pagas somente pelo tempo de utilizao
dos recursos. No necessrio pagar por uma licena integral de uso de software;
Diminui a necessidade de manuteno da infraestrutura fsica de redes locais cliente/servidor, bem como da
instalao dos softwares nos computadores corporativos, pois esta fica a cargo do provedor do software em
nuvem, bastando que os computadores clientes tenham acesso Internet;
A infraestrutura necessria para uma soluo de computao em nuvem bem mais enxuta do que uma soluo
tradicional de hospedagem ou alojamento, consumindo menos energia, refrigerao e espao fsico e
consequentemente contribuindo para a preservao e o uso racional dos recursos naturais.
Desvantagens
A maior desvantagem da computao em nuvem vem fora do propsito desta, que o acesso a internet. Caso voc perca
o acesso, comprometer todos os sistemas embarcados.
Velocidade de processamento: caso seja necessrio uma grande taxa de transferncia, se a internet no tiver
uma boa banda, o sistema pode ser comprometido. Um exemplo tpico com mdias digitais ou jogos;
Assim como todo tipo de servio, ele custeado.
Maior risco de comprometimento da privacidade do que em armazenamento off-line.
Gerenciamento da segurana da informao na nuvem
Sete princpios de segurana em uma rede em nuvem:
Acesso privilegiado de usurios: A sensibilidade de informaes confidenciais nas empresas obriga um controle
de acesso dos usurios e informao bem especfica de quem ter privilgio de administrador, para ento esse
administrador controle os acessos
P g i n a | 18
Compliance com regulamentao: As empresas so responsveis pela segurana, integridade e a
confidencialidade de seus prprios dados. Os fornecedores de computao em nuvem devem estar preparados
para auditorias externas e certificaes de segurana.
Localizao dos dados: A empresa que usa cloud provavelmente no sabe exatamente onde os dados esto
armazenados, talvez nem o pas onde as informaes esto guardadas. O fornecedor deve estar disposto a se
comprometer a armazenar e a processar dados em jurisdies especficas, assumindo um compromisso em
contrato de obedecer os requerimentos de privacidade que o pas de origem da empresa pede.
Segregao dos dados: Geralmente uma empresa divide um ambiente com dados de diversos clientes. Procure
entender o que feito para a separao de dados, que tipo de criptografia segura o suficiente para o
funcionamento correto da aplicao.
Recuperao dos dados: O fornecedor em cloud deve saber onde esto os dados da empresa e o que acontece
para recuperao de dados em caso de catstrofe. Qualquer aplicao que no replica os dados e a infra-
estrutura em diversas localidades est vulnervel a falha completa. Importante ter um plano de recuperao
completa e um tempo estimado para tal.
Apoio investigao: A auditabilidade de atividades ilegais pode se tornar impossvel na computao em nuvem
uma vez que h uma variao de servidores conforme o tempo onde esto localizados os acessos e os dados dos
usurios. Importante obter um compromisso contratual com a empresa fornecedora do servio e uma evidncia
de sucesso no passado para esse tipo de investigao.
Viabilidade em longo prazo: No mundo ideal, o seu fornecedor de computao em nuvem jamais vai falir ou ser
adquirido por uma empresa maior. A empresa precisa garantir que os seus dados estaro disponveis caso o
fornecedor de computao em nuvem deixe de existir ou seja migrado para uma empresa maior. Importante
haver um plano de recuperao de dados e o formato para que possa ser utilizado em uma aplicao substituta.
Sistemas atuais
Os sistemas operacionais para Internet mais utilizados so:
Google Chrome OS: Desenvolvido pela Google, j incorporado nos Chromebooks, disponveis desde 15 de junho
de 2011. Trabalha com uma interface diferente, semelhante ao do Google Chrome, em que todas as aplicaes
ou arquivos so salvos na nuvem e sincronizados com sua conta do Google, sem necessidade de salv-los no
computador, j que o HD dos dois modelos de Chromebooks anunciados contam com apenas 16gb de HD.
Joli Os: desenvolvido por Tariq Krim, o ambiente de trabalho chamado jolicloud usa tanto aplicativos em nuvem
quanto aplicativos offline, baseado no ubuntu notebook remix, j tem suporte a vrios navegadores como google
chrome, safari, firefox, e est sendo desenvolvido para funcionar no android.
YouOS: desenvolvido pela empresa WebShaka, cria um ambiente de trabalho inspirado nos sistemas
operacionais modernos e utiliza a linguagem Javascript para executar as operaes. Ele possui um recurso
semelhante hibernao no MS-Windows XP, em que o usurio pode salvar a rea de trabalho com a
configurao corrente, sair do sistema e recuperar a mesma configurao posteriormente. Esse sistema tambm
permite o compartilhamento de arquivos entre os usurios. Alm disso, possui uma API para o desenvolvimento
de novos aplicativos, sendo que j existe uma lista de mais de 700 programas disponveis. Fechado pelos
desenvolvedores em 30 de julho de 2008;
DesktopTwo: desenvolvido pela empresa Sapotek, tem como pr-requisito a presena do utilitrio Flash Player
para ser utilizado. O sistema foi desenvolvido para prover todos os servios necessrios aos usurios, tornando a
Internet o principal ambiente de trabalho. Utiliza a linguagem PHP como base para os aplicativos disponveis e
tambm possui uma API, chamada Sapodesk, para o desenvolvimento de novos aplicativos. Fechado para
desenvolvedores;
G.ho.st: Esta sigla significa Global Hosted Operating SysTem (Sistema Operacional Disponvel Globalmente),
tem como diferencial em relao aos outros a possibilidade de integrao com outros servios como: Google
Docs, Meebo, ThinkFree, entre outros, alm de oferecer suporte a vrios idiomas;
eyeOS: Este sistema est sendo desenvolvido por uma comunidade denominada EyeOS Team e possui o cdigo
fonte aberto ao pblico. O objetivo dos desenvolvedores criar um ambiente com maior compatibilidade com os
P g i n a | 19
aplicativos atuais, MS-Office e OpenOffice. Possui um abrangente conjunto de aplicativos, e o seu
desenvolvimento feito principalmente com o uso da linguagem PHP.
iCloud: Sistema lanado pela Apple em 2011, capaz de armazenar at 5 GB de fotos, msicas, documentos,
livros e contatos gratuitamente, com a possibilidade de adquirir mais espao em disco (pago).
Ubuntu One: Ubuntu One o nome da sute que a Canonical (Mantenedora da distribuio Linux Ubuntu) usa
para seus servios online. Atualmente com o Ubuntu One possvel fazer backups, armazenamento,
sincronizao e compartilhamento de arquivos e vrios outros servios que a Canonical adiciona para oferecer
mais opes e conforto para os usurios.
IBM Smart Business: Sistema da IBM que engloba um conjunto de servios e produtos integrados em nuvem
voltados para a empresa. O portflio incorpora sofisticada tecnologia de automao e autosservio para tarefas
to diversas como desenvolvimento e teste de software, gerenciamento de computadores e dispositivos, e
colaborao. Inclui o Servidor IBM CloudBurst server (US) com armazenamento, virtualizao, redes integradas e
sistemas de gerenciamento de servio embutidos.
Dropbox: Dropbox um sistema de armazenamento em nuvem que inicia-se gratuitamente com 2gb e conforme
indica amigos o espao para armazenamento de arquivos cresce at 18gb. Tambm tem opes pagas com
maior espao.
Skydrive: Servio de armazenamento em nuvem da Microsoft com 7gb free e com a possibilidade de adquirir
mais espao. Tem servios sicronizados com o windows 8, windows phone e Xbox.
4. SERVIDORES HTTP APACHE
O servidor Apache (ou Servidor HTTP Apache, em ingls: Apache HTTP Server, ou simplesmente: Apache) o mais bem
sucedido servidor web livre. Foi criado em 1995 por Rob McCool, ento funcionrio do NCSA (National Center for
Supercomputing Applications). Numa pesquisa realizada em dezembro de 2007, foi constatado que a utilizao do
Apache representa 47.20% dos servidores ativos no mundo. Em maio de 2010, o Apache serviu mais de 54,68% de todos
os sites e mais de 66% dos milhes de sites mais movimentados. a principal tecnologia da Apache Software
Foundation, responsvel por mais de uma dezena de projetos envolvendo tecnologias de transmisso via web,
processamento de dados e execuo de aplicativos distribudos.
O servidor compatvel com o protocolo HTTP verso 1.1. Suas funcionalidades so mantidas atravs de uma estrutura
de mdulos, permitindo inclusive que o usurio escreva seus prprios mdulos - utilizando a API do software. Sua porta
padro a 80. disponibilizado em verses para os sistemas Windows, Novell Netware, OS/2 e diversos outros do padro
POSIX (Unix, Linux, FreeBSD, etc.).
Para garantir segurana nas transaes HTTP, o servidor dispe de um mdulo chamado mod_ssl, o qual adiciona a
capacidade do servidor atender requisies utilizando o protocolo HTTPS. Este protocolo utiliza uma camada SSL para
criptografar todos os dados transferidos entre o cliente e o servidor, provendo maior grau de segurana,
confidencialidade e confiabilidade dos dados. A camada SSL compatvel com certificados X.509, que so os certificados
digitais fornecidos e assinados por grandes entidades certificadoras no mundo.
O servidor configurado por um arquivo mestre nomeado httpd.conf e opcionalmente pode haver configuraes
para cada diretrio utilizando arquivos com o nome .htaccess, onde possvel utilizar autenticao de usurio pelo
prprio protocolo HTTP utilizando uma combinao de arquivo .htaccess com um arquivo .htpasswd, que guardar os
usurios e senhas (criptografadas).
Caractersticas do servidor Apache
O Apache Server um software livre, o que significa que qualquer um pode estudar ou alterar seu cdigo-fonte, alm de
poder utiliz-lo gratuitamente. graas a essa caracterstica que o software foi (e continua sendo) melhorado ao passar
dos anos. Graas ao trabalho muitas vezes voluntrio de vrios desenvolvedores, o Apache continua sendo o servidor
Web mais usado no mundo. Alm de estar disponvel para o Linux (e para outros sistemas operacionais baseados no
P g i n a | 20
Unix), o Apachetambm conta com verses para o Windows, para o Novell Netwar e para o OS/2, o que o torna uma
tima opo para rodar em computadores obsoletos (desde que este atenda aos requisitos mnimos de hardware).
O servidor Apache capaz de executa cdigo em PHP, Perl, Shell Script e at em ASP e pode atuar como servidor FTP,
HTTP, entre outros. Sua utilizao mais conhecida a que combina o Apache com a linguagem PHP e o banco de dados
MySQL (combinao usada aqui no InfoWester, por exemplo).
A exigncia de hardware do Apache depende de sua aplicao, mas um PC Pentium com 64 MB de memria RAM capaz
de execut-lo tranqilamente em um ambiente corporativo pequeno. No entanto, quando se trata de um site na internet,
interessante ter mquinas to poderosas quanto o que exige o nvel de acesso.
Abaixo, segue um resumo com as principais caractersticas (extrado do Guia Foca Linux):
Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script, ASP, etc;
Suporte a autorizao de acesso podendo ser especificadas restries de acesso separadamente
para cada endereo/arquivo/diretrio acessado no servidor;
Autenticao requerendo um nome de usurio e senha vlidos para acesso a alguma pgina/sub-
diretrio/arquivo (suportando criptografia via Crypto e MD5);
Negociao de contedo, permitindo a exibio da pgina Web no idioma requisitado pelo Cliente Navegador;
Suporte a tipos mime;
Personalizao de logs;
Mensagens de erro;
Suporte a virtual hosting ( possvel servir 2 ou mais pginas com endereos/ portas diferentes atravs do
mesmo processo ou usar mais de um processo para controlar mais de um endereo);
Suporte a IP virtual hosting;
Suporte a name virtual hosting;
Suporte a servidor Proxy ftp e http, com limite de acesso, caching (todas flexivelmente configurveis);
Suporte a proxy e redirecionamentos baseados em URLs para endereos Internos;
Suporte a criptografia via SSL,Certificados digitais;
Mdulos DSO (Dynamic Shared Objects) permitem adicionar/remover funcionalidades e recursos sem
necessidade de recompilao do programa.
5. LINGUAGEM DE PROGRAMAO PYTHON E FRAMEWORK DE DESENVOLVIMENTO WEB DJANGO
5.1 Framework de Desenvolvimento Web Django
Django um framework para desenvolvimento rpido para web, escrito em Python, que utiliza o padro MTV (model -
template - view). Foi criado originalmente como sistema para gerenciar um site jornalstico na cidade de Lawrence, no
Kansas. Tornou-se um projeto de cdigo aberto e foi publicado sob a licena BSD em 2005. O nome Django foi inspirado
no msico de jazz Django Reinhardt. Django utiliza o princpio DRY (Don't Repeat Yourself), onde faz com que o
desenvolvedor aproveite ao mximo o cdigo j feito, evitando a repetio.
Principais caractersticas:
Mapeamento Objeto-Relacional (ORM): com o ORM do Django voc define a modelagem de dados atravs de
classes em Python. Com isso possvel gerar suas tabelas no banco de dados e manipul-las sem necessidade de
utilizar SQL (o que tambm possvel).
Interface Administrativa: no Django possvel gerar automaticamente uma interface para administrao para os
modelos criados atravs do ORM.
Formulrios: possvel gerar formulrios automaticamente atravs dos modelos de dados.
URLs Amigveis: no Django no h limitaes para criao de URLs amigveis e de maneira simples.
P g i n a | 21
Sistema de Templates: o Django tem uma linguagem de templates poderosa, extensvel e amigvel. Com ela
voc pode separar design, contedo e cdigo em Python.
Sistema de Cache: o Django possui um sistema de cache que se integra ao memcached ou em outros
frameworks de cache.
Internacionalizao: Django tem total suporte para aplicaes multi-idioma, deixando voc especificar strings de
traduo e fornecendo ganchos para funcionalidades especficas do idioma.
5.2 Linguagem Python
Python uma linguagem de programao de alto nvel , interpretada, imperativa, orientada a objetos, funcional, de
tipagem dinmica e forte. Foi lanada por Guido van Rossum em 1991. Atualmente possui um modelo de
desenvolvimento comunitrio, aberto e gerenciado pela organizao sem fins lucrativos Python Software Foundation.
Apesar de vrias partes da linguagem possurem padres e especificaes formais, a linguagem como um todo no
formalmente especificada. O padro de facto a implementao CPython.
A linguagem foi projetada com a filosofia de enfatizar a importncia do esforo do programador sobre o esforo
computacional. Prioriza a legibilidade do cdigo sobre a velocidade ou expressividade. Combina uma sintaxe concisa e
clara com os recursos poderosos de sua biblioteca padro e por mdulos e frameworks desenvolvidos por terceiros.
O nome Python teve a sua origem no grupo humorstico britnico Monty Python, criador do programa Monty Python's
Flying Circus, embora muitas pessoas faam associao com o rptil do mesmo nome (em portugus, pton ou pito).
Construes
Construes de Python incluem: estrutura de seleo (if, else, elif); estrutura de repetio (for, while), que itera por um
container, capturando cada elemento em uma varivel local dada; construo de classes (class); construo de subrotinas
(def); construo de escopo (with), como por exemplo para adquirir um recurso.
Tipos de dado
A tipagem de Python forte, pois os valores e objetos tm tipos bem definidos e no sofrem coeres como em C ou Perl.
So disponibilizados diversos tipos de dados nativos:
Tipo de dado Descrio Exemplo da sintaxe
str, unicode Uma cadeia de caracteres imutvel 'Wikipedia', u'Wikipedia'
list Lista heterognea mutvel [4.0, 'string', True]
tuple Tupla imutvel (4.0, 'string', True)
set, frozenset Conjunto no ordenado, no contm elementos duplicados
set([4.0, 'string', True]) frozenset([4.0, 'string', True])
dict conjunto associativo {'key1': 1.0, 'key2': False}
int Nmero de preciso fixa, transparentemente convertido para long caso no caiba em um int.
42 2147483648L
float Ponto flutuante 3.1415927
complex Nmero complexo 3+2j
bool Booleano True ou False
Python tambm permite a definio dos tipos de dados prprios, atravs de classes. Instncias so construdas invocando
a classe (FooClass()), e as classes so instncia da classe type, o que permite metaprogramao e reflexo. Mtodos so
definidos como funes anexadas classe, e a sintaxe instncia.mtodo(argumento) um atalho para
P g i n a | 22
Classe.mtodo(instncia, argumento). Os mtodos devem referenciar explicitamente a referncia para o objeto incluindo
o parmetro self como o primeiro argumento do mtodo.
Antes da verso 3.0, Python possua dois tipos de classes: "old-style" e "new-style". Classes old-style foram eliminadas no
Python 3.0, e todas so new-style. Em verses entre 2.2 e 3.0, ambos tipos de classes podiam ser usadas. A sintaxe de
ambos estilos a mesma, a diferena acaba sendo de onde objeto da classe herdado, direta ou indiretamente (todas
classes new-style herdam de object e so instancias de type). As classes new-styles nada mais so que tipos definidos pelo
usurio.
Palavras reservadas
O Python 2.5.2 define as seguintes 31 palavras reservadas:
Operadores
Os operadores bsicos de comparao como ==, =, entre outros so usados em todos os tipos de dados, como
nmeros, cadeias de texto, listas e mapeamentos. Comparaes em cadeia como a < b < c possuem o mesmo significado
bsico que na matemtica: os termos so comparadas na ordem. garantido que o processamento da expresso lgica
ir terminar to cedo o veredito claro, o princpio da avaliao mnima. Usando a expresso anterior, se a < b falso, c
no avaliado.
Quanto aos operadores lgicos, at Python 2.2 no havia o tipo de dado booleano. Em todas as verses da linguagem os
operadores lgicos tratam "", 0, None, 0.0, [] e {} como falso, enquanto o restante tratado como verdadeiro de modo
geral. Na verso 2.2.1 as constantes True e False foram adicionadas (subclasses de 1 e 0 respectivamente). A comparao
binria retorna uma das duas constantes acima.
Os operadores booleanos and e or tambm seguem a avaliao mnima. Por exemplo, y == 0 or x/y > 100 nunca lanar a
exceo de diviso por zero.
Interpretador interativo
O interpretador interativo uma caracterstica diferencial da linguagem, porque h a possibilidade de testar o cdigo de
um programa e receber o resultado em tempo real, antes de iniciar a compilao ou inclu-las nos programas. Por
exemplo:
>>> 1+1
2
>>>
>>> a = 1+1
>>> print a
2
>>> print(a)
2
>>>
P g i n a | 23
Anlise lxica
No segundo captulo do Manual de Referncia da Linguagem Python citado que a anlise lxica uma anlise do
interpretador em si, os programas so lidos por um analisador sinttico que divide o cdigo em tokens.
Todo programa dividido em linhas lgicas que so separadas pelo token NEWLINE ou NOVA LINHA, as linhas fsicas so
trechos de cdigo divididos pelo caractere ENTER. Linhas lgicas no podem ultrapassar linhas fsicas com exceo de
juno de linhas, por exemplo:
if resultado > 2 and \
1
P g i n a | 24
Usando um editor de texto comum muito fcil existir erros de indentao, o recomendado configurar o editor
conforme a anlise lxica do Python ou utilizar uma IDE. Todas as IDE que suportam a linguagem fazem indentao
automaticamente.
Indentao correta
def valor1():
while True:
try:
c = int(raw_input('Primeiro Valor: '))
return c
except ValueError:
print 'Invlido!'
Indentao incorreta
def valor1():
while True:
try:
c = int(raw_input('Primeiro Valor: '))
return c
except ValueError:
print 'Invlido!'
O cdigo est correto para os dois exemplos, mas o analisador lxico verificar se a indentao est coerente. O
analisador reconhecer as palavras reservadas while, def, try, except, return, print e as cadeias de caracteres entre aspas
simples e a indentao, e se no houver problemas o programa executar normalmente, seno apresentar a exceo:
"Seu programa est com erro no bloco de indentao".
Compilador de bytecode
A linguagem de altssimo nvel, como j dito, mas ela tambm pode compilar seus programas para que a prxima vez
que o executar no precise compilar novamente o programa, reduzindo o tempo de carga na execuo.
Utilizando o interpretador interativo no necessrio a criao do arquivo de Python compilado, os comandos so
executados interativamente. Porm quando um programa ou um mdulo evocado, o interpretador realiza a anlise
lxica e sinttica, compila o cdigo de alto nvel se necessrio e o executa na mquina virtual da linguagem.
O bytecode armazenado em arquivos com extenso .pyc ou .pyo, este ltimo no caso de bytecode otimizado.
Interessante notar que o bytecode da linguagem tambm de alto nvel, ou seja, mais legvel aos seres humanos que o
cdigo de byte do C, por exemplo. Para descompilar um cdigo de byte utilizado o mdulo dis da biblioteca padro da
linguagem e existem mdulos de terceiros que tornam o bytecode mais confuso, tornando a descompilao ineficaz.
Normalmente, o Python trabalha com dois grupos de arquivos:
1. Os mdulos do ncleo da linguagem, sua biblioteca padro e os mdulos independentes, criados pelo usurio.
2. No ncleo do interpretador existe o analisador lxico, o analisador sinttico que utiliza Estruturas de Objetos
(tempo de execuo), o Compilador que aloca memria (tempo de execuo) e depois do Avaliador de cdigo
que modifica o estado atual do programa (tempo de execuo), mostrando resultado para o usurio.
Polimorfismo
O conceito de polimorfismo descreve como objetos podem ser manipulados e acessados usando atributos e
comportamentos em comum sem considerar sua classe especfica e indica a presena de late binding, permitindo
sobrecarga e determinao de tipos em tempo de execuo e verificao. Muitas linguagens orientadas a objeto utilizam
assinaturas de funo para determinar qual verso de um mtodo sobrecarregado chamar. No entanto, as chamadas de
funo em Python so universais ou genricas sem determinao de tipo. Por isso, sobrecarga no suportada na
linguagem.
Orientao a objetos
P g i n a | 25
Python suporta a maioria das tcnicas da programao orientada a objeto. Qualquer objeto pode ser usado para qualquer
tipo, e o cdigo funcionar enquanto haja mtodos e atributos adequados. O conceito de objeto na linguagem bastante
abrangente: classes, funes, nmeros e mdulos so todos considerados objetos. Tambm h suporte para metaclasses,
p