Você está na página 1de 29

Introduo ao Software Livre

De onde vem o conceito de Software Livre?


Diante de nossa actual situao tecnolgica seria impossvel falarmos de GNU/Linux sem antes
entendermos o que software livre ou de onde surgiu essa filosofia.
Durante muito tempo a tecnologia vem se desenvolvendo e tornando-se cada vez mais necessria
para os dias actuais. Para tal evoluo, pessoas do mundo inteiro, chamadas programadores,
contriburam de forma significativa criando programas ou
softwares para customizar o
funcionamento dos computadores. Em boa parte desta evoluo, ao precisar de algo que outro j

criou, o programador receberia prontamente deste outro para assim poder fazer suas devidas
mudanas ou mesmo aperfeioamentos poupando-lhe esforo e tempo. O autor original como
agradecimento recebia seu programa melhorado. Porque refazer o que j foi feito antes?
Desta forma se dava a troca de informaes e conhecimento entre a comunidade como um todo at
que uma outra ideia surgiu: Fechar o
cdigo-fonte
e ganhar dinheiro em cima disso.
Foi nesta poca que o conhecimento passou a deixar de ser livre passando a ter um dono e uma
patente em cima do mesmo. Sendo vendido em caixas com a permisso para instalao em apenas
uma mquina limitando-se ao uso tcnico sem poder estudar aquela tecnologia a fundo ou repassar
para outros interessados. A mostrava-se o limite da tecnologia como uma linha que no se podia
ultrapassar, j que voc no mais poderia aperfeioar um
software adaptando-o s suas
necessidades por no mais ter acesso ao cdigo-fonte do mesmo. O conhecimento passou a ser
ento manipulado e controlado criando uma enorme dependncia tecnolgica.
Em meados de 1983-1984, o programador americano Richard Stallman percebeu que o senso de
unio e integrao estava perdendo espao para um senso de egosmo e monoplio passando assim
a iniciar um movimento activista criando assim o Projecto GNU em 1985 defendendo a ideia do
software livre. Por que refazer todo um programa quando voc tinha programas parecidos com o
que voc queria desenvolver? Por que no ajudar em um programa que voc achava que estava
rodando lento e que possivelmente saberia como deix-lo mais rpido contribuindo assim para o
seu cdigo-fonte? Essas perguntas no faziam sentido para o Richard, e por essas e outras ele
comeou este projecto, que de to bvio que era, rapidamente caiu na simpatia de toda a
comunidade. A partir da milhares de pessoas espalhadas pelo mundo inteiro uniram-se a ele nessa
luta de forma a mostrar a todos que o compartilhamento da informao fundamental para o
desenvolvimento assim como a unio e a solidariedade. Para tal filosofia foram criadas algumas
regras que na verdade so liberdades.
No poderia ser diferente tratando-se de
software
LIVRE
. So as 4 liberdades do
software livre
listadas abaixo:

Liberdade de executar o programa, da forma como quiser.

Liberdade de estudar o funcionamento do programa podendo inclusive modific-lo de


acordo com sua necessidade.
Liberdade de redistribuir cpias do programa livremente.
Liberdade de melhorar o programa e tornar estas melhorias pblicas de forma a beneficiar o
prximo.
O projecto GNU no somente desenvolvimento e distribuio de alguns
softwares livres teis. O
corao do projecto GNU uma ideia: que
software deve ser livre, e que a liberdade do usurio vale a

pena ser defendida. Se as pessoas tm liberdade mas no a apreciam conscientemente, no iro


mant-la por muito tempo. Se queremos que a liberdade dure, precisamos chamar a ateno das
pessoas para a liberdade que elas tm em programas livres.
Com o passar dos anos, e baseado nessa filosofia do
software livre, surgiu ento o sistema operativo
que hoje chamamos de GNU/ Linux.

O que o sistema GNU/Linux ?


Em 1989 um estudante finlands chamado Linus Torvalds inicia um processo pessoal de
aprimoramento do Kernel do
Minix,um sistema operativo do tipo Unix escrito por Andrew
Tannenbaum
, chamando esta vertente de Linux como abreviao de L
inuss Minix
.

O que parecia um projecto acadmico foi tomando novos ares e Linus passou a perceber as
possibilidades que aquilo poderia trazer assim como suas possveis propores, ento depois de um
certo tempo de trabalho, Linus lana a seguinte mensagem na internet:
"Voc sente saudade dos bons dias do Minix-1.1, quando homens eram homens e escreviam seus
prprios device drivers? Voc est sem um bom projecto e morrendo de vontade de colocar as mos
em um sistema operativo o qual possa modificar de acordo com suas necessidades? Voc acha
frustrante quando tudo funciona bem no Minix? Sem mais noites em claro para fazer com que um
programa funcione? Ento esta mensagem pode ser exatamente para voc. :-)
Como eu mencionei h um ms, estou a trabalhar numa verso livre dum sistema operativo similar
ao Minix para computadores AT-386. Ele finalmente alcanou o estgio onde pode ser utilizado (ou
no, dependendo do que voc deseja), e eu estou disposto a colocar as fontes disponveis para
ampla distribuio. Ele est apenas na verso 0.02, mas eu tenho executado nele, sem problemas,
programas como bash, gcc, gnu-make, gnu-sed, compress, etc."
Esta mensagem chama a ateno de muitas pessoas, entre elas programadores, analistas ou at
mesmo entusiastas do movimento de software livre ou GNU. Logo essas pessoas passaram a entrar
em contato com Linus e ento um grande
time de desenvolvimento formou-se em cima do que hoje
chamamos de GNU/Linux.

Com pessoas espalhadas pelo mundo inteiro trabalhando em cima do mesmo objectivo, no fica
difcil imaginar porque o GNU/Linux passou a ser to estvel, seguro e maduro como sistema
operativo.

Finalmente em 1991 Linus lana a primeira verso oficial do Linux, juntando-se mais tarde, em
1992, ao projecto GNU de Richard Stallman com o objectivo de produzir o sistema operativo
completo como o conhecemos hoje.

Por que usar a plataforma Livre?


