Projeto Interdisciplinar I (LPIC-I) - Aula I
 

A Certificação LPI

A certificação LPI tem 3 Níveis: LPIC-I Nível Junior, LPIC-II Nível Profissional e LPIC-III Nível Senior.

A LPIC-I Nível Junior é composta de 2 provas: 101 e 102. E o asunto destas provas serão vistos neste curso.

A LPIC-II Nível Profissional também é composta de 2 provas: 201 e 202. O objetivo desta certificação é validar os conhecimentos do candidato na administração de redes pequenas e médias. Aqui (inglês) você pode encontrar mais informações sobre esta certificação.

A LPIC-III Nível Senior é composta de uma forma diferente das anteriores. Essa dispõe de 4 provas: 301 (core), 302 (ambientes mistos), 303 (Segurança) e 304 (Virtualização). Para o candidato obter a certificação é necesário fazer a prova 301 (core) junto com qualquer uma das outras provas. O objetivo desta certificação é validar os conhecimentos especializados do candidato. Aqui (inglês) você pode encontrar mais informações sobre esta certificação.

Histórico do Linux

A minha opnião pessoal é que a história do Linux começa com o sugimento de Unix em 1970. Somente mais de 20 anos depois, Linus Torvalds postaria o famoso email na lista de discursão sobre sistemas operacionais.

1970 - Lançamento do Unix

O Unix foi um dos primeiros SOs a ser construido em linguagem de alto nível e isso lhe dava grande portabilidade. Essa liguagem foi o C, criada especificamente para essa finalidade. Nesta época os computadores eram extremamente caros. E todo o software básico necessário era distribuido com o próprio hardware juntamente com os fontes de muitas aplicações. Era comum o compartilhamento de software pelos programadores. Para mais informações consulte aqui e aqui.

1984 - Projeto GNU

Durante a decada de 70 e inicio dos anos 80, o cenário na computação modou, houve o surgimento dos microprocessadores, e isso permitiu projetos de computadores baratos e pequenos, neste periodo surgiu a industria do software. Nesta epoca, reza a lenda, que Richard Stalman, contrariado por uma tentativa frustrada de conseguir o código fonte de um software que em sua opnião apresentava defeito, resolveu fundar o projeto GNU (GNU is Not Unix, coisa de Nerd!). O objetivo deste projeto era reunir software com código fonte disponível, programadores do mundo poderiam usar, modificar e redistribuir esses softwares com poucas restriçoes. Durante a decada de 80 muitos projetos de software importantes se juntaram ao GNU, dentre eles o compilador gcc base para a construção de aplicações.

1991 - Finalmente o Linux

Em 1991 Linus, postou o seguinte em uma lista de discursão:

	"Hello everybody out there using minix -

	I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

	I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

	Linus (torvalds@kruuna.helsinki.fi)

	PS. Yes – it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
	—Linus Torvalds
	

Neste email, Linus fala aos usários do Minix, SO escrito por ninguem menos que A. S. Tanenbaum (aquele do Livro de SO!). Para o Tanenbaum o Minix tinha que ser um SO educacional. Naquele email, Linus informa que já portou algumas aplicações do projeto GNU (gcc e bash) e fala que o seu SO provavelmente nunca rodaria em máquinas que não fossem os 386 da época. Linus errou feio!

O fato é que o Linux caiu como uma luva para o projeto GNU, pois este ainda não tinha um SO funcional. A partir deste momento programadores do mundo começaram o desenvolvimento do Linux. O fato é que o Linux hoje roda em mais de 50 arquiteturas de processadores diferentes (nunca rodaria em algo que não fosse 386, hein?). O projeto escolhido por Linus para o Linux foi de um kernel monolitico, altamente repudiado por Tanenbaum, que chega a chamar esse tipo de kernel de "A GRANDE BAGUNÇA". Isso iniciou discursões entre os dois, Mas isso é uma outra história.

Distribuições

A questão das distribuições é um capitulo a parte na história do Linux. Desde a postagem de Linus na lista até o sugimento da primeira distribuição, o Linux era para poucos.

Usar o Linux implicava em fazer dezenas de downloads e depois compilar todo o software, para em seguida fazer os ajustes necessários. Esse processo de compilação não era fácil.

Uma distribuição Linux consiste basicamente em uma coletânea de diversas aplicações e são direcionadas a um publico alvo específico. Por exemplo: A finada Conectiva. Era Linux para Brasileiro, O TURBO Linix é um Linux asiático focado para aquele publico. Existem distribuições para servidores como o Cientific Linux ou para desktops como foi o foco inicial do Ubuntu.

Existem alguns aspectos curiosos sobre a customização oferecidas pelas distribuições. Exemplo o Christian Linux, um Linux destinado a usuários catóticos (reza a lenda que eles modificaram o comando kill, nesta distro, afinal, matar é pecado!).

Alguns Marcos da história das distribuições:

  • 1993 o sugimento da primeira distribuição, usada em larga escala, chamada SLAKWARE, existe ainda hoje, e por sua falta de facilidade é chamada de Linux para MACHOS!
  • 1994 o sugimento do Red Hat, trouxe diversas facilidades como um instalador estilo "NEXT-NEXT-FINISH" e o gerenciador de pacotes. Isso facilitou a adoção do Linux por usuário menos experientes.

Diferenças entre Linux e Windows

QuesitoLinuxWindows
Case (Maiúsculo e Minúsculo)SensívelInsensível
Discos e MídiasMontagem de sistemas de ArquivosLetras para nomes de Unidades
ArquivosTudo é ArquivoDifere pastas e aequivos
Delimitador de Pastas/ (barra) \ (contra barra)
ExtensõesNão existe extensõesExtensões para arquivos executáveis (exe, com, bat, pif), para bibliotecas (DLL).

Tópico 103.1 - O Linux em Modo Texto

    Objetivos:
  • Uso de comandos do shell e sequencias de comandos para realizar tarefas básicas.
  • Modificar o ambiente shell, através da definição, alteração, e exportação de variáveis de ambiente.
  • Usar e editar o histórico de Comandos
  • Variável de Caminho de Comandos - PATH

Lista de Comandos

bash: é o comando que fornece o interpretador de comandos.

echo: comando usado para imprimir (ecoar) textos na sáida padrão.

env: Usado para rodar um comando em um ambiente modificado.

exec: Usado para substituir um shell pelo comando especificado. Não sendo possível substituir o shell inicial da seção.

export: é um comando interno do shell (interpretador de comandos), usado para exportar uma variável de ambiente para um processo filho.

pwd: usado para visualizar o diretório de trabalho do shell atual.

set: Usado par modificar parâmetros em tempo de execução.

unset: Usado para zerar variáveis de ambiente.

man: comando usado para visualizar a página de manual (man page) de utilitários e linguagens de programação do sistema.

uname: mostra informações do sistema. Informações tipo arquitetura, versão de kernel, sistema operaicional dentre outras.

history: é também um comando interno do shell, pode ser usado para listar o histórico de comandos. O tamanho do histórico é controlado pela variável de ambiente HISTSIZE.

Aqui neste post do Linux developer Works você encontra um ótimo tutorial sobre este tópico.

Exemplo de questões:

Quais dos seguintes comandos vai mudar o diretório de trabalho atual para o diretório home do usuário? (selecione todos possíveis)

A. cd 
B. cd .. 
C. cd ~ 
D. cd $HOME 

Resp: A,C,D

Qual dos seguintes comandos torna uma variavel acessível para todos o processos filhos:

A. echo 
B. export 
C. cat 
D. env 

Resp: B

Voce digitou os seguintes comandos e obteve a seguinte saídas:

prompt> echo $PATH
/usr/bin:/usr/local/bin:usr/sbin:opt/kde/bin
prompt> pwd
/home/anna/games
promt> ls
game1 game2 game3

quando você tentou executar o programa game1, o sistema deu a mesengem de comando não encontrado. O que você esqueceu de fazer?

A. digitar ./game1 ao invés de  game1.
B  Mudar para o diretório /home/anna primeiro.
C. Zerar a variável PATH antes de rodar o programa.
D. Ajustar as permissões de execução do arquivo

Resp: A

	
O que o seguinte comando faz?

cat ‘$TEST’ 

A.  Exibe um mensagem de erro de sintaxe
B.  Exibe o conteúdo de um arquivo chamado $TEST
C.  Espera o usuário digitar um texto e armazena em $TEST
D.  Mostra o conteudo da variável $TEST

Resp: B

O que resulta o seguinte comando?

# cat 'echo "$TEST 

A. Erro de Sintaxe
B. Exibe o valor de $TEST 
C. Exibe cat seguido de echo  seguido do valor de  $TEST 
D. Exibe echo seguido do valor  $TEST

Resp: A