Introdução ao Linux Luís Felipe Bretas Marzagão duli@easylifeproject.org
Pauta Linux Distribuições GNU/Linux Formatos abertos de documentos eletrônicos Servidores LAMP
O que é Linux? É o núcleo (kernel) de sistemas operacionais. Então Linux não é um sistema operacional? NÃO! É uma parte de um sistema operacional.
Sistema Operacional O que é Linux? Linux!!! Kernel: gerencia os recursos do computador e permite que outros programas usem esses recursos.
O que é Linux? Exemplos de SOs que usam o kernel Linux: Debian Ubuntu Fedora OpenSUSE CentOS (e muitos, muitos outros) São chamados de também de distribuições
O começo 1984: Projeto GNU (Gnu's Not Unix) Objetivo: criar S.O. livre similar ao Unix (GNU) Definição de Software Livre GNU General Public License (GPL) Liberdade para executar, copiar, distribuir e modificar o software Perpetuação da liberdade do software Kernel GNU ( GNU Hurd ) sem versão estável 1991: Linus Torvalds inicia o Kernel Linux
O começo 1992: Linux é distribuído sob a GPL Desenvolvimento colaborativo do código Contribuições do mundo inteiro Kernel Linux foi combinado com o sistema GNU 1993: Proliferação de distribuições GNU/Linux Softlanding Linux System Debian Linux Red Hat Linux...
Quem faz o Linux? Maior projeto mundial de desenvolvimento colaborativo na história da computação Desde 2005, 8.000 mil desenvolvedores de aproximadamente 800 empresas contribuíram para o Linux Red Hat, Intel, IBM, Novell, Nokia, Microsoft... Contribuições que geraram mais de 15 milhões de linhas de código Novo kernel Linux a cada 2 ou 3 meses
Quem faz o Linux? 75% das contribuições para o código são de desenvolvedores pagos por empresas para fazer esse trabalho Apenas 18% das contribuições para o código não são financiadas por empresas fonte: Linux Kernel Development (http://go.linuxfoundation.org/who-writes-linux-2012)
Onde o Linux está presente? 850 mil telefones com Android ativados por dia 700 mil televisões vendidas por dia com Linux A cada 10 centros de finanças, 8 rodam Linux A cada 10 supercomputadores, 9 rodam Linux Google, Twitter, Facebook, Amazon usam Linux Fonte: The Linux Foundation www.linuxfoundation.org
E os desktops? Também rodam Linux!
E os desktops?
Características gerais GNU/Linux Sistema Operacional de propósito geral De servidores a desktops a telefones... Prevalência de software livre e aberto Upgrades não traumáticos em termos de configurações Novas versões em curtos períodos de tempo Suporte a todas as línguas possíveis
O melhor de tudo Sempre será livre para qualquer um, em qualquer lugar: USAR MODIFICAR DISTRIBUIR * Decorrência do uso da Licença GNU GPL e similares
Filosofia da liberdade Irradia efeitos para outros segmentos OpenDocument Format Padrão internacional ISO e IEC Armanezamento de documentos indendepentemente do software utilizado - portabilidade Qualquer desenvolvedor pode implementar o formato sem pagar royalties Perpetua a liberdade da informação armazenada Norma ABNT NBR ISO/IEC 26300:2008 Ogg Container (formatos multimídia) Vorbis, Theora, Speex, FLAC
Filosofia da liberdade Adoção de formatos abertos por Governos Brasil Protocolo para adoção de Formatos Abertos - D.O.U. de 19/11/08, pág. 88 Arquitetura de interoperabilidade (e-ping) Padrões Web (e-pwg) Software Livre no Governo http://www.softwarelivre.gov.br/ Projeto de Lei 3.070/2008 (Câmara dos Deputados) Outros países Alemanha, Bélgica, Dinamarca, França, Japão, Holanda, Reino Unido, Suécia, Venezuela...
GNU/Linux: Um mundo de opções Partições (ext3, ext4, LVM, RAID...) Desktops (Gnome, KDE, XFCE...) Releases (LiveCD, DVD, Network install...) Repositórios de Aplicativos (free, non-free...) Aplicativos (Abiword, LibreOffice.org, Gimp...) Gerenciadores de janelas (metacity, fluxbox ) Arquiteturas (i386, x86_64, ppc...)
GNU/Linux: Qualidades Segurança (rapidez na correção de falhas, repositórios próprios de software) Praticamente imune a vírus Estabilidade do S.O. (está entre as prioridades) Drivers (pronto para uso - maioria dos casos) Rapidez (demanda poucos recursos de hardware) Sistemas de arquivos (Baixíssima fragmentação) Registro e arquivos de configuração (texto puro) Gera aprendizado
Problemas contornáveis Necessidade de software específico sem versão para GNU/Linux Hardcore gamer Hardware não suportado Sites mal feitos ou feitos exclusivamente para o Internet Explorer Solução: Máquina Virtual ou Boot Duplo EVITE RADICALISMOS!
Boot duplo, triplo, quádruplo...
Máquina Virtual
Maior obstáculo!
Porque...
Por onde começar? Prontos para funcionar Linux Mint (http://linuxmint.com) Ubuntu (http://www.ubuntu.com) maior funcionalidade out of the box Podem demandar maior aprendizado Fedora (http://fedoraproject.org) Política rígida quanto ao uso exclusivo de software livre Debian (http://www.debian.org) Etc...
Noções mínimas Usuário 'root' Árvore de pastas do sistema: / bin/ boot/ dev/ etc/ home/ lib/ mnt/ tmp/ var/
Instalar e Remover Programas O que é um repositório? Evite instalar programas que não estejam nos repositórios oficiais ou recomendados Sempre use algum gerenciador de pacotes! yum, apt-get ou as interfaces gráficas respectivas
Instalar e Remover Programas
Aprofundar o aprendizado! Comandos no terminal (ls, cp, mv, tail, grep ) Essencial para adm. remota de servidores Gerenciamento de pacotes (aplicativos) yum install nome-do-pacote (Fedora) apt-get install nome-do-pacote (Ubuntu)... Shell script, linguagens de programação Inglês, inglês, inglês e inglês!
easylife http://easylifeproject.org Configura o sudo para o usuário regular Ajusta opções do desktop (+ agradável) Instala o plugin Flash Player Instala codecs Instala fontes Instala plugin Java Instala drivers da nvidia Outros ajustes...
easylife http://easylifeproject.org
Servidores LAMP Linux Apache MySQL PHP / Perl / Python
Servidores LAMP Compõem 2/3 dos servidores na internet Por quê? Livre disposição (Software Livre) Fácil configuração Estabilidade Constante desenvolvimento e evolução Poupa o desenvolvedor de tarefas administrativas
Apache Servidor de protocolo HTTP Hypertext Transfer Protocol Sistema de Requisição/Resposta Métodos: GET, POST, HEAD, Servidor responde com recursos tais como arquivos HTML Altamente configurável (texto puro) Altamente modular Virtual Hosts (diversos websites em um mesmo servidor)
Apache Alternativas para o Apache Lighttpd Nginx Hiawatha Cherokee
Exemplo Request/Response HTTP Navegador http://www.somehost.com/path/file.html Resposta: Requisição: GET /path/file.html HTTP/1.0 From: someuser@jmarshall.com User-Agent: HTTPTool/1.0 [blank line here] HTTP/1.0 200 OK Date: Fri, 31 Dec 1999 23:59:59 GMT Content-Type: text/html Content-Length: 1354 <html> <body> <h1>happy New Year!</h1> (more file contents)... </body> </html>
MySQL Sistema de gerenciamento de banco de dados relacional (RDBMS) Tabelas colunas/linhas Operações relacionais entre tabelas, por meio de campos comuns Utiliza SQL para manipulação dos dados Structured Query Language Mistura de inglês + matemática Fácil de usar Questões sobre performance e confiabilidade
MySQL Exemplo de consulta SQL 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)
MySQL Alternativas para MySQL PostgreSQL SQLite Firebird/Interbase Mongo (NoSQL)
PHP PHP: Hypertext Pre-processor Antes: Personal Home Page Linguagem de script mais popular na internet Suporte comunitário abundante Fácil sintaxe (mas não a mais elegante) Especialmente feita para desenvolvimento web Fácil interação com bancos de dados MySQL, PostgreSQL, SQLite, Mongo,...
PHP Como funciona? O código php é interpretado por um servidor http (Apache) através de um módulo de processamento (mod_php5.so) que gera a página html resultante na hora ( on the fly )
PHP <?php for ($i = 1; $i < 5) { echo <p>o número é. $i. <p/> ; $i = $i + 1; }?> É igual a... <?php echo echo echo echo?> <p>o <p>o <p>o <p>o número número número número é é é é 1 2 3 4 <p/> ; <p/> ; <p/> ; <p/> ;
PHP Que é igual a... <p>o <p>o <p>o <p>o número número número número é é é é 1 2 3 4 <p/> <p/> <p/> <p/> No navegador: (saída em HTML) O O O O número número número número é é é é 1 2 3 4
Dúvidas?
Contato duli@easylifeproject.org twitter.com/dulinux Estes slides: http://easylifeproject.org/slides/intro-linux.pdf