Imaginemos o seguinte padro:
Softwares
so programados atravs de uma linguagem.
O que linguagem? um conjunto de cdigos que funciona como meio de comunicao, seja ele
entre humano-humano ou humano-mquina, por exemplo. Ento imaginemos que a lngua
portuguesa como um
software
, e precisamos dela para nos comunicar com outras pessoas,
correcto? Agora imagine voc se os cdigos da lngua portuguesa fossem patenteados por algum
ou mesmo fechados. Alm de voc no ter livre acesso aos vrios cdigos que formam a lngua
portuguesa voc ainda teria de pagar para quem a patenteou. Sim, voc teria que pagar para falar!
O que isto tudo importa para a informtica? Bom, infelizmente a maioria dos
softwares ou

programas de computador vem enfrentando esta mesma situao no Brasil, pois atravs do
software que eu consigo me comunicar com meu computador, e a maioria das pessoas ainda tem de
pagar para falar com seu computador. O mais absurdo que o pagamento recolhido sequer fica no
Brasil, pois entregue para uma empresa no exterior que monopoliza o mercado. O Brasil paga
cerca de 1 bilho reais por ano em troca desses
softwares
.
Num sistema fechado, tambm no conseguimos desenvolver nossa prpria autonomia
tecnolgica, pois no temos como estudar o seu cdigo e no temos segurana de acesso e envio de
informaes em nossas prprias mquinas. Quem garante que naquele
software fechado instalado
em minha mquina no h junto um programa espio vasculhando minhas contas e arquivos
pessoais?
No
software livre voc no tem obrigatoriedade de pagar nada a ningum, desenvolvido por

milhares de programadores ao redor do mundo, voluntrios ou no, que compartilham seus


cdigos com o mundo, no
software livre voc usa produtos testados por milhares de pessoas que
entendem do assunto e que procuraram de todas as formas possveis, brechas, falhas,
bugs e voc

mesmo pode ajudar nisso, voc, como utilizador, parte importante da comunidade do
software

livre, sugerindo, reportando alguma falha, opinando, discutindo, ensinando e aprendendo, ou seja,
o
software
livre vai alm do uso da ferramenta, ele vai a democratizao do conhecimento.
Principais vantagens da utilizao de
software
livre:
Segurana (praticamente isento de vrus, voc
sabe
o que est instalando em sua mquina,

pois seu cdigo aberto)

Economia (voc pode baixar ele sem custo da internet, tanto o


software quanto a sua

documentao de uso)

Alternativa pirataria (voc no corre riscos ao ser surpreendido por fiscais cobrando por
licenas)

Engajamento (voc estar utilizando uma soluo mais vivel para um pas em
desenvolvimento como o Brasil)
Autonomia (voc tem liberdade para fazer o que quiser com este software desde que siga as 4
liberdades bsicas a ele atribudas)
livre.

As 4 liberdades foram citadas mais acima no tpico De onde vem o conceito de


software

SOFTWARE
LIVRE!
Socialmente Justo Economicamente Vivel Tecnologicamente Sustentvel.

Quem faz o
software
livre?
A resposta para essa pergunta bem simples; Voc! Contribuindo com cdigo-fonte, engajando em
projectos de
softwares existentes, reportando
bugs de programas, repassando o conhecimento
adquirido, ajudando outras pessoas por meios diversos,
chat,eventos ou mesmo uma conversa na

rua difundindo a cultura do


software livre, voc tambm pode engajar numa comunidade ou
diretamente num PSL (Projecto
Software Livre) que tem como fundamente principal integrar as
comunidades de
software livre, usurios, empresas que apoiam a iniciativa, e pessoas interessadas,
unindo essas pessoas para fazer aes coletivas.

Busque informaes atravs da rede e comece a participar de comunidades, grupos de usurios,


coletivos, listas de discusso etc. e passe a interagir com quem voc tem mais afinidade.

Distribuies Linux
Por se tratar de um sistema operativo livre e de cdigo aberto no demorou para que milhares de
pessoas comeassem a fazer modificaes no Linux de forma a customizar ou adequ-lo s suas
necessidades pessoais. Cada vez que algum altera o Linux com personalizaes e particularidades,
esta alterao chamada de Distribuio Linux, e como tal cada pessoa que o fizer pode dar um
nome para sua distribuio e public-la na rede para que outras pessoas possam utilizar a sua
distribuio.
Cada distribuio tem sua caracterstica prpria, atendendo as necessidades de seus usurios, tais
como o sistema de instalao, o objetivo, a localizao de programas, nomes de arquivos de
configurao, etc. A escolha de uma distribuio pessoal e depende das necessidades e finalidades
de cada um.
Atualmente existem centenas de distribuies Linux, porm, como tudo na vida, algumas se
destacaram. Algumas distribuies bastante conhecidas e destacadas nos dias de hoje so:
Slackware, Debian, Red Hat, Fedora, Mandriva, Suse, Ubuntu e Kurumin, todas usando o SO Linux
como kernel principal.

Debian
Debian simultaneamente o nome duma distribuio no-comercial livre (gratuita e de
cdigo-fonte aberto) de GNU/LINUX (amplamente utilizada) e de um grupo de voluntrios que o

mantm volta do mundo. Uma vez que o Debian se baseia fortemente no projecto GNU (e a
distribuio oficial do Projecto GNU Debian), usualmente chamado Debian GNU/Linux. O
Debian especialmente conhecido pelo seu sistema de gesto de pacotes, chamado APT, que
permite: atualizaes relativamente fceis a partir de verses realmente antigas; instalaes quase
sem esforo de novos pacotes e remoes limpas dos pacotes antigos.
O projecto Debian mantido por doaes atravs da organizao sem fins lucrativos
Software in the
Public Interest
(SPI).

O nome Debian vem dos nomes dos seus fundadores, Ian Murdock e de sua mulher, Debra. A
palavra "
Debian
" pronunciada em portugus como D
bian
.
Vrias distribuies comerciais baseiam-se (ou basearam-se) no Debian, incluindo: Lindows (atual
Linspire), Xandros, Kurumin, Debian-BR-CDD e Libranet. O Ubuntu Linux tambm se baseia em
Debian.

Conectiva
A Conectiva foi a primeira distribuidora brasileira do sistema operativo Linux. Suas distribuies
so fceis de instalar e configurar. A distribuio direcionada a usurios brasileiros, sendo que o
hardware que ela suporta aquele mais comumente encontrado no Brasil. Essa distribuio est
disponvel em portugus, espanhol e ingls. A empresa Conectiva integrante do United Linux.
No dia 24 de fevereiro de 2005, a MandrakeSoft, companhia nmero 1 em Linux na Europa,
anunciou a compra da Conectiva. Adquiriu todas as aes da Conectiva por US$2,3 milhes. A
MandrakeSoft a empresa que distribui o Mandrakelinux, uma das mais populares distribuies
Linux. A empresa passou a se chamar Mandriva.

