CARACTERÍSTICAS DO UNIX E DO LINUX

 


O Sistema Operacional UNIX possuí as seguintes características:

 

 

Quando um usuário executa mais de um comando ao mesmo tempo, geralmente é somente um que necessita a interação com o usuário. Os demais comandos executados são na sua maioria comandos que não exigem a atenção do usuário, sendo tarefas demoradas. Quando isto ocorre, dizemos que os programas que o usuário está executando sem a interação ficam em Background. O programa que o usuário está executando e interagindo fica em Foreground.

 

 

 

Para o bom prosseguimento do curso faz-se necessário o entendimento de certos termos que serão muito utilizados nas explicações e textos. Estes termos fazem parte do jargão do Unixe e Linux e devem ser conhecidos, pois toda a bibliografia e documentação se utilizam deles. São eles:

 

 

 

 

 


Usuários

             Dentro do sistema existem dois tipos de usuários: normal e super-usuário. O usuário comum é aquele que tem acesso limitado somente a seus dados e arquivos. Se tentar acessar dados de outro usuário, o sistema, dependendo das permissões configuradas, não deixará, emitindo uma mensagem de erro.

 

             O super-usuário ou conta root é uma conta com poderes supremos sobre toda a máquina. Com ela pode-se acessar qualquer arquivo que se encontra na máquina, removê-lo, mudá-lo de lugar, etc. O esquema de permissão e segurança do Unix/Linux não se aplica ao super-usuário.

 

Existem também certos comandos que só podem ser executados quando o usuário tem permissão de super-usuário. Estes comandos geralmente servem para a manutenção do sistema e não devem ser deixados à disposição de usuários comuns devido à complexidade e perigo do mal uso destes comandos.

 


Comandos

 

Formato Geral de um Comando: comando [opções] [argumentos]

 

 

·        Comando – Comando ou programa a ser executado

·        Opções – Modificadores do comando (opcional)

·        Argumentos – Define o objeto a ser afetado pelo comando (opcional)

 

A maioria dos comandos Unix/Linux possuem a sintaxe compatível ao formato acima. Temos o nome do comando, seguido de opções e argumentos. As opções, quando colocadas, devem sempre preceder os argumentos.

 

Observar que os caracteres separadores dos campos da linha de comando são o espaço em branco e o <Tab>. Um outro detalhe, muito importante, é o fato de que o Unix/Linux faz distinção entre os caracteres maiúsculos e minúsculos. Portanto, para o Unix/Linux, Ls é diferente de ls.

 

Quase sempre as opções dos comandos são precedidas pelo caractere "-" (menos) ou "+" (mais) e podem entrar em qualquer ordem e posição na linha de comando, mas sempre antes dos argumentos (há poucas exceções). Na maioria das vezes as opções são representadas por letras, podendo-se agrupar uma série de letras em uma única opção. Por exemplo, as opções "-w -l -c" do comando wc podem ser escritas como "-wlc". Existem também opções que são mutuamente exclusivas, não podendo aparecer ao mesmo tempo em um comando.

 

O terceiro tipo de opção que pode existir em um comando, é a opção que exige logo após, um argumento específico. Neste caso, quase sempre esta opção é colocada separada, precedida por "-" ou "+" e seguida de seu argumento Caso ela seja colocada juntamente com as demais opções, ela deve ser a última da lista.

 

Um detalhe que gera muita confusão para o iniciante do sistema Unix/Linux é o fato de que as opções variam de comando para comando, tornando-se difícil uma memorização das mesmas. Se isto acontecer com você, não se preocupe, pois poucas pessoas sabem todas as opções de todos os comandos.

 

Os argumentos definem os objetos sobre os quais o comando será aplicado. Temos como exemplos de argumentos: arquivos, periféricos, etc.

 


Principais diretórios

Os diretórios de um sistema de arquivos têm uma estrutura pré-definida, com poucas variações. A seguir ilustramos os principais:

·        /home: raiz dos diretórios home dos usuários.

·        /boot: arquivos de boot (kernel do sistema, etc)

·        /var: arquivos variáveis, áreas de spool (impressão, e-mail, news), arquivos de log

·        /etc: arquivos de configuração dos serviços

·        /usr: aplicações voltadas aos usuários

·        /tmp: arquivos temporários

·        /mnt: montagem de diretórios compartilhados temporários

·        /bin: aplicações de base para o sistema

·        /dev: arquivos de acesso aos dispositivos físicos e conexões de rede

·        /lib: bibliotecas básicas do sistema

 


O diretório HOME

Cada usuário possui um diretório especial, chamado "diretório home" (casa), onde são armazenados:

·        arquivos e diretórios pessoais de trabalho

·        e-mails já lidos (folders pessoais)

·        arquivos de configuração individuais

·        configuração das aplicações usadas

 

O diretório home do usuário é o seu local de início de sessão de trabalho (via shell ou gráfica). O usuário possui plenos poderes de acesso ao seu diretório home (e seus sub-diretórios), e normalmente não pode criar arquivos fora dele. O diretório home de cada usuário é normalmente inacessível aos outros usuários, mas isso pode ser controlado pelo administrador do sistema (root).

 


Algumas Características do Linux

·        É de graça e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para a melhoria e crescimento deste sistema operacional;

·        Convivem sem nenhum tipo de conflito com outros sistemas operacionais (como o DOS, Windows, OS/2) no mesmo computador;

·        Suporte a nomes extensos de arquivos e diretórios (255 caracteres);

·        Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc.;

·        Proteção entre processos executados na memória RAM;

·        Suporte ha mais de 63 terminais virtuais (consoles);

·        Modularização - O Linux somente carrega para a memória o que é usado durante o processamento, liberando totalmente a memória assim que o programa/dispositivo é finalizado;

·        Devido a modularização, os drivers dos periféricos e recursos do sistema podem ser carregados e removidos completamente da memória RAM a qualquer momento. Os drivers (módulos) ocupam pouco espaço quando carregados na memória RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo);

·        Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico, falha em algum hardware (queima do processador, placa mãe, etc.);

·        Não precisa de um processador potente para funcionar. O sistema roda bem em computadores 386sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado 8MB de RAM);

·        O crescimento e novas versões do sistema não provocam lentidão, pelo contrário, a cada nova versão os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos úteis e melhor desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x);

·        Não é requerida uma licença para seu uso. O Linux é licenciado de acordo com os termos da GPL;

·        Acessa sem problemas discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac, etc;

·        Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM;

·        Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. O Linux tem suporte nativo a redes TCP/IP e não depende de uma camada intermediária como o Winsock. Em acessos via modem a Internet, a velocidade de transmissão é 10% maior;

·        Roda aplicações DOS através do DOSEMU. Para se ter uma idéia, é possível dar o boot em um sistema DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema;

·        Roda aplicações Windows através do WINE;

·        Suporte a dispositivos infravermelho;

·        Suporte a rede via rádio amador;

·        Suporte a dispositivos Plug-and-Play;

·        Suporte a dispositivos USB;

·        Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça;

·        Roteamento estático e dinâmico de pacotes;

·        Ponte entre Redes;

·        Proxy Tradicional e Transparente;

·        Possui recursos para atender a mais de um endereço IP na mesma placa de rede, sendo muito útil para situações de manutenção em servidores de redes ou para a emulação de "mais computadores" virtualmente. O servidor WEB e FTP podem estar localizados no mesmo computador, mas o usuário que se conecta tem a impressão que a rede possui servidores diferentes.

·        O sistema de arquivos usado pelo Linux (Ext3) organiza os arquivos de forma inteligente evitando a fragmentação e fazendo-o um poderoso sistema para aplicações multi-usuárias exigentes e gravações intensivas;

·        Permite a montagem de um servidor Web, E-mail, News, etc. com um baixo custo e alta performance. O melhor servidor Web do mercado, o Apache, é distribuído gratuitamente junto com o Linux. O mesmo acontece com o Sendmail;

·        Por ser um sistema operacional de código aberto, você pode ver o que o código fonte (o que foi digitado pelo programador) faz e adapta-lo as suas necessidades ou de sua empresa. Esta característica é uma segurança a mais para empresas sérias e outros que não querem ter seus dados roubados (você não sabe o que um sistema sem código fonte faz na realidade enquanto esta processando o programa);

·        Suporte a diversos dispositivos e periféricos disponíveis no mercado, tanto os novos como obsoletos;

·        Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.);

·        Consultores técnicos especializados no suporte aos sistemas espalhados por todo o mundo;

·        Entre muitas outras características que você descobrirá durante o uso do sistema.

 


Interpretador de Comandos

Também conhecido como shell. É o programa responsável em interpretar as instruções enviadas pelo usuário e seus programas ao sistema operacional (o kernel). Ele que executa comandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo executável. É a principal ligação entre o usuário, os programas e o kernel. O Unix/Linux possui diversos tipos de interpretadores de comandos, entre eles podemos destacar o bash, ash, csh, tcsh, sh, etc. Entre eles o mais usado é o bash (no Linux). O interpretador de comandos do DOS, por exemplo, é o command.com.

 

 

 

Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e não-interativa:

 

·        Interativa – Os comandos são digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usuário para executar uma tarefa, ou próximo comando.

 

·        Não-interativa – São usados arquivos de comandos criados pelo usuário (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do término do comando, o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento. Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo comando ou para compilar algum programa complexo.

 

O shell bash possui ainda outra característica interessante: A complementação dos nomes. Isto é feito pressionando-se a tecla TAB. Por exemplo, se digitar "ls tes" e pressionar <tab>, o bash localizará todos os arquivos que iniciam com "tes" e completará o restante do nome. Caso a complementação de nomes encontre mais do que uma expressão que satisfaça a pesquisa, ou nenhuma, é emitido um beep. A complementação de nomes funciona sem problemas para comandos internos.

 

Exemplo: ech (pressione TAB). ls /vm(pressione TAB)

 


Ultima Alteração: 16/05/2003 – Prof. Marcos Aurelio Pchek Laureano