semana da computacao - linux day
DESCRIPTION
Short introduction of GNU/Linux world, a quick view of Shell commands and some images from various distributions and graphical environments.TRANSCRIPT
Semana da ComputaçãoMini-curso Linux
Universidade Federal da ParaíbaCentro de InformáticaPrograma de Educação TutorialCiência da Computação
Fábio Cruz B. de AlbuquerqueJosé Ivan Bezerra V. Filho
Sumário
• Introdução• Distribuições• Características• O que é possível fazer• Ambientes gráficos• Virtualização• Terminal• Gerenciador de pacotes• Módulos e drivers• Como e onde obter
Introdução - Sistemas Operacionais
• O que é um S.O.?
• Qual sua importância?
• Exemplos: Unix, Windows, Mac OS, GNU/Linux...
Introdução - Kernel
• Núcleo do Sistemao Base para todas as distribuiçõeso Serve de ponte entre os programas e o hardware
Introdução - Software Livre
História do Software Livre• 1984
o Richard Stallman, Projeto GNUo Licença GPL, FSF (Free Software Foundation)
• 1991o Linus Torvalds, primeira versão do Kernel Linuxo Centenas de desenvolvedores em todo mundo juntam-se para integrar o
sistema GNU ao kernel Linuxo GNU/Linux sobre a licença GPL
• 1997o Termo Open Source (artigo "A Catedral e o bazar" por Eric Raymond)
Introdução - Software Livre
O que é o Software Livre• Software com uma licença livre
o GNU GPL, Licença Apache, Licença MIT, Licença BSD o Cada uma contém suas particularidades
• Copylefto Em oposição ao copyrighto Autor cede alguns direitoso Um software sob copyleft permenece sob copyleft
• Domínio Públicoo Similar às obras de literatura sob domínio público
Distribuições
"Sabores" Linux• Linux + conjuntos de ferramentas para um determinado propósito• Centenas delas criadas por companhias e comunidades em todo o
mundoo Canonicalo Red Hato Projeto Fedorao Projeto Debiano Mandriva
• http://goo.gl/640aW - lista de distribuições• Você pode fazer sua própria distro
Distribuições
• Ubuntuo "Linux for human beings"o Debian-basedo Propósito geral, usuários de todos os tiposo Contém inúmeras ferramentaso Live-CD o Indicado para inicianteso Sistema de pacotes DEB (apt/aptitude)
Ubuntu 11.10 com Unity
Distribuições
• Fedorao Criado pela Red Hat, mantido pelo Fedora Projecto Rápido e estávelo Usuários iniciantes a intermediárioso Live-CDo Sistemas de pacotes RPM (Yum)
Fedora 16
Características - Sistema de arquivos
• O que é um sistema de arquivos?o Forma de organizar os dados em um meio de armazenamento (HD, pendrive,
etc.)o Grande importânciao Cada um tem suas vantagens e desvantagenso Exemplos
ext3, ext4, swap (Unix) ntfs e fat32 (Windows) hfs (Mac OS) nfs (network)
Características - Sistema de arquivos
• Hierárquico (como uma árvore genealógica)• Base: diretório raiz (root) representado por /• Demais diretórios:
o /bin - utilitários principais do Unix/Linuxo /etc - programas e arquivos administrativoso /lib - bibliotecas de funções, programas e dadoso /tmp - arquivos temporárioso /home - diretório dos usuários
/home/fabio - contém os diretórios do usuário "fabio"o /usr/bin - utilitárioso ...o /dev - arquivos especiais de dispositivos (hd, usb, cdrom, etc.)
Características - Sistema de arquivos
• Não há conceito de extensão• A extensão faz parte do nome do arquivo e é indiferente para o
sistema• "exemplo.txt" é um arquivo de texto, mas podemos salvá-lo como
"exemplo" sem alterar nada• Comando file• Comum nomearmos arquivos com "múltiplas extensões"
o compactado.tar.gz
Características
• Runlevel• Multiusuários• Multitarefas• Sistema de permissão nativo• Kernel modular• Altamente robusto• Código fonte aberto• Uma vasta comunidade de usuários• Alta compatibilidade de hardware
Características - Permissões
• chmodo change modeo define quem pode fazer o quêo escrita, leitura e execução para proprietário, grupo de usuários e outroso números octal (de 0 a 7) e representação binária (0 ou 1 - falso ou
verdadeiro) read - 0 ou 1 write - 0 ou 1 execution - 0 ou 1 valores de 0 a 7
o exemplo chmod 755 nome_do_arquivo
Características - Permissões
• chowno change ownero define quem é o proprietário de um arquivo ou diretórioo exemplo
chown novo_proprietario nome_do_arquivo• chgrp
o change groupo define a qual grupo o arquivo ou diretório está associadoo exemplo
chgrp novo_grupo nome_do_arquivo1 nome_do_arquivo2 ...• Todos três comandos acima podem ser usados para arquivos e/ou
diretórios (recursividade)
O que é possível fazer
• Programas comuns de uso diárioo Mensageiro: amsn, pidgino Navegador: firefox, chromeo Suíte de Escritório: LibreOffice, BrOfficeo Editor gráfico: gimpo Player multimídia: vlc
Pidgin
Gimp
LibreOffice
Ambientes Gráficos
• X.orgo Sistema de janelas adotado na maioria das distribuições Linuxo Open Source
• Ambientes gráficoso Gerenciador de janelaso Controla como as "coisas" se comportam na interface gráfica o Ele permite a criação de um ambiente desktop
• Gnome• KDE• Unity• Xfce• Compiz
Ambientes Gráficos - Gnome
Ambientes Gráficos - Gnome
Ambientes Gráficos - KDE
Ambientes Gráficos - KDE
Ambientes Gráficos - Unity
Ambientes Gráficos - Unity
Ambientes Gráficos - Xfce
Ambientes Gráficos - Xfce
Ambientes Gráficos - Compiz
Ambientes Gráficos - Compiz
Virtualização
• É possível usar outros sistemas e programas• Técnica de virtualização
o Emular um computador e instalar outros S.O. (como Windows XP, Windows 7, Mac OS...)
• VirtualBox• VMware• XEN
• Também é possível "traduzir" aplicações para executá-las no seu sistemao Wineo Programas...o Jogos (Counter-Strike, Half-Life, Fallout, AoE, etc.)
Terminal
Shell > Programas e comandos > Kernel > Hardware
• Shell leva este nome porque em inglês, Shell significa concha, carapaça
• Fica entre o usuário e o sistema operacional, de forma que tudo que interage com o sistema operacional, tem que passar pelo crivo do Shell
• Para chegar ao núcleo do Linux, no seu kernel, que é o que nos interessa, é necessária a filtragem do Shell
• sh (Bourne Shell), o ksh (Korn Shell), bash (Bourne Again Shell) e o csh (C Shell).
Terminal
• Shell é um interpretador de comandos! com uma linguagem e comandos de alto nível
• É possível programar em Shell (laços, variáveis, tomadas de decisão, etc.)
• O Shell faz (nessa ordem):o Exame da Linha de Comandoso Resolução de Redirecionamentoso Substituição de Variáveiso Substituição de Meta Caractereso Passa Linha de Comando para o kernel
Terminal
• "." , ".." , "~", "-", "/", "*", "?"• Comandos básicos
o man, apropos e whatiso pwdo cdo lso cpo mvo lno mkdiro rmdiro rmo basenameo dirname
Terminal
• Comandos básicoso cato wco head, tail, more, lesso findo locateo grepo sorto mounto umounto tar, zip, unzip
Terminal
• Outros comandos o ctrl + zo ctrl + co fgo bgo topo pso jobs
Terminal
• Comandos de redeo ifconfigo routeo ipv6o ipo dhcpdo dhcliento iwconfigo iwlisto ftpo ssho scp
Gerenciador de pacotes
• O que são pacotes?• Gerenciador de pacotes• Por distribuição e para todos os gostos• Debian e Ubuntu
o apt (/etc/sources.list)o aptitude (gráfico e comando)o synaptic
• Red Hat e Fedorao rpmo yum (/etc/yum.conf)o dpkg
• Comparativo com Windows
Módulos e drivers
• O desenvolvimento de uma nova funcionalidade para o kernel do Linux pode ser implementada diretamente no Kernel ou compilada como um módulo.
• De modo geral, a escolha tende a ser a compilação como módulo. Isso se traduz no carregamento dinâmico do código apenas quando esta funcionalidade for necessária. Além disso, torna o kernel mais enxuto, leve e, portanto, mais eficiente.
• Diversos componentes do kernel do Linux são implementados como módulos, por exemplo,
• filesystems, device drivers, e novas camadas de protocolos de comunicação.
Módulos e drivers
• Além dos drivers open-source incluídos no Kernel, existe um conjunto de drivers proprietários ou semi-proprietários, na maioria dos casos desenvolvidos pelos próprios fabricantes.
• Muitos fabricantes receiam que abrir as especificações de seus dispositivos torna mais fácil para os concorrentes fazerem engenharia reversa e descobrir os segredos.
• Muitos destes drivers precisam também do firmware do dispositivo para funcionar, responsável pela comunicação entre driver e hardware (um dos componentes do driver que vem incluído nos CDS para Windows).
• Por não serem código aberto, estes drivers não são incluídos diretamente no Kernel e normalmente também não são incluídos nas distribuições, deixando para o usuário o trabalho de baixar e instalá-los manualmente.
Como e onde obter
• Mídias (Live-CDs, Live-DVDs), Pendrive...
• Onde?o Interneto Amigoso Universidadeo Encomendar da própria distribuiçãoo etc.
Seja livre!
Obrigado.
Perguntas?
Referências
http://aurelio.net/shell/
Programação Shell Linux - Julio Cesar Neves http://jneves.wordpress.com/
Gnome http://gnome.org
KDE http://kde.org
Unity http://unity-linux.org
Xfce http://xfce.org
Compiz http://compiz.org
Instalando drivers adicionais http://www.hardware.com.br/livros/ferramentas-linux/capitulo-instalando-drivers-adicionais.html
Módulos Linux http://www.sounerd.com.br/index.php/about-joomla.html
Como explicar um Kernel http://www.vivaolinux.com.br/artigo/Como-explicar-o-que-e-kernel-para-um-leigo/
Open Source http://en.wikipedia.org/wiki/Open_source
Imagens http://unity-linux.org/ http://www.kde.org/ http://www.gnome.org/ http://www.xfce.org/ http://jneves.wordpress.com http://img403.imageshack.us/img403/8182/snapshot1ab8 http://img406.imageshack.us/img406/5780/screenshot10pa2 http://img442.imageshack.us/img442/7770/snapshot3vy4 http://img442.imageshack.us/img442/8822/mc5qi2 http://linuxlibrary.org/wp-content/uploads/2011/04/compiz-3 http://nixos.org/nixos/screenshots/nixos-compiz-cube