Mandrake
Mandrakelinux uma distribuio GNU/Linux de origem francesa baseada originalmente na
distribuio Red Hat Linux (ambas usam pacotes RPM) criada em 1998 por Gal Duval que
tambm cofundador da Mandrakesoft; empresa responsvel pela distribuio e manuteno dos
produtos derivados do Mandrakelinux.
Sua principal caracterstica a facilidade no uso, pois conta com diversos assistentes grficos que
evitam o uso de comandos de linha e reconhece automaticamente diversos dispositivos de
hardware.
At 2004 a distribuio era oficialmente chamada Mandrake Linux, ou simplesmente Mandrake. A
alterao no nome ocorreu devido a um problema jurdico envolvendo a King Features Syndicate
dona dos direitos do personagem de quadrinhos Mandrake, o mgico.
Recentemente a Mandrakesoft adquiriu a empresa brasileira Conectiva. Esperasse com isso que o
Mandrakelinux consiga aumentar sua presena no mercado latino-americano.

Mandriva
Mandriva juno do nome das duas empresas MandrakeSoft e Conectiva. A Mandriva Conectiva
a operao brasileira da Mandriva, desenvolvedora e distribuidora do sistema operativo Mandriva
Linux, resultado da fuso ocorrida em 24 de fevereiro de 2005 entre a MandrakeSoft, uma das
principais distribuies Linux da Europa, com atuao mundial em mais de 120 pases, e a
Conectiva, pioneira na distribuio Linux e cdigo-aberto em portugus, espanhol e ingls para
toda a Amrica Latina. A Mandriva possui escritrios nos Estados Unidos, Frana e Brasil, tem mais
de 8 milhes de usurios e uma carteira de 170 grandes clientes corporativos, alm de contar com
130 funcionrios. uma das distribuies Linux mais potentes e relativamente fcil de usar, seja
para uso domstico e/ou corporativo.
Encontra-se para baixar no site oficial, nas interfaces GNOME e KDE. Como qualquer outra
distribuio Linux, o Mandriva pode ser usado pelo CD, sem instalar no disco rgido, mtodo
chamado de Live CD. Segundo o site oficial seus requisitos so: 256 MB de memria RAM no
mnimo, recomendados 512 MB, tanto para live CD quanto instalar no HD e cerca de 3 GB para a
instalao deste no HD. Gratuitamente temos o Mandriva ONE 2007 Spring, que gasta apenas 1 CD,
voltado para iniciantes e temos tambm o Mandriva FREE 2007 Spring, que gasta 1 DVD, voltado
para usurios mais experientes.

Slackware
Slackware Linux o nome duma das mais antigas e conhecidas distribuies (sistema operativo e
conjunto de aplicativos) do Linux; a mais antiga, distribuio que permanece mantida, alm de
ser, junto com suas derivadas, a distribuio Linux mais semelhante ao Unix existente.
Criada em meados de 1993 e mantida por Patrick Volkerding, a Slackware (ou simplesmente
Slack) tem como objectivo manter-se fiel aos padres Unix, rejeitando tambm ferramentas de
configurao que escondam do utilizador o real funcionamento do sistema. Alm disso, a
Slackware composta somente de aplicativos estveis (e no de verses
beta ou
pr-releases
). Nos
anos 90, por um bom tempo, outras distribuies Linux foram avaliadas com base em sua

compatibilidade com o Slackware. Se no comeo ainda trabalhava s, ao longo dos anos Patrick
Volkerding acabou aceitando a ajuda de alguns colaboradores, muito poucos por sinal, a fim de o
ajudarem no desenvolvimento da distribuio.
Por sua concepo do tipo Unix, o Slackware e seus derivados fazem uma abordagem bastante
diferente das outras distribuies populares como Red Hat, Fedora, Debian, Gentoo, openSuSE e
Mandriva. Sua poltica de incluir somente aplicativos estveis e nenhuma interface grfica de
configurao especfica a apenas essa distribuio. H quem diga: Quando voc conhece o
Slackware, voc conhece Linux; quando conhece Red Hat, tudo que voc conhece o Red Hat...
Simplicidade e estabilidade so duas caractersticas marcantes nesta distribuio muito comum
em servidores, distribuio que procura ser uma distribuio leve, sem enfeites e rpida, e que
muito apreciada por utilizadores mais experientes. Apesar de o termo
slack
ser uma gria para

preguia em ingls; em Slackware, o termo


slack
est relacionado definio feita pela

chamada
Church of the Subgenius (Igreja dos Sub-Gnios). De acordo com esta organizao,
slack

significa ter senso de liberdade, independncia e originalidade para alcanar suas metas
pessoais. Dessa forma, o nome Slackware traduz bem a filosofia do sistema, que no possui
ferramentas grficas de configurao (apenas as do KDE, por exemplo) que fazem tudo pelo
utilizador, o que inibe o seu slack. Assim sendo, as configuraes do sistema so feitas a partir da
edio de documentos de texto, por isso sendo a preferida entre os utilizadores mais experientes.

Ubuntu
Ubuntu um sistema operativo (no Brasil, chamam-lhe sistema operacional) Linux baseado na
distribuio Debian. patrocinado pela Canonical Ltd (dirigida por Mark Shuttleworth) e o seu
nome deriva do conceito sul africano Ubuntu (pronuncia-se /bnt/ - u- BN-tu; IPA: /ubuntu/)
diretamente traduzido como humanidade para com os outros. Diferencia-se do Debian por ser
lanado semestralmente, por disponibilizar suporte tcnico nos dezoito meses seguintes ao
lanamento de cada verso (em ingls) e pela filosofia em torno de sua concepo, uso e
distribuio.
A proposta do Ubuntu oferecer um sistema operacional/operativo que qualquer pessoa possa
utilizar sem dificuldades, independente de nacionalidade, nvel de conhecimento ou limitaes
fsicas. A distribuio deve ser constituda totalmente de software gratuito e livre, alm de isenta
de qualquer taxa. Atualmente uma organizao cuida para que cpias sejam remetidas em CDs
para todo o mundo sem custos.
A Comunidade Ubuntu ajuda-se mutuamente, no havendo distino de novatos ou veteranos; a
informao

deve

ser compartilhada para que se possa ajudar quem quer que seja,

independentemente do nvel de dificuldade.


H vrios meses a distro Ubuntu est em primeiro lugar no DistroWatch, site especializado em
catalogar o desempenho e uso das milhares de distros Linux.

SuSe
A SuSE, mais precisamente SUSE LINUX AG, uma empresa alem, que disponibiliza solues
baseadas no sistema operativo GNU/Linux, incluindo vrias distribuies. Em Janeiro de 2004, a
empresa foi adquirida pela Novell, uma empresa americana que na dcada de 1980 ficou famosa
por seu sistema operativo de rede (Netware) e que perdeu fatia substancial de mercado com o
advento do Windows NT da Microsoft.

Red Hat
Red Hat Linux uma distribuio de Linux muito conhecida, lder do mercado nos EUA, criada e
mantida pela Red Hat.

Um grupo de programadores na Carolina do Norte decidiu tornar o Linux mais fcil para
possibilitar s pessoas uma experincia mais tranquila com o mesmo. Como muitos grupos, seu
objectivo era empacotar todos os bits necessrios numa distribuio coerente, facilitando aos
inexperientes o contato com o novo sistema operacional.
Esta distribuio porm tinha uma caracterstica distinta das demais. Em vez de ser uma cpia de
um disco rgido que tivesse o Linux instalado, ou um conjunto de disquetes com partes diferentes
do sistema operacional que podiam ser copiadas, esta distribuio foi baseada no conceito de
pacotes.
Cada pacote fornece um pedao diferente de software, configurado, completamente testado e
pronto para rodar. Quer experimentar um novo editor? Carregar o pacote e instale-o. Em segundos,
possvel estar executando o pacote instalado. No gosta dele? Emita um nico comando e o pacote
ser removido.
Alm disso o conceito de pacotes traz uma vantagem adicional: Esta distribuio do Linux podia ser
atualizada facilmente.
O desenvolvimento do Linux no mundo muito rpido, provocando a gerao de novas verses com
frequncia. Em outras distribuies, a atualizao do software tornou-se complexa, em uma
atualizao completa, normalmente o usurio teria que deletar tudo em seu disco rgido. Desse
modo, voc provavelmente supe que o grupo de programadores na Carolina do Norte a Red Hat
Software, e o pacote de distribuio o Red Hat Linux. Desde a introduo do Red Hat Linux em
1994, o Linux e o Red Hat tiveram um crescimento extraordinrio. Muito mudou: suporte para
hardwares mais sofisticado, grande aumento de fiabilidade, e o crescente uso do Linux por
companhias ao redor do mundo.

Kurumin
O Kurumin Linux uma distribuio Linux baseada no Knoppix e que mantm o mesmo sistema de
deteco de
hardware desta distribuio. Todavia, o Kurumin foi projectado para que fosse bem
mais compacto, cabendo, assim, em suas verses iniciais, num mini-CD de 80 mm.

Inicialmente o seu desenvolvedor, Carlos E. Morimoto, deu incio ao projecto apenas para fins de
uso pessoal; porm, ao anunciar a sua criao no seu site, muita gente demonstrou interesse pelo
projeto, o que incentivou Morimoto a levar o projecto adiante.
Segundo o stio DistroWatch, Kurumin a distribuio Linux mais popular no Brasil.
O nome
kurumin vm da lngua tupi-guarani, onde
curumim
significa menino, criana, numa
aluso a uma distribuio Linux mais leve e simples, para iniciantes no sistema. A letra
k no incio

da palavra uma referncia ao Knoppix. O logotipo do Kurumin um pinguim com aspecto


infantil: pequeno, simptico e mais magro do que o Tux, o pinguim que representa o Linux em si.
Outras caractersticas notveis so o cocar na cabea do mascote e uma bandeira do Brasil em sua
barriga.

Tendo sido focado sempre na lngua portuguesa, recentemente foi anunciada a formao de um
grupo de trabalho para traduzir a verso 6.0 para as lnguas inglesa e espanhola.

Dispositivos e Sistemas Operativos


Dispositivos de Entrada e Sada

Entrada - Permite a comunicao do usurio com o computador. So dispositivos que enviam
dados ao computador para processamento.
Exemplos: Teclado, mouse, scanner.
O dispositivo de entrada padro (
stdin
) em sistemas GNU/Linux o teclado.

Sada - Permite a comunicao do computador com o usurio. So dispositivos que permitem o


usurio visualizar o resultado do processamento enviado ao computador.
Exemplos: Monitor, Impressora.
O dispositivo de sada padro (stdout) em sistemas GNU/Linux o Monitor.

Sistema Operativo
O Sistema Operativo (SO) um conjunto de programas responsvel por alocar recursos de
hardware
e escalonar tarefas, controlar os dispositivos de entrada e sada (I/O), tais como vdeo, teclado,

mouse [em Portugal,


rato
], e ainda controlar os recursos internos que compem o computador, tais
como: processador, memria, arquivos, etc.

Em termos de
hardware, um SO a poro de
software que roda em modo ncleo (
kernel)
, e tem a

importante funo de proteger o


hardware da aco directa do utilizador, isto , estabelecer
critrios de uso dos recursos, ordem de acesso aos mesmos, impedindo violao de espao de

memria de processos concorrentes e tentativas de acesso simultneo a um mesmo recurso, ou


seja, gerncia e proteo dos dispositivos.
Os SO(s) podem ser divididos em:
Sistemas - Operacionais Monoprogramveis/ Monotarefa
Exemplo:
Windows 95/98.
Sistemas Multiprogramveis/Multitarefa
Exemplo:
Unix, Linux, Windows NT/2000/2003.
O SO Linux possui vrias caractersticas que diferenciam dos outros sistemas operativos e que o
aproximam do Unix, sendo um dos motivos da sua escolha em vrias aplicaes nas quais so
necessrias estabilidades e segurana.

Antes de continuarmos, convm estabelecermos alguns termos utilizados.


Kernel
o ncleo do sistema operacional, a parte mais prxima do nvel fsico (hardware). Composta de
chamadas ao sistema, de acesso aos dispositivos de entrada e sada e de gerncia dos recursos da
mquina.
Shell
Shell o nome genrico de uma classe de programas que funcionam como interpretador de
comandos e linguagem de programao
script (interpretada) no Unix. Os
shell mais populares so
bash, chs, tsh, zsh
.

O
shell a interface entre o usurio e o
kernel
. O usurio pode escolher qual dos shells vai utilizar. O
shell
padro do Linux o
bash
.

Script
Script um arquivo que contm comandos de
shell
, que, numa situao normal, poderiam ser

executados em modo
promp
t. Esses comandos so executados sequencialmente, dependendo de
situaes, dependendo de condies estruturais de lao, como
if then (se ento) e
do while
(faa enquanto). Um
script tambm pode usar variveis. A entrada pode ser recebida por meio do
prompt de comando ou de outros arquivos.

Hardware
: So componentes referente a parte fsica do computador (impressora, disquete, placa de
TV, placa me,
pen drive
, discos rgidos, etc).

Software
: So os programas instalados no computador (sistema operacional, editor de texto,
planilha, banco de dados, interfaces,
scripts
, interfaces de comando, etc).

No dito popular existe uma maneira simples de se diferenciar


Hardware
e
Software
:
Hardware
aquilo que voc chuta, S
oftware
aquilo que voc xinga.

O sistema GNU/Linux possui a seguinte estrutura bsica de diretrios:


/

Diretrio principal (raiz).

/bin

Contm arquivos de programas do sistema que so usados com frequncia pelos

usurios.
/boot

Contm arquivos necessrios para a inicializao do sistema.

/cdrom

Ponto de montagem da unidade de


CD-ROM
.

/dev

Contm arquivos usados para acessar dispositivos (perifricos) existentes no

computador.
/etc

Arquivos de configurao de seu computador local.

/floppy

Ponto de montagem de unidade de disquetes.

/home

Diretrios contendo os arquivos dos usurios.

/lib

Bibliotecas compartilhadas pelos programas do sistema e mdulos do kernel.

/lost+found Local para a gravao de arquivos/diretrios recuperados pelo utilitrio fsck.ext2.


Cada partio possui seu prprio diretrio lost+found.
/mnt

Ponto de montagem temporrio.

/proc

Sistema de arquivos do kernel. Este diretrio no existe em seu disco rgido, ele

colocado l pelo kernel e usado por diversos programas que fazem sua leitura, verificam
configuraes do sistema ou modificar o funcionamento de dispositivos do sistema atravs da
alterao em seus arquivos.
/root

Diretrio do usurio
root
.

/sbin

Diretrio de programas usados pelo superusurio (


root
) para administrao e controle

do funcionamento do sistema.
/tmp

Diretrio para armazenamento de arquivos temporrios criados por programas.

/usr

Contm maior parte de seus programas. Normalmente acessvel somente como

leitura.
/var

Contm maior parte dos arquivos que so gravados com frequncia pelos programas

do sistema,
e-mails
,
spool
de impressora,
cache
, etc.

Sistema de arquivos

ext2
- Para parties GNU/Linux usando o
Extended File System
verso 2 (a mais comum).

ext3 - Para parties GNU/Linux usando o
Extended File System verso 3, com suporte a
journaling.

reiserfs
- Para parties
reiserfs
, com suporte a
journaling
.

vfat
- Para parties Windows 95 que utilizam nomes extensos de arquivos e diretrios.

msdos
- Para parties
DOS
normais.

iso9660
- Para montar unidades de
CD-ROM
. o padro.
No GNU/Linux, os dispositivos existentes em seu computador (como discos rgidos, disquetes,
portas de impressora, modem, etc) so identificados por um arquivo referente a este dispositivo no
diretrio /dev.

Dispositivos
Os nomes de dispositivos no sistema GNU/Linux so acessados atravs do diretrio onde esses
dispositivos fsicos so tratados como arquivos. Estes arquivos so um tipo especial no sistema de
arquivos Linux. Esses dispositivos so: impressoras, CD-ROMs, modems, entradas USB, mouse, Hds,
etc.

Dispositivos Linux

Dispositivos Windows

/dev/hda1

C: (Partio 1 da IDE Primria Master)

/dev/hda2

D: (Partio 2 da IDE Primria Master)

/dev/ttyS0

COM1 (Porta serial 1)

/dev/ttyS1

COM2 (Porta serial 2)

/dev/ttyS2

COM3 (Porta serial 3)

/dev/ttyS3

COM4 (Porta serial 4)

/dev/fd0

disquete (drive A:)

/dev/lp0

LPT1(porta paralela - impressora)

/dev/dsp

Acesso a sua placa de som pelo canal digital

/dev/mixer

Acesso ao mixer da sua placa de som

A identificao de discos rgidos no GNU/Linux feita da seguinte forma:

Introduo ao Linux
Inicialmente o Linux vinha sendo utilizado apenas como servidores por conta de sua estabilidade,
performance e segurana, porm h alguns anos veio a pergunta:
Porque apenas servidores? E se eu

quiser um sistema operacional livre, poderoso e seguro para usar em minha casa para minhas
atividades do dia a dia?
Foi essa pergunta que motivou desenvolvedores da comunidade Linux espalhados pelo mundo
inteiro para comearem a desenvolver aplicaes em modo grfico de forma a tornar o Linux o
mais usual possvel para desktops.
Hoje em dia a quantidade de aplicativos para Desktop Linux j incontvel contando com softwares
de altssima qualidade e confiabilidade como por exemplo o navegador Mozilla Firefox, o
OpenOffice...
O nosso foco neste curso no o de manipular a interface grfica, mas sim manipular o que
acontece por trs das coisas, sendo assim estaremos utilizando o nosso querido Terminal ou
Console para o restante do curso, afinal de contas isso que diferencia um administrador de
sistemas Linux do administrador de outros sistemas operacionais. No fiquemos presos apenas
uma janelinha bonita e bem desenhada.

Entendendo uma
Shell
Ao abrir um terminal, o mesmo lhe trar de incio alguma s
hell
, como o exemplo a seguir:

kalib@tuxcaverna:~$

Explicando esta
shell
podemos perceber alguns aspectos:

kalib =
Nome do utilizador

tuxcaverna =
Nome da mquina

~ =
Diretrio
home
do usurio

$=
Significa que voc est logado como um usurio comum
Outro exemplo de
shell
seria a seguinte:
root@tuxcaverna:/home/kalib/imgs#

Explicando esta shell podemos concluir:

root =
Super-utilizador do sistema

tuxcaverna =
Nome da mquina

/home/kalib/imgs =
rvore de Diretrios onde voc se encontra no momento

# =
Significa que voc est logado como root
Mas tambm pode acontecer de voc pegar uma
shell que ainda no esteja logada. Veremos
agora como simples fazer um
login s
eja como usurio normal ou como superusurio root.

Efetuando Login e Logout


tuxcaverna login:

Ele nos apresenta o nome da mquina e o pedido de


login
. Basta inserir o nome de seu

utilizador, no meu caso


kalib
, e em seguida ele lhe pedir a palavra-chave. Repare que ao

digitar a sua palavra-chave de utilizador, a mesma no aparece na tela obviamente por


questes bsicas de segurana. Digitada a palavra-chave, aperte
enter e voc estar na
shell
inicial de seu usurio apontando para sua pasta h
ome
.
kalib@tuxcaverna:~$

Para mudar de usurio utilize o comando


su +nome do usurio. Caso deseje mudar para o
usurio
root
, o simples
su
ser o suficiente. Ao utilizar este comando, ele lhe pedir a senha
do usurio com o qual voc deseja logar. Por exemplo:
Logando como utilizador teste:

kalib@tuxcaverna:~$ su teste

Logando como super usurio root:


kalib@tuxcaverna:~$ su

Para encerrar o login ou deslogar pode-se usar as teclas Ctrl + D ou simplesmente digitar o
comando
logout
, ou mesmo o comando e
xit
que serve para encerrar uma sesso de shell.
Exemplo:
kalib@tuxcaverna:~$ logout

Desligando e Reiniciando a mquina


Alguns comandos como os de desligar e reiniciar a mquina, obviamente, requerem alguns
poderes do usurio, sendo assim s podem ser utilizados pelo superusurio root.
Para desligar a mquina temos duas possibilidades de comandos:
root@tuxcaverna:~# shutdown -h now

ou
root@tuxcaverna:~# halt

Para reiniciar a mquina tambm possumos duas opes:


root@tuxcaverna:~# shutdown -r now

ou
root@tuxcaverna:~# reboot

Comandos de Ajuda
No Linux muito comum nos depararmos com situaes em que no saberemos o que fazer. Para
nos ajudar a solucionar esses problemas temos os amigos, o Google e at mesmo o prprio Linux
com seus comandos de ajuda. Comandos que trazem informaes, descries, exemplos de uso e
etc.
MAN
O comando man serve para consultar os manuais do sistema. O comando a seguir nos apresenta o
manual de informaes sobre o comando ls assim como as suas possibilidades de uso.
kalib@tuxcaverna:~$ man ls
OBS:
Para sair do man, basta apertar a tecla Q.

INFO
Outro comando til e que nos apresentar informaes sobre nosso sistema o info.
kalib@tuxcaverna:~$ info vim
WHATIS
Tem a funo de lhe dar uma breve e resumida explicao sobre o que o comando desejado ou
aplicao.
kalib@tuxcaverna:~$ whatis konqueror
HELP
No podia faltar o comando help que como um arquivo de ajuda.
kalib@tuxcaverna:~$ vim --help

Comandos de Navegao
Os comandos de navegao so os responsveis por nos permitir uma navegao entre nossos
arquivos, pastas, parties e etc.
CD
Muda o diretrio de trabalho para um qualquer que desejarmos:
kalib@tuxcaverna:~$ cd /home/kalib/mp3
Retorna ao diretrio raiz:
kalib@tuxcaverna:~$ cd /
Retorna ao diretrio home do usurio:
kalib@tuxcaverna:~$ cd
ou
kalib@tuxcaverna:~$ cd ~
Retorna um nvel na rvore de diretrios:
kalib@tuxcaverna:~$ cd ..
PWD
Exibe a rvore de diretrio corrente:
kalib@tuxcaverna:~$ pwd

LS
Exibe o contedo dos diretrios:
kalib@tuxcaverna:~$ ls
Voc tambm pode utilizar alguns parmetros do ls, sendo eles:
opo

explicao

-a

exibe arquivos ocultos

-l

exibe detalhes

-h

exibe detalhes de diretrio

-d

exibe o tamanho do arquivo junto com a opo -l.

-F

exibe as caractersticas de cada arquivo, sendo eles:

diretrios

arquivo executvel

ligao simblica

arquivo de
backup

sockets

pipes

Exemplos:
kalib@tuxcaverna:~$ ls -a
ou
kalib@tuxcaverna:~$ ls -la -F

Comandos para Manipulao de Arquivos


Comandos gerais para manipulao de arquivos e/ou pastas, criando, editando, deletando,
copiando, movendo

MKDIR
Comando para criar diretrios.
Modo de utilizao:
mkdir [opes] <nome_diretrio>
[Opo] [Descrio]
-p

Cria a rvore de diretrios completa se necessrio

-v

Modo
verbose
. Mostra o nome de cada diretrio criado

Exemplos:
kalib@tuxcaverna:~$ mkdir
ou
kalib@tuxcaverna:~$ mkdir -p /home/kalib/teste/teste2/teste3
ou
kalib@tuxcaverna:~$ mkdir -pv /home/kalib/teste/aqui/agora
RMDIR
Comando para remover diretrios vazios.
Modo de utilizao:
rmdir [opes] <nome_diretrio>
[Opo] [Descrio]
-p

Remove rvore de diretrios completa se necessrio

-v

Modo verbose. Mostra o nome de cada diretrio removido

Exemplos:
kalib@tuxcaverna:~$ rmdir teste2 teste3 teste4
ou
kalib@tuxcaverna:~$ rmdir -pv /home/kalib/teste/teste2/teste3

MV
Serve para mover ou renomear arquivos e diretrios
Modo de utilizao:
mv [opes] <fonte> <destino>
[Opo] [Descrio]
-i

Pede confirmao antes de mover um arquivo que ir remover outro

-v

Exibe o nome do arquivo antes de mov-lo

Exemplos:
kalib@tuxcaverna:~$ mv teste.doc teste1.doc
ou
kalib@tuxcaverna:~$ mv -i teste.doc /home/kalib/imgs/
ou
kalib@tuxcaverna:~$ mv -v teste* /home/kalib/testes
RM
Tem a funo de remover arquivos.
Modo de utilizao:
rm [opes] <arquivos>
[Opo] [Descrio]
-i

Pede confirmao antes de eliminar o arquivo

-f

Fora a eliminao sem pedir confirmao

-r

Apaga recursivamente o contedo de um diretrio

-v

Exibe o nome de cada arquivo antes de elimin-lo

Exemplos:
kalib@tuxcaverna:~$ rm teste.doc teste2.doc teste3.doc
ou
kalib@tuxcaverna:~$ rm -f teste.jpg teste.gif teste.txt
ou
kalib@tuxcaverna:~$ mv -r teste2/

ou
kalib@tuxcaverna:~$ mv -v teste*

CP
Utilizado para copiar um ou mais arquivos.
Modo de utilizao:
cp [opes] <arquivos_fonte> <arquivos_destino>
[Opo] [Descrio]
-a

Mantm os atributos do arquivo

-r

Copia recursivamente todos os arquivos incluindo subdiretrios

-u

Copia apenas quando os arquivos_fonte so mais novos que arquivos_destino

-v

Exibe o nome de cada arquivo antes de copi-lo

SPLIT
Utilizado para repartir arquivos. O que acontece quando voc tem um arquivo grande e no
consegue coloc-lo no seu cd virgem, ou no disquete ou onde quer que seja? Bom, existe a
possibilidade de partirmos ele em pedaos menores para posteriormente un-los novamente.
Modo de utilizao: split -b <tamanho> <nome_arquivo_original> <nome_fatias>
Exemplo:
kalib@tuxcaverna:~$ split -b 50k angra-rebirth.mp3 rebirth

Este comando ir partir o meu arquivo angra-rebirth.mp3 em vrios pedaos de 50k, e utilizar a
palavra rebirth para nomear as fatias do mesmo.
Para listar-mos o resultado da operao podemos usar um simples ls:
kalib@tuxcaverna:~$ ls

Encontraremos o resultado da seguinte forma:


--> rebirthaa rebirthab rebirthac rebirthad rebirthae rebirthaf rebirthag angra-rebirth.mp3
Depois, para agruparmos novamente os arquivos em um s:
kalib@tuxcaverna:~$ cat rebirth* >angra-rebirth.mp3

Comandos de terminal
Normalmente so os comandos para se limpar uma tela de terminal, escrever algo ou enviar
mensagens para outros usurios ou terminais.
CLEAR
Limpa a tela do terminal virtual corrente. Exemplo:
kalib@tuxcaverna:~$ clear

ECHO
Envia uma mensagem para o terminal.
Exemplo:
kalib@tuxcaverna:~$ echo Teste de Mensagem

WRITE
Assim como o echo, tambm serve para enviar uma mensagem para o terminal. O Write possui
algumas possibilidades a mais como escolher a qual usurio voc deseja enviar a mensagem ou
mesmo em que terminal quer que ela seja enviada escolhendo o
tty
.
O
write tambm pode ser usado para enviar mensagens outras mquinas que estejam na rede
utilizando a
ip
da mquina juntamente com o usurio.
Modo de utilizao:
write<usurio> [tty]
Digitado este comando, ele lhe permitir digitar sua mensagem, ao encerrar a mensagem pressione
as teclas Ctrl + D para encerrar a tarefa.
Exemplos:
kalib@tuxcaverna:~$ write lucia

ou
kalib@tuxcaverna:~$ write lucia@192.168.0.5 tty2

Comandos de localizao de arquivos


Como o nome j diz so utilizados para se localizar arquivos do sistema de forma rpida e eficiente.
FIND
Procura arquivos no disco rgido.
Modo de utilizao:
find [caminho] [opes] <nome_arquivo>

[Opo]

[Descrio]

-name <padrao>

Localiza arquivos com nome igual a padrao

-type <x>

Localiza especificando o tipo do arquivo de acordo com x:

Arquivos

Diretrios

Exemplos:
kalib@tuxcaverna:~$ find /home/kalib -name teste

ou
kalib@tuxcaverna:~$ find /home/kalib/imgs -type f

ou
kalib@tuxcaverna:~$ find /home/kalib -type d

WHEREIS
Este comando localiza o arquivo binrio, o cdigo-fonte e a pgina do manual para um comando.
Modo de utilizao:
whereis [opes] <comando>
[Opo]

[Descrio]

-b

Localiza apenas o arquivo binrio

-s

Localiza apenas o cdigo-fonte

-m

Localiza apenas a pgina do manual

OBS:
Caso nenhuma das trs opes seja utilizada, o comando lhe trar como resposta as trs
informaes.
Exemplos:
kalib@tuxcaverna:~$ whereis konqueror

ou
kalib@tuxcaverna:~$ whereis -b konqueror

ou

kalib@tuxcaverna:~$ whereis -m konqueror

WHICH
Mostra o caminho de um programa.
Exemplo:
kalib@tuxcaverna:~$ which firefox

Comandos de informaes do sistema


So comandos que permitem ver/alterar data e hora do sistema assim como nos exibem
informaes do sistema em si.
CAL
Este comando nos informa o calendrio do ms atual com nfase no dia de hoje. Porm
utilizando-se suas opes, pode-se ver o ms e o ano que se desejar.
Modo de utilizao:
cal [ms [ano]]
[Opo] [Descrio]
Ms

Especifica de qual ms deve ser mostrado o calendrio, devendo

ser apresentado com dois dgitos: 01 - 12


Ano

Especifica o ano que deve ser mostrado, devendo ser apresentado

com quatro dgitos.


-3

Apresenta o ms anterior, o presente e o prximo.

-y

Apresenta o calendrio do ano inteiro.

Exemplos:
kalib@tuxcaverna:~$ cal 07 1986

ou
kalib@tuxcaverna:~$ cal -3

DATE
Indica a data e hora atual assim como permite definir nova data e hora.
Modo de utilizao: date
[MMDDHHmmAAAA]
[Opo]

[Descrio]

MM

Ms 2 caracteres

DD

Dia 2 caracteres

HH

Hora 2 caracteres

mm

Minutos 2 caracteres

AAAA

Ano 4 caracteres

Exemplos:
kalib@tuxcaverna:~$ date

ou
kalib@tuxcaverna:~# date 071706301986

UNAME
Exibe informaes sobre o sistema operacional e o hardware da mquina caso usado com as
devidas opes. Se utilizado sem nenhuma opo, ele apenas nos retorna o nome do sistema
operacional.
Modo de utilizao:
uname [opes]
[Opo]

[Descrio]

-a

Exibe todas as opes

-m

Exibe o nome da plataforma

-n

Exibe o nome da mquina

-s

Exibe o nome do Sistema Operacional

-v

Exibe a data de lanamento do Sistema Operacional

-r

Exibe a verso do Sistema Operacional

Exemplos:
kalib@tuxcaverna:~$ uname
ou
kalib@tuxcaverna:~$ uname -a
ou
kalib@tuxcaverna:~$ uname -n -s

ou
kalib@tuxcaverna:~$ uname -ns -mv
UPTIME
Informa a hora atual e quanto tempo o sistema est ativo sem ser desligado ou reiniciado.
Exemplo:
kalib@tuxcaverna:~$ uptime
FREE
Exibe as informaes de memria total, em uso e livre.

Modo de utilizao:
free [opo]
[Opo]
-t

[Descrio]
Exibe tambm o valor total

Exemplos:
kalib@tuxcaverna:~$ free
ou
kalib@tuxcaverna:~$ free -t
Comandos de exibio e edio de arquivos
MORE
Exibe arquivos texto.
Modo de utilizao:
more [opo]
[Opo]

[Descrio]

+n

Exibe o texto a partir da linha de nmero n

-s

Exibe o texto transformando mltiplas linhas em branco em apenas uma

Exemplos:
kalib@tuxcaverna:~$ more texto1.doc
ou

kalib@tuxcaverna:~$ more -s texto1.doc


ou
kalib@tuxcaverna:~$ more +4 -s texto1.doc
VIM
O vim uma excelente ferramenta para edio de textos. Possui dois modos: Modo Comando
e Modo Edio. Ao iniciar, o vim se encontra em modo comando. Para iniciar o modo edio
pressione a tecla i enquanto que para iniciar o modo comando pressione a tecla esc.
Modo de utilizao:
vim ou vim <arquivo>

No modo comando o vim possui algumas teclas de atalho:

[Comando]

[Descrio]

<:> + <w>

Salva o arquivo

<:> + <q>

Sai do arquivo sem salvar as alteraes

<:> + <q> + <!>

Fora a sada do arquivo sem salvar as alteraes

</> <pesquisa>

Busca pela palavra pesquisa no arquivo

Utilizando o APT
O que o APT
Como explicado anteriormente, por ser um software livre, qualquer pessoa pode pegar o
cdigo fonte do Linux em si como Kernel ou de uma distribuio Linux em especfico e
alter-lo da maneira que desejar. Por conta disso ao longo dos anos foram surgindo inmeras
distribuies Linux, logo formas diferentes de instalao de programas para adequar-se s
particularidades de cada uma delas.
O mtodo que trataremos na apostila o APT que o mais focado para nosso objetivo aqui.
O APT (
Advanced Packaging Tool
) um conjunto de ferramentas desenvolvido pela Debian

para gerenciar os pacotes de uma distribuio Linux da forma mais automatizada possvel,
de forma que ao instalar este pacote, tambm sejam atualizados/instalados todos os pacotes
necessrios para o funcionamento deste.
As distribuies que utilizam o APT como gerenciador de arquivos possuem servidores onde
esto localizadas as suas aplicaes disponveis para download e instalao. O que o APT faz

justamente ir at estes servidores para baixar e instalar o pacote e suas dependncias. Estes
so os chamados Repositrios.
Para saber onde exatamente o nosso sistema deve procurar por estes repositrios, o nosso
sistema possui um arquivo que aponta quais os repositrios utilizados por nossa distribuio.
O arquivo :
/etc/apt/sources.list
Segue um exemplo de arquivos sources.list:
deb http://us.archive.ubuntu.com/ubuntu/ edgy main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ edgy main restricted

Traduzindo este por exemplo:


deb-src http://us.archive.ubuntu.com/ubuntu/ edgy main restricted

deb = significa que um repositrio do tipo debian


src = significa que um repositrio de source code (cdigo fonte)
http... = host ou endereo onde se encontra o repositrio
Os parmetros que aparecem aps a url no so obrigatrios em todas as distribuies, pois
indicam que tipo de repositrio aquele. No nosso caso, Kubuntu, seus repositrios esto
divididos em quatro componentes:
[Componente]

[Descrio]

Main

Softwares oficialmente suportados

Restricted

Softwares suportados que no esto disponveis completamente sob uma

licena livre
Universe

Softwares mantidos pela comunidade, ou seja, softwares no suportados

oficialmente
Multiverse

Softwares que no so livres

Agora que sabemos o que o APT, vejamos algumas de suas funcionalidades:

Atualizando o banco de dados com o UPDATE

recomendado que se d um UPDATE logo ao instalar uma distribuio Linux assim como
antes de instalar qualquer pacote. O update serve para atualizar a sua source list assim como
o banco de dados de seus pacotes.
Modo de utilizao:
#apt-get update
Procurando por pacotes
Veremos duas formas de procurar pacotes atravs do APT.
A primeira forma atravs de uma busca por descrio. Nos repositrios os pacotes sempre
aparecem com uma descrio sobre o mesmo. Para fazer uma busca utilizando-se da
descrio, usaremos o comando APT-CACHE SEARCH.
Exemplo:
root@tuxcaverna:/home/kalib# apt-cache search game

Este comando nos exibir todos os pacotes que possuem a palavra game na descrio.
A segunda atravs do nome do pacote. Com o comando APTITUDE SEARCH voc busca por
um nome em especfico.
Exemplo:
root@tuxcaverna:/home/kalib# aptitude search broffice

Este comando nos retornar a lista de pacotes que possuem a palavra broffice no nome.

Instalando pacotes
Depois de feita a devida busca, hora de instalar aquilo que queremos. Supondo que ao
buscar por broffice, obtive como resposta um pacote chamado broffice.org, vamos instalar o
mesmo seguindo o exemplo:
root@tuxcaverna:/home/kalib# apt-get install broffice.org

Removendo pacotes
Se por algum motivo voc no deseja mais ter o broffice.org em sua mquina, voc pode
facilmente remov-lo com o comando APT-GET REMOVE, como no exemplo a seguir:
root@tuxcaverna:/home/kalib# apt-get remove broffice.org

Você também pode gostar