Princípios do Sistema
Linux
Princípios do Sistema Linux
Multi® Sistemas
2
Princípios do Sistema Linux
Sumário
1.1 Um pouco de História............................................................................................................ 6
1.2 Licenças do Uso..................................................................................................................... 7
Licença GPL............................................................................................................................. 7
Licença LGPL........................................................................................................................... 8
Licença BSD............................................................................................................................ 8
Licença MIT............................................................................................................................. 9
Licença Creative Commons..................................................................................................... 9
1.3 Movimentos e Projetos do Software Livre............................................................................10
Movimento FSSTND............................................................................................................... 10
Movimento FHS..................................................................................................................... 10
Movimento Open Source....................................................................................................... 10
Projeto LSB............................................................................................................................ 11
Projeto GNU........................................................................................................................... 11
1.4 Distribuições Linux (sabores)...............................................................................................12
Red Hat Linux........................................................................................................................ 12
SuSE Linux............................................................................................................................ 12
Mandriva Linux...................................................................................................................... 13
Debian Linux......................................................................................................................... 13
Ubuntu Linux......................................................................................................................... 13
Fedora Linux......................................................................................................................... 14
Slackware Linux.................................................................................................................... 14
1.5 As interfaces........................................................................................................................ 15
Interface Gráfica.................................................................................................................... 15
X Windows System................................................................................................................ 15
Ambientes Gráficos............................................................................................................... 16
Funcionamento..................................................................................................................... 16
Interface Texto...................................................................................................................... 18
Console de Comandos........................................................................................................... 18
Emuladores de Terminal........................................................................................................ 18
Curiosidades.......................................................................................................................... 19
2.1 Estrutura de Diretórios........................................................................................................ 20
O diretório “lost+found”........................................................................................................ 22
O diretório “.”........................................................................................................................ 22
O diretório “..”....................................................................................................................... 23
2.2 Sistema de Arquivos............................................................................................................ 23
Curiosidades.......................................................................................................................... 24
3.1 A tela de login...................................................................................................................... 26
3.2 O ambiente de trabalho (GNOME)...................................................................................27
3.3 Componentes do Desktop Ubuntu...................................................................................28
O painel superior................................................................................................................... 29
O painel inferior..................................................................................................................... 31
4.1 Trabalhar na linha de comando...........................................................................................32
4.2 Comandos básicos de navegação........................................................................................33
Ls.......................................................................................................................................... 33
cd.......................................................................................................................................... 35
Pwd....................................................................................................................................... 36
5.1 Recursos do Shell Bash........................................................................................................ 37
6.1 Comandos Linux.................................................................................................................. 38
6.2 Comandos de inicialização................................................................................................... 38
Shutdown.............................................................................................................................. 38
poweroff................................................................................................................................ 39
init 0...................................................................................................................................... 39
init 3...................................................................................................................................... 39
init 5...................................................................................................................................... 39
init 6...................................................................................................................................... 39
init q...................................................................................................................................... 39
init s...................................................................................................................................... 39
exit........................................................................................................................................ 39
3
Princípios do Sistema Linux
Introdução ao Linux
logout ................................................................................................................................... 39
6.3 Comandos de Sistema......................................................................................................... 39
Dmesg................................................................................................................................... 39
arch....................................................................................................................................... 40
uname................................................................................................................................... 40
uptime................................................................................................................................... 40
free....................................................................................................................................... 40
vmstat................................................................................................................................... 40
ps ......................................................................................................................................... 40
tty......................................................................................................................................... 40
stty........................................................................................................................................ 40
tset........................................................................................................................................ 40
fgconsole .............................................................................................................................. 40
cu.......................................................................................................................................... 41
type....................................................................................................................................... 41
time....................................................................................................................................... 41
cal......................................................................................................................................... 41
date....................................................................................................................................... 41
who....................................................................................................................................... 41
whoami................................................................................................................................. 41
last........................................................................................................................................ 41
lastlog................................................................................................................................... 41
at........................................................................................................................................... 41
crontab.................................................................................................................................. 42
lspci....................................................................................................................................... 42
setserial................................................................................................................................ 42
6.4 Comandos de Ajuda............................................................................................................. 42
man....................................................................................................................................... 42
xman .................................................................................................................................... 42
info........................................................................................................................................ 42
makewhatis........................................................................................................................... 43
apropos................................................................................................................................. 43
help ...................................................................................................................................... 43
6.5 Comandos para Manipulação de Diretórios..........................................................................43
6.6 Comandos para Manipulação de Aquivos........................................................................44
6.7 Comandos para Compactar.............................................................................................45
cpio....................................................................................................................................... 46
7.1 Tipos de arquivos................................................................................................................. 48
7.2 Arquivo diretório............................................................................................................. 48
7.3 Arquivo link simbólico..................................................................................................... 49
7.4 Arquivo especial de caractere......................................................................................... 49
7.5 Arquivo especial de bloco................................................................................................ 50
7.6 Arquivo named pipe........................................................................................................ 50
7.7 Arquivo Socket................................................................................................................ 51
8.1 Administração de usuários................................................................................................... 52
useradd................................................................................................................................. 52
userdel.................................................................................................................................. 52
username.................................................................................................................................. 52
users..................................................................................................................................... 52
usermod ............................................................................................................................... 52
Id........................................................................................................................................... 52
passwd.................................................................................................................................. 52
chpasswd.............................................................................................................................. 52
groupadd............................................................................................................................... 53
groupdel................................................................................................................................ 53
groups................................................................................................................................... 53
groupmod.............................................................................................................................. 53
newgrp.................................................................................................................................. 53
chgroup................................................................................................................................. 53
chown.................................................................................................................................... 53
sg.......................................................................................................................................... 53
Multi® Sistemas
Princípios do Sistema Linux
Introdução ao Linux
su.......................................................................................................................................... 53
wall........................................................................................................................................ 53
9.1 Permissões do Sistema.................................................................................................... 54
Modo Literal.......................................................................................................................... 54
Modo Octal............................................................................................................................ 55
10.1 Utilizar o gerenciamento de pacotes Debian.................................................................56
10.2 Conceito de pacotes...................................................................................................... 57
10.3 Conhecendo o pacote DEB............................................................................................59
10.4 O comando dpkg........................................................................................................... 60
10.5 O gerenciador de pacotes APT......................................................................................62
apt-cache.............................................................................................................................. 62
apt-get.................................................................................................................................. 63
10.6 O gerenciador de pacote APTITUDE...............................................................................66
Multi® Sistemas
Princípios do Sistema Linux
Introdução ao Linux
1.1 Um pouco de História
O Kernel Linux foi, originalmente, escrito por Linus Torvalds do Departamento de Ciência da
Computação da universidade de Helsinki, Finlândia, com a ajuda de vários programadores
voluntários através da Usenet.
Linus
Torvalds,
figura
ao
lado,
começou
o
desenvolvimento do kernel como um projeto particular,
inspirado pelo seu interesse no Minix, um pequeno
sistema UNIX desenvolvido por Andrew S. Tanenbaum.
Ele limitou-se a criar, nas suas próprias palavras, “um
Minix melhor que o Minix” (em ingês “a better Minix
than Minix”). E depois de algum tempo de trabalho no
projeto, sozinho, ele enviou a seguinte mensagem para
comp.os.minix:
Linus Benedict Torvalds
“Você suspira pelos bons tempos do Minix-1.1, quando os homens eram homens e
escreviam seus próprios “device drivers” ? Você está sem um bom projeto em mãos
e está desejando trabalhar num S.O. que você possa modificar de acordo com as
suas necessidades ? Está achando frustrante quando tudo funciona no Minix ? Chega
de noite ao computador para conseguir que os programas funcionem ? Então esta
mensagem pode ser exatamente para você.
Como eu mencionei há um mês atrás, estou trabalhando numa versão independente
de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente,
próximo do estado em que poderá ser utilizado (embora possa não ser o que você
está esperando), e eu estou disposto a disponibilizar o código-fonte para ampla
distribuição. Ele está na versão 0.02... contudo eu tive sucesso ao executar bash,
gcc, gnu-make, gnu-sed, etc. nele.”
Curiosamente, o nome Linux foi criado por Ari Lemmke, administrador do site ftp.funet.fi que
deu esse nome ao diretório FTP onde o kernel Linux estava inicialmente disponível (Linus tinhao baptizado como “Freax”, inicialmente).
No dia 5 de outubro de 1991, Linus Torvalds anunciou a primeira versão “oficial” do kernel
Linux, versão 0.02. Desde então muitos programadores têm respondido ao seu chamado, e
têm ajudado a fazer do Linux o sistema operacional que é hoje.
Em 1997 Linus Torvalds recebeu os prêmios “1997 Nokia Foundation Award'y” e “Lifetime
Achievement Award at Uniforum Pictures”. No mesmo ano finaliza os estudos superiores (1988
à 1997) passou 10 anos como estudante e investigador na Universidade de Helsinki,
coordenando o desenvolvimento do núcleo do S.O. desde 1992.
Torvalds trabalhou na Transmeta (fabricante de processadores
para portáteis) entre 1997 e 2003, e neste ano juntou-se ao
OSDL (Open Source Development Labs), uma fundação criada
para ajudar no desenvolvimento do kernel Linux, como OSDL
fellow. Fazem parte dessa fundação várias grandes empresas
do ramo da informática, como IBM, Sun, Nokia e outras.
Torvalds possui a marca registrada “Linux” e supervisiona o
uso (ou abuso) da marca através da organização sem fins
lucrativos Linux International.
Logo OSDL
Por sua formação aberta, o Linux vem conquistando governos, empresas, entidades e usuários
em geral, pelo custo de licenciamento, robustez, estabilidade dentre outras.
Multi® Sistemas
Princípios do Sistema Linux
Introdução ao Linux
Como características do Linux, podemos citar:
Sistema Multi-usuário (Vários usuários podem “usufruir” do sistema ao mesmo tempo);
Sistema Multi-tarefa (Várias tarefas são executadas ao mesmo tempo, concorrentes
entre si”);
Altamente portável, rodando desde iPAD até o IBM S/390 (mainframe);
Estável (Foi muito bem escrito, e contém poucos erros de código);
Robusto (“Agüenta” várias requisições ao mesmo tempo);
Open Source (Os usuários tem acesso ao código fonte);
Comunidade muito ativa;
1.2 Licenças do Uso
As licenças de uso (copyright ou copyleft), formam criadas com o intuito de restringir ou
garantir a liberdade de uso do software do usuário.
O que é copyleft ?
“Copyleft” é um trocadilho com o termo “copyright” que, traduzido
literalmente, significa “direitos de copia”. É exatamente o oposto de
copyright. Até a logomarca que representa o copyleft é um C invertido
(figura ao lado), extamente o inverso da logomarca do copyright.
Logo Copyleft
Richard Stallman popularizou o termo copyleft ao associá-lo em 1988
à licença GPL. De acordo com Stallman, o termo foi-lhe sugerido pelo
artista e programador Don Hopkins, que incluiu a expressão “Copyleft
- all rights reversed.” numa carta que lhe enviou. A frase é um
trocadilho com expressão “Copyright - all rights reserved.” usada para
afirmar os direitos de autor.
Um projeto (softwares ou outros trabalhos livres) sob a licença Copyleft requer que suas
modificações, ou extensões do mesmo, sejam livres, passando adiante a liberdade de copiá-lo
e modificá-lo novamente.
Uma das razões mais fortes para os autores e criadores aplicarem copyleft aos seus trabalhos
é porque desse modo esperam criar as condições mais favoráveis para que um alargado
número de pessoas se sintam livres de contribuir com melhoramentos e alterações a essa
obra, num processo continuado.
Licença GPL
O GNU General Public License (Licença Pública Geral), GNU
GPL ou simplesmente GPL, é a designação da licença para
software livre idealizada por Richard Stallman no final da
década de 1980, no âmbito do projeto GNU da Free Software
Foundation (FSF).
A GPL é a licença com maior utilização por parte de projetos
de software livre, em grande parte devido à sua adoção para o
Linux.
Multi® Sistemas
Logo Free S. Foundation
Princípios do Sistema Linux
Introdução ao Linux
Em termos gerais, a GPL baseia-se em 4 liberdades:
1. A liberdade de executar o programa, para qualquer propósito (liberdade nº 0)
2. A liberdade de estudar como o programa funciona e adaptá-lo para as suas
necessidades (liberdade nº 1). O acesso ao código-fonte é um pré-requisito para
esta liberdade.
3. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo
(liberdade nº 2).
4. A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de
modo que toda a comunidade se beneficie deles (liberdade nº 3). O acesso ao
código-fonte é um pré-requisito para esta liberdade.
Com a garantia destas liberdades, a GPL permite que os programas sejam distribuídos e
reaproveitados, mantendo, porém, os direitos do autor por forma a não permitir que essa
informação seja usada de uma maneira que limite as liberdades originais. A licença não
permite, por exemplo, que o código seja apoderado por outra pessoa, ou que sejam impostos
sobre ele restrições que impeçam que seja distribuído da mesma maneira que foi adquirido.
Licença LGPL
O GNU Lesser General Public License (antes conhecida como GNU Library General Public
License) é uma licença de software livre aprovada pela FSF escrita com o intuito de ser um
meio-termo entre a GPL e licenças mais permissivas como a licença BSD e a licença MIT. Ela foi
escrita em 1991 (e atualizada em 1999) por Richard Stallman e Eben Moglen.
Richard Stallman
Eben Moglen
A principal diferença entre a GPL e a LGPL é que esta permite ser ligada com programas que
não sejam GPL ou LGPL, que podem ser Software livre ou Software proprietário.
Outra diferença é que trabalhos derivados (que não sejam GPL) devem ser bibliotecas de
software. A LGPL é primariamente pretendida de ser usada em bibliotecas de software, embora
também seja usada por aplicações como OpenOffice.org e Mozilla.
Licença BSD
A licença BSD é uma licença de código aberto inicialmente utilizada nos sistemas
operacionais do tipo Berkeley Software Distribution (um sistema derivado do Unix). Apesar dela
ter sido criada para os sistemas BSD, atualmente vários outros sistemas são distribuídos sob
esta licença.
Os proprietários originais da distribuição BSD eram os “Regentes da Universidade da
Califórnia”, devido ao fato da BSD ter nascido na Universidade de Berkeley. A licença oficial
BSD tem sido revisada desde a sua criação, e inspirou inúmeras variantes utilizadas por outros
desenvolvedores de software (veja a seção abaixo, “Licenças estilo BSD”).
Multi® Sistemas
Princípios do Sistema Linux
Introdução ao Linux
Esta licença impõe poucas restrições quando comparada aquelas impostas por outras licenças,
como a GNU General Public License ou mesmo as restrições padrão determinadas pelo
copyright, colocando-a relativamente próxima do domínio público. (De fato, a licença BSD tem
sido chamada de copycenter, ou “centro de cópias”, em comparação com o copyright padrão e
o copyleft da licença GPL: “Leve até o copycenter e faça quantas cópias quiser.”)
Licença MIT
A licença MIT, também chamada de licença X ou de licença X11, é uma licença de
programas de computadores (software), criada pelo Massachusetts Institute of Technology. Ela
é uma licença não copyleft utilizada em software livre, isto é, ela permite a reutilização de
software licenciado em programas livres ou proprietários.
Muitos grupos utilizam a licença MIT no seu software, como os programas Expat, MetaKit,
PuTTY, as bibliotecas do projeto Mono e o sistema de Janelas X Window, este último, é o
exemplo mais conhecido.
Licença Creative Commons
O projeto Creative Commons (também conhecido pela sigla CC, figura abaixo) denomina um
conjunto de licenças padronizadas para gestão aberta, livre e compartilhada de conteúdos e
informação (coyleft), e mantém a atualização e discussão a respeito delas.
As licenças Creative Commons foram idealizadas para permitir a
padronização de declarações de vontade no tocante ao licenciamento
e distribuição de conteúdos culturais em geral (textos, músicas,
imagens, filmes e outros), de modo a facilitar seu compartilhamento e
recombinação, sob a égide de uma filosofia copyleft.
As licenças criadas pela organização permitem que detentores de
copyright (isto é, autores de conteúdos ou detentores de direitos
sobre estes) possam abdicar em favor do público de alguns dos seus
direitos inerentes às suas criações, ainda que retenham outros desses
direitos. Isso pode ser operacionalizado por meio de um sortimento de
módulos standard de licenças, que resultam em licenças prontas para
serem agregadas aos conteúdos que se deseje licenciar.
Creative Commons
Os módulos oferecidos podem resultar em licenças que vão desde uma abdicação quase total,
pelo licenciante, dos seus direitos patrimoniais, até opções mais restritivas, que vedam a
possibilidade de criação de obras derivadas ou o uso comercial dos materiais licenciados.
Ainda que se considere que as licenças são meros contratos standard entre o autor e o público,
usar tais modelos sem levar em consideração as leis locais poderia tornar as licenças
inutilizáveis. Por essa razão, a entidade desenvolveu o projeto iCommons (International
Commons), visando uniformizar a redação das licenças por ela disponibilizadas, de acordo com
as especificidades normativas de cada país.
No Brasil, as licenças já se encontram traduzidas e totalmente adaptadas à legislação
brasileira. O projeto Creative Commons é representado no Brasil pelo Centro de Tecnologia e
Sociedade da Faculdade de Direito da Fundação Getúlio Vargas, no Rio de Janeiro.
Multi® Sistemas
Princípios do Sistema Linux
Introdução ao Linux
1.3 Movimentos e Projetos do Software Livre
Aqui, serão mostrados os principais movimentos e projetos do software livre, para que você
possa entender a filosofia por de trás de cada um. Vemos a seguir, os principais movimentos e
projetos:
Movimento FSSTND
O FSSTND (Filesystem Standard), um padrão para sistemas de arquivos hierárquicos
específico para o sistema Linux, foi lançado em 14 de fevereiro de 1994. Foram lançadas
revisões em 9 de outubro de 1994 e 28 de março de 1995.
Movimento FHS
No início do ano de 1996, surgiu um movimento, com o apoio da comunidade de
desenvolvedores do BSD, que visava o desenvolvimento de versões do FSSTND para outros
sistemas do tipo Unix, além do Linux. A partir desta iniciativa foi realizado um esforço para
determinar os problemas comuns aos sistemas do tipo Unix. Como resultado da ampliação do
escopo do problema, o nome do padrão foi alterado para Filesystem Hierarchy Standard (FHS)
(padrão para sistemas de arquivo hierárquicos).
O Filesystem Hierarchy Standard (padrão para sistema de arquivos hierárquico), ou FHS,
define os principais diretórios, e o seu conteúdo, em um sistema operacional Linux ou do tipo
Unix.
O FHS é mantido pelo Free Standards Group, uma organização sem fins lucrativos formada
por importantes empresas de hadware e software, como HP, Red Hat, IBM e Dell.
Movimento Open Source
O software chamado de código aberto, ou open source em inglês, é um tipo de software cujo
código fonte é visível publicamente. O software de código aberto respeita as quatro liberdades
definidas pela Free Software Foundation. Porém, não estabelece certas restrições como as
contidas na GPL.
Os defensores do movimento Open Source sustentam que não
se trata de algo anarquista anticapitalismo, mas de uma
alternativa ao modelo de negócio para a indústria de software.
Algumas empresas comerciais como IBM, HP, Intel, Dell, entre
outras, também têm investido no software de código aberto,
juntando seus esforços para a criação do Open Source
Development Lab (OSDL), instituição destinada à criação de
tecnologias de código aberto.
A história do movimento Open Source se confunde com as
origens do UNIX, da Internet e da cultura “Hacker”.
Multi® Sistemas
Logo Open Source
Download

Princípios do Sistema Linux