O documento fornece uma introdução abrangente ao Linux, cobrindo tópicos como:
1) O que é Linux e como ele se relaciona com sistemas operacionais;
2) As principais distribuições Linux;
3) Formatos abertos de documentos eletrônicos;
4) Servidores LAMP (Linux, Apache, MySQL, PHP).
3. Pauta
● Linux
● Distribuições GNU/Linux
● Formatos abertos de documentos eletrônicos
● Servidores LAMP
4. 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.
5. O que é Linux?
Sistema Operacional
Linux!!!
Kernel: gerencia os recursos do computador e permite que outros programas usem
esses recursos.
6. 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”
7. O começo
● 1984: Projeto GNU (Gnu's Not Unix)
● Objetivo: criar S.O. livre similar ao Unix (GNU)
● Definição de Software Livre
● Liberdade para executar, copiar, distribuir e
modificar o software
● GNU General Public License (GPL)
● Perpetuação da liberdade do software
● Kernel GNU (“GNU Hurd”) – sem versão estável
● 1991: Linus Torvalds inicia o Kernel Linux
8. 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 ...
9. 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
10. 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)
11. 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
14. 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
15. 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
16. 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
17. 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 ...
19. 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
20. 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!
25. 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...
27. 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
33. 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
34. 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)
35. Apache
● Alternativas para o Apache
● Lighttpd
● Nginx
● Hiawatha
● Cherokee
36. Exemplo Request/Response HTTP
Navegador → http://www.somehost.com/path/file.html
Resposta:
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59
Requisição:
GMT
Content-Type: text/html
GET /path/file.html HTTP/1.0
Content-Length: 1354
From: someuser@jmarshall.com
User-Agent: HTTPTool/1.0
<html>
[blank line here]
<body>
<h1>Happy New Year!</h1>
(more file contents)
.
.
.
</body>
</html>
37. 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
38. MySQL
Exemplo de consulta SQL
id nome cidade
1 Silvio Salto
Tabela 'usuarios' →
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)
39. MySQL
● Alternativas para MySQL
● PostgreSQL
● SQLite
● Firebird/Interbase
● Mongo (NoSQL)
40. 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, ...
41. 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”)
42.
43. PHP
<?php
for ($i = 1; $i < 5) {
echo “<p>O número é “ . $i . “<p/>”;
$i = $i + 1;
}
?>
É igual a...
<?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/>”;
?>
44. PHP
Que é igual a...
<p>O número é 1 <p/>
<p>O número é 2 <p/>
<p>O número é 3 <p/>
<p>O número é 4 <p/> No navegador:
(saída em HTML)
O número é 1
O número é 2
O número é 3
O número é 4