intro linux

Post on 21-Jun-2015

293 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Palestra sobre Linux e afins

TRANSCRIPT

““Introdução ao Linux”Introdução ao Linux”

Luís Felipe Bretas MarzagãoLuís Felipe Bretas Marzagãoduli@easylifeproject.orgduli@easylifeproject.org

PautaPauta

● LinuxLinux● Distribuições GNU/LinuxDistribuições GNU/Linux● Formatos abertos de documentos eletrônicosFormatos abertos de documentos eletrônicos● Servidores LAMPServidores LAMP

O que é Linux?O que é Linux?

● É o É o núcleonúcleo (kernel) de sistemas operacionais. (kernel) de sistemas operacionais.

● Então Linux não é um sistema operacional?Então Linux não é um sistema operacional?

● NÃO! É uma NÃO! É uma parteparte de um sistema operacional. de um sistema operacional.

O que é Linux?O que é Linux?

Linux!!!Linux!!!

Sistema OperacionalSistema Operacional

Kernel: gerencia os recursos do computador e permite que outros programas usem Kernel: gerencia os recursos do computador e permite que outros programas usem esses recursos. esses recursos.

O que é Linux?O que é Linux?

● Exemplos de SOs que usam o kernel Linux:Exemplos de SOs que usam o kernel Linux:● DebianDebian● UbuntuUbuntu● FedoraFedora● OpenSUSEOpenSUSE● CentOSCentOS● … … (e muitos, muitos outros)(e muitos, muitos outros)

● São chamados de também de “distribuições”São chamados de também de “distribuições”

O começoO começo

● 19841984: : Projeto GNUProjeto GNU (Gnu's Not Unix) (Gnu's Not Unix)● Objetivo: criar S.O. livre similar ao Unix (GNU)Objetivo: criar S.O. livre similar ao Unix (GNU)● Definição de Software LivreDefinição de Software Livre

● Liberdade para executar, copiar, distribuir e Liberdade para executar, copiar, distribuir e modificar o softwaremodificar o software

● GNU General Public License (GPL)GNU General Public License (GPL)● Perpetuação da liberdade do softwarePerpetuação da liberdade do software

● Kernel GNU (“GNU Hurd”) – sem versão estávelKernel GNU (“GNU Hurd”) – sem versão estável

● 19911991: : Linus TorvaldsLinus Torvalds inicia o Kernel Linux inicia o Kernel Linux

O começoO começo● 19921992: Linux é distribuído sob a GPL: Linux é distribuído sob a GPL

● Desenvolvimento colaborativo do códigoDesenvolvimento colaborativo do código● Contribuições do mundo inteiroContribuições do mundo inteiro

● Kernel Linux foi combinado com o sistema GNUKernel Linux foi combinado com o sistema GNU

● 19931993: Proliferação de distribuições GNU/Linux: Proliferação de distribuições GNU/Linux● Softlanding Linux SystemSoftlanding Linux System● Debian LinuxDebian Linux● Red Hat Linux ...Red Hat Linux ...

Quem faz o Linux?Quem faz o Linux?

● Maior projeto mundial de desenvolvimento Maior projeto mundial de desenvolvimento colaborativo na história da computaçãocolaborativo na história da computação

● Desde 2005, 8.000 mil desenvolvedores de Desde 2005, 8.000 mil desenvolvedores de aproximadamente 800 empresas contribuíram aproximadamente 800 empresas contribuíram para o Linuxpara o Linux

● Red Hat, Intel, IBM, Novell, Nokia, Microsoft...Red Hat, Intel, IBM, Novell, Nokia, Microsoft...

● Contribuições que geraram mais de 15 milhões Contribuições que geraram mais de 15 milhões de linhas de códigode linhas de código

● Novo kernel Linux a cada 2 ou 3 mesesNovo kernel Linux a cada 2 ou 3 meses

Quem faz o Linux?Quem faz o Linux?

● 75% das contribuições para o código são de 75% das contribuições para o código são de desenvolvedores pagos por empresas para desenvolvedores pagos por empresas para fazer esse trabalhofazer esse trabalho

● Apenas 18% das contribuições para o código Apenas 18% das contribuições para o código não são financiadas por empresasnão são financiadas por empresas

fonte: Linux Kernel Developmentfonte: Linux Kernel Development

(http://go.linuxfoundation.org/who-writes-linux-2012)(http://go.linuxfoundation.org/who-writes-linux-2012)

Onde o Linux está presente?Onde o Linux está presente?

● 850 mil telefones com Android ativados por dia850 mil telefones com Android ativados por dia● 700 mil televisões vendidas por dia com Linux700 mil televisões vendidas por dia com Linux● A cada 10 centros de finanças, 8 rodam LinuxA cada 10 centros de finanças, 8 rodam Linux● A cada 10 supercomputadores, 9 rodam LinuxA cada 10 supercomputadores, 9 rodam Linux● Google, Twitter, Facebook, Amazon usam LinuxGoogle, Twitter, Facebook, Amazon usam Linux

Fonte: The Linux FoundationFonte: The Linux Foundation

www.linuxfoundation.orgwww.linuxfoundation.org

E os desktops?E os desktops?

Também rodam Linux!Também rodam Linux!

E os desktops?E os desktops?

Características gerais GNU/LinuxCaracterísticas gerais GNU/Linux

● Sistema Operacional de propósito geralSistema Operacional de propósito geral● De servidores a desktops a telefones...De servidores a desktops a telefones...

● Prevalência de software livre e abertoPrevalência de software livre e aberto● Upgrades não traumáticos em termos de Upgrades não traumáticos em termos de

configuraçõesconfigurações● Novas versões em curtos períodos de tempoNovas versões em curtos períodos de tempo● Suporte a todas as línguas possíveisSuporte a todas as línguas possíveis

O melhor de tudoO melhor de tudo

● Sempre será livre para qualquer um, em Sempre será livre para qualquer um, em qualquer lugar:qualquer lugar:● USARUSAR● MODIFICARMODIFICAR● DISTRIBUIRDISTRIBUIR

* Decorrência do uso da Licença GNU GPL e similares* Decorrência do uso da Licença GNU GPL e similares

Filosofia da liberdadeFilosofia da liberdade

● Irradia efeitos para outros segmentosIrradia efeitos para outros segmentos● OpenDocument FormatOpenDocument Format

● Padrão internacional ISO e IECPadrão internacional ISO e IEC● Armanezamento de documentos indendepentemente do Armanezamento de documentos indendepentemente do

software utilizado - portabilidadesoftware utilizado - portabilidade● Qualquer desenvolvedor pode implementar o formato sem Qualquer desenvolvedor pode implementar o formato sem

pagar royaltiespagar royalties● Perpetua a liberdade da informação armazenadaPerpetua a liberdade da informação armazenada● Norma ABNT NBR ISO/IEC 26300:2008Norma ABNT NBR ISO/IEC 26300:2008

● Ogg ContainerOgg Container (formatos multimídia) (formatos multimídia)● Vorbis, Theora, Speex, FLACVorbis, Theora, Speex, FLAC

Filosofia da liberdadeFilosofia da liberdade

● Adoção de formatos abertos por GovernosAdoção de formatos abertos por Governos● BrasilBrasil

● Protocolo para adoção de Formatos Abertos - D.O.U. de Protocolo para adoção de Formatos Abertos - D.O.U. de 19/11/08, pág. 8819/11/08, pág. 88

● Arquitetura de interoperabilidade (e-PING)Arquitetura de interoperabilidade (e-PING)● Padrões Web (e-PWG)Padrões Web (e-PWG)● Software Livre no Governo Software Livre no Governo http://www.softwarelivre.gov.br/http://www.softwarelivre.gov.br/● Projeto de Lei 3.070/2008 (Câmara dos Deputados)Projeto de Lei 3.070/2008 (Câmara dos Deputados)

● Outros paísesOutros países● Alemanha, Bélgica, Dinamarca, França, Japão, Holanda, Alemanha, Bélgica, Dinamarca, França, Japão, Holanda,

Reino Unido, Suécia, Venezuela ...Reino Unido, Suécia, Venezuela ...

GNU/Linux: Um mundo de opçõesGNU/Linux: Um mundo de opções

● Partições (ext3, ext4, LVM, RAID ...)Partições (ext3, ext4, LVM, RAID ...)● Desktops (Gnome, KDE, XFCE ...)Desktops (Gnome, KDE, XFCE ...)● Releases (LiveCD, DVD, Network install ...)Releases (LiveCD, DVD, Network install ...)● Repositórios de Aplicativos (free, non-free ...)Repositórios de Aplicativos (free, non-free ...)● Aplicativos (Abiword, LibreOffice.org, Gimp ...)Aplicativos (Abiword, LibreOffice.org, Gimp ...)● Gerenciadores de janelas (metacity, fluxbox …)Gerenciadores de janelas (metacity, fluxbox …)● Arquiteturas (i386, x86_64, ppc ...)Arquiteturas (i386, x86_64, ppc ...)

GNU/Linux: QualidadesGNU/Linux: Qualidades

● Segurança (rapidez na correção de falhas, Segurança (rapidez na correção de falhas, repositórios próprios de software)repositórios próprios de software)

● Praticamente imune a vírusPraticamente imune a vírus● Estabilidade do S.O. (está entre as prioridades)Estabilidade do S.O. (está entre as prioridades)

● ““Drivers” (pronto para uso - maioria dos casos)Drivers” (pronto para uso - maioria dos casos)

● Rapidez (demanda poucos recursos de hardware)Rapidez (demanda poucos recursos de hardware)

● Sistemas de arquivos (Baixíssima fragmentação)Sistemas de arquivos (Baixíssima fragmentação)

● Registro e arquivos de configuraçãoRegistro e arquivos de configuração (texto puro)(texto puro)

● Gera aprendizadoGera aprendizado

Problemas contornáveisProblemas contornáveis● Necessidade de software específico sem Necessidade de software específico sem

versão para GNU/Linuxversão para GNU/Linux● ““Hardcore” gamerHardcore” gamer● Hardware não suportadoHardware não suportado● Sites mal feitos ou feitos exclusivamente para Sites mal feitos ou feitos exclusivamente para

o Internet Explorero Internet Explorer

Solução: Máquina Virtual ou “Boot Duplo”Solução: Máquina Virtual ou “Boot Duplo”

EVITE RADICALISMOS!EVITE RADICALISMOS!

Boot duplo, triplo, quádruplo ...Boot duplo, triplo, quádruplo ...

Máquina VirtualMáquina Virtual

Maior obstáculo!Maior obstáculo!

Porque ...Porque ...

Por onde começar?Por onde começar?

● ““Prontos” para funcionarProntos” para funcionar● Linux Mint (http://linuxmint.com)Linux Mint (http://linuxmint.com)● Ubuntu (http://www.ubuntu.com)Ubuntu (http://www.ubuntu.com)

maior funcionalidade “out of the box”maior funcionalidade “out of the box”

● Podem demandar maior aprendizadoPodem demandar maior aprendizado● Fedora (Fedora (http://fedoraproject.orghttp://fedoraproject.org))

● Política rígida quanto ao uso exclusivo de Política rígida quanto ao uso exclusivo de software livresoftware livre

● Debian (Debian (http://www.debian.orghttp://www.debian.org))● Etc...Etc...

Noções mínimasNoções mínimas

● Usuário 'root'Usuário 'root'● Árvore de pastas do sistema:Árvore de pastas do sistema:

● //

● bin/bin/● boot/boot/● dev/dev/● etc/etc/● home/home/● lib/lib/● mnt/mnt/● tmp/tmp/● var/var/

Instalar e Remover ProgramasInstalar e Remover Programas

● O que é um repositório?O que é um repositório?

● Evite instalar programas que não estejam nos Evite instalar programas que não estejam nos repositórios oficiais ou recomendadosrepositórios oficiais ou recomendados

● Sempre use algum gerenciador de pacotes!Sempre use algum gerenciador de pacotes!● yum, apt-get ou as interfaces gráficas respectivasyum, apt-get ou as interfaces gráficas respectivas

Instalar e Remover ProgramasInstalar e Remover Programas

Aprofundar o aprendizado!Aprofundar o aprendizado!

● Comandos no terminal (ls, cp, mv, tail, grep …)Comandos no terminal (ls, cp, mv, tail, grep …)● Essencial para adm. remota de servidoresEssencial para adm. remota de servidores

● Gerenciamento de pacotes (aplicativos)Gerenciamento de pacotes (aplicativos)● yum install nome-do-pacote (Fedora)yum install nome-do-pacote (Fedora)● apt-get install nome-do-pacote (Ubuntu)apt-get install nome-do-pacote (Ubuntu)● ......

● Shell script, linguagens de programaçãoShell script, linguagens de programação● Inglês, inglês, inglês e inglês!Inglês, inglês, inglês e inglês!

easyeasyLifeLife

● Configura o “sudo” para o usuário regularConfigura o “sudo” para o usuário regular● Ajusta opções do desktop (+ agradável)Ajusta opções do desktop (+ agradável)● Instala o plugin Flash PlayerInstala o plugin Flash Player● Instala codecsInstala codecs● Instala fontesInstala fontes● Instala plugin Java Instala plugin Java ● Instala drivers da nvidiaInstala drivers da nvidia● Outros ajustes ...Outros ajustes ...

http://easylifeproject.orghttp://easylifeproject.org

easyeasyLifeLifehttp://easylifeproject.orghttp://easylifeproject.org

Servidores LAMPServidores LAMP

● LLinuxinux● AApachepache● MMySQLySQL● PPHP / Perl / PythonHP / Perl / Python

Servidores LAMPServidores LAMP

● Compõem 2/3 dos servidores na internetCompõem 2/3 dos servidores na internet● Por quê?Por quê?

● Livre disposição (Software Livre)Livre disposição (Software Livre)● Fácil configuraçãoFácil configuração● EstabilidadeEstabilidade● Constante desenvolvimento e evoluçãoConstante desenvolvimento e evolução● Poupa o desenvolvedor de tarefas Poupa o desenvolvedor de tarefas

administrativasadministrativas

ApacheApache

● Servidor de protocolo HTTPServidor de protocolo HTTP● Hypertext Transfer ProtocolHypertext Transfer Protocol

● Sistema de Requisição/RespostaSistema de Requisição/Resposta● Métodos: GET, POST, HEAD, …Métodos: GET, POST, HEAD, …● Servidor responde com recursos tais como Servidor responde com recursos tais como

arquivos HTMLarquivos HTML

● Altamente configurável (texto puro)Altamente configurável (texto puro)● Altamente modularAltamente modular● Virtual Hosts (diversos websites em um mesmo Virtual Hosts (diversos websites em um mesmo

servidor)servidor)

ApacheApache

● Alternativas para o ApacheAlternativas para o Apache● LighttpdLighttpd● NginxNginx● HiawathaHiawatha● CherokeeCherokee

Exemplo Request/Response HTTPExemplo Request/Response HTTPNavegador → http://www.somehost.com/path/file.html

Resposta:

HTTP/1.0 200 OKDate: Fri, 31 Dec 1999 23:59:59 GMTContent-Type: text/htmlContent-Length: 1354

<html><body><h1>Happy New Year!</h1>(more file contents) . . .</body></html>

Requisição:

GET /path/file.html HTTP/1.0From: someuser@jmarshall.comUser-Agent: HTTPTool/1.0[blank line here]

MySQLMySQL● Sistema de gerenciamento de banco de dados Sistema de gerenciamento de banco de dados

relacional (RDBMS)relacional (RDBMS)● Tabelas → colunas/linhasTabelas → colunas/linhas● Operações relacionais entre tabelas, por meio Operações relacionais entre tabelas, por meio

de campos comunsde campos comuns

● Utiliza SQL para manipulação dos dadosUtiliza SQL para manipulação dos dados● Structured Query LanguageStructured Query Language

● Mistura de inglês + matemáticaMistura de inglês + matemática

● Fácil de usarFácil de usar● Questões sobre performance e confiabilidadeQuestões sobre performance e confiabilidade

MySQLMySQL

Exemplo de consulta SQLExemplo de consulta SQL

Tabela 'usuarios' → Tabela 'usuarios' →

id nome cidade

1 Silvio Salto

2 Alex Curitiba

3 Marcos Salto

mysql> SELECT * FROM usuarios WHERE cidade = 'Salto';

+­­­­+­­­­­­­­+­­­­­­­­+| id | nome   | cidade |+­­­­+­­­­­­­­+­­­­­­­­+| 1  | Silvio | Salto  |+­­­­+­­­­­­­­+­­­­­­­­+| 3  | Marcos | Salto  |+­­­­+­­­­­­­­+­­­­­­­­+2 rows in set (0.00 sec)

MySQLMySQL● Alternativas para MySQLAlternativas para MySQL

● PostgreSQLPostgreSQL● SQLiteSQLite● Firebird/InterbaseFirebird/Interbase● Mongo (NoSQL)Mongo (NoSQL)

PHPPHP● PHP: Hypertext Pre-processor PHP: Hypertext Pre-processor

● Antes: “Personal Home Page”Antes: “Personal Home Page”

● Linguagem de script mais popular na internetLinguagem de script mais popular na internet● Suporte comunitário abundanteSuporte comunitário abundante● Fácil sintaxe (mas não a mais elegante)Fácil sintaxe (mas não a mais elegante)● Especialmente feita para desenvolvimento webEspecialmente feita para desenvolvimento web● Fácil interação com bancos de dadosFácil interação com bancos de dados

● MySQL, PostgreSQL, SQLite, Mongo, ...MySQL, PostgreSQL, SQLite, Mongo, ...

PHPPHP

Como funciona?Como funciona?

O código php é interpretado por um servidor O código php é interpretado por um servidor http (Apache) através de um módulo de http (Apache) através de um módulo de processamento (mod_php5.so) que gera a processamento (mod_php5.so) que gera a página html resultante na hora (“on the fly”)página html resultante na hora (“on the fly”)

PHPPHP<?php

for ($i = 1; $i < 5) {echo “<p>O número é “ . $i . “<p/>”;$i = $i + 1;

}?>

<?php

echo “<p>O número é 1 <p/>”;echo “<p>O número é 2 <p/>”;echo “<p>O número é 3 <p/>”;echo “<p>O número é 4 <p/>”;

?>

É igual a...

PHPPHP

<p>O número é 1 <p/><p>O número é 2 <p/><p>O número é 3 <p/><p>O número é 4 <p/>

(saída em HTML)

Que é igual a...

No navegador:

O número é 1O número é 2O número é 3O número é 4

Dúvidas?Dúvidas?

ContatoContato

duli@easylifeproject.orgduli@easylifeproject.org

twitter.com/dulinuxtwitter.com/dulinux

Estes slides:Estes slides: http://easylifeproject.org/slides/intro-linux.pdf http://easylifeproject.org/slides/intro-linux.pdf

top related