sexta-feira, 12 de dezembro de 2008

curso de unix 1

CURSO DE UNIX I escrito por gato-bravo-e-brasileiro * Historia
O sistema operacional UNIX nao foi feito como algo comecial, mas como uma ferramenta para hackers, feito POR programadores PARA programadores. So para ter uma ideia, os primeiros releases eram chamados de PWB (Programmer's Work Bench).
O primeiro UNIX foi escrito por Dennis Ritchie e Ken Thompson, na AT&T Bell Labs, para uso pr¢prio. Ultilit rios foram escritos a medida que eles tinham problemas a resolver.
Pelo simples motivo que o Bell Labs nao era uma empresa de computadores, o source code foi compartilhado para universidades. Programadores brilhantes escreveram seus proprios programas e adicionaram ao UNIX.
Nestes 20 anos o UNIX foi ganhando cada vez mais programas, cada vez mais usuarios. Hoje em dia e praticamente impossivel falar em Internet sem falar em UNIX.
* O Shell
Talvez uma das razoes do poder do UNIX e que voce nao "fala" com o sistema diretamente. Ao contrario, voce "fala" com um programa chamado shell.
O que o shell faz e pegar tudo aquilo que voce digita e interpretar, tomando a acao desejada, como executando um programa ou coisa parecida.
Por exemplo, quando voce digita um comando para mostrar todos os arquivos que comecam com a letra "m":
$ cat m???
O shell procura pelos arquivos, faz uma lista deles, chama o programa cat e pede para ele mostrar os arquivos da lista. O comando cat chama o kernel atraves das "system calls" para pegar cada arquivo no disco e mostrar seu conteudo na tela.
Por que isso e importante?
Primeiro, porque voce pode escolher entre diferentes shells, cada um com diferentes funcoes e regras. Segundo porque e importante saber quais as regras que o shell usa para interpretar o que voce digita, para obter-se o resultado desejado.
Por exemplo, a regra basica que o shell usa para o espaco (" ") e separar os argumentos da linha de comando. Porem, as vezes, voce quer que o shell interprete-os de forma diferente. O shell permite que voce pegue uma frase como um unico argumento. Voce pode fazer isso usando as aspas basicamente, como no exemplo abaixo:
$ grep "Isso e apenas um parametro" arquivo.txt
Se voce entender como o shell interpreta a linha de comando isso pode ser muito util em dezenas de casos, principalmente quando estiver lidando com asteriscos ("*").
Segue abaixo a relacao entre o kernel e os programas.
+--------------------------------------------------------------------+ USUARIO +---+----------------------------------------------------------------+ dados e comandos ^ ^ do usuario saida saida v +-------------------+ shell +----+ transferencia +--+--+ comandos internos +----------------------> cat +-------+---------- + de controle +--+--+ "system calls" v v +-------------------------------------------------------------------+ Kernel de UNIX e Drivers +-------------------------------------------------------------------+
Vale lembrar que alguns comandos fazem a entrada de dados diretamente do usuario, sem a intervencao do shell. Nestes casos o unico papel do shell e chamar o programa. Um editor de texto, por exemplo, quase sempre inclue seu proprio interpretador de comandos e suas proprias regras.

ass:gato-bravo-e-brasileiro

Nenhum comentário: