1 Pós Graduação em Projeto e Gerencia de Redes de Computadores Sistemas Operacionais de Redes I - Linux Prof.: Nelson Monnerat Apresentação do Curso 1 Objetivos do Curso Sistema Operacional Unix/Linux; visão geral, histórico, instalação, sistema de arquivos, comandos básicos de shell, scripts, editores, controle de processos; Administração do sistema; procedimentos de inicialização e configuração; Gerência de usuários e de recursos; Implementação de redes baseadas em Unix. Clientes e Servidores; Acesso a máquinas Windows 2 Organização do Curso Módulo I O que é Linux? Distribuições Linux Visão Geral do Sistema Operacional Linux Módulo II Instalação e Configuração Comandos Básicos Gerenciadores de Janela - KDE Aplicativos de Escritório, Internet, etc. Módulo III Gerência de Recursos e Usuários Configurando o acesso a rede Samba Acessando Máquinas Windows 3
2 Sistemas Operacionais de Redes I - Linux Módulo I 4 O que é um sistema operacional? Um sistema operacional é o conjunto de programas básicos e utilitários que fazem seu computador funcionar. No núcleo do sistema operacional está o Kernel. O Kernel é o programa mais fundamental no computador e faz todas as operações mais básicas, permitindo que sejam executados outros programas. 5 O que é Linux? O Linux é um sistema operacional inspirado no Unix que atende à especificação POSIX ( Portable Operating System Interface ). Suporta: multitarefa real, memória virtual, bibliotecas dinâmicas, redes TCP/IP, nomes de arquivos com até 255 caracteres, proteção entre processos (crash protection). Além de muitas outras funcionalidades que deixariam esta lista extensa demais. 6
3 Como surgiu o Linux? O Linux foi originalmente desenvolvido por Linus Torvalds. Seu desenvolvimento é realizado com a ajuda de milhares de programadores espalhados por todo o mundo. Teve por objetivo ser um sistema operacional que semelhante a um Unix, com todas as suas funcionalidades, e que pudesse utilizá-lo num PC. Isso tudo aconteceu em meados de 1991, quando Linus cursava a faculdade de Computação na Finlândia. Em 5 de outubro de 1991 a seguinte mensagem circulou na usenet:...como eu mencionei há um mês, estou trabalhando em uma versão free de um sistema semelhante ao Minix para computadores AT- 386. Ele já alcançou o estágio de ser usável (embora possa não ser, dependendo do que você quer fazer), e pretendo distribuir o código fonte. É apenas a versão 0.02... mas já consegui rodar nele o bash, gcc, gnu-make, gnu-sed, compress, etc. 7 O que são Distribuições? Muitas pessoas e empresas se empenham em organizar o Kernel, uma série de aplicativos e manuais para que o sistema seja amigável. A esse conjunto de aplicativos mais o kernel dá-se o nome de Distribuição Linux. Existem desde distribuições que cabem num disquete de 1.44Mb até distribuições que ocupam vários Cds. Entre as "grandes" distribuições pode-se citar: Conectiva, SuSE, Debian, Mandrake, Red Hat, para citar algumas. Entre as distribuições nacionais: Conectiva, Kurumin, TechLinux, Kalango, entre outras. 8 Conectiva A Conectiva é uma empresa que foi criada em 28 de agosto de 1995. Sua primeira versão, o Conectiva Red Hat Linux Parolin, foi distribuída em 1997. O Conectiva Linux 10 foi a primeira grande distribuição mundial a adotar o novo kernel 2.6 em seu produto. Perfis de instalação Você pode escolher dentre alguns perfis de instalação, dependendo de como deseja utilizar o Conectiva Linux. Os perfis disponíveis durante a instalação estão descritos a seguir: Instalação Mínima Instalação Padrão Desktop Corporativo Notebook Desenvolvimento Servidor Firewall Servidor Samba Servidor de E-Mail Servidor Web Todos os Perfis 9
4 Kurumin O Kurumin é uma distribuição Linux baseada no Debian e no Knoppix; Tem foco na facilidade de uso, por isso inclui uma série de ferramentas e scripts destinados a facilitar e automatizar a instalação e uso dos programas mais comuns; O Kurumin roda direto do CD, permitindo que seja usado em qualquer máquina; Os principais recursos: Facilidade de uso; Ícones Mágicos; Suporte a aplicativos Windows; Suporte a sites e aplicativos nacionais. 10 Debian O sistema operacional é chamado Debian GNU/Linux, ou simplesmente Debian. Os sistemas Debian atualmente usam o Kernel Linux. Há trabalho em andamento para fornecer o Debian com outros Kernels, primeiramente com o Hurd. O Debian é produzido por aproximadamente mil desenvolvedores voluntários ativos espalhados pelo mundo. Embora não exista uma estatística precisa (já que o Debian não exige que seus usuários se registrem), existem fortes evidências de que o Debian é utilizado por uma ampla gama de organizações, grandes e pequenas, bem como várias centenas de indivíduos. O nome vem do nome de seu criador, Ian Murdock, e sua esposa, Debra 11 Visão geral do Linux É chamado Linux o conjunto do Kernel e demais programas, como shells, compiladores, bibliotecas de funções, etc. O sistema operacional Linux pode ser dividido, de forma genérica, em três componentes: O Kernel Aplicações de Sistema Aplicações de Usuário 12
5 O Kernel do Linux O Kernel é o núcleo do sistema e é responsável pelas funções de mais baixo nível, como: gerenciamento de memória, gerenciamento de processos e da CPU. suporte aos sistemas de arquivos, suporte aos dispositivos e periféricos conectados ao computador como: placas SCSI, placas de rede, placas de som, portas seriais, etc. 13 O Kernel do Linux O Kernel possui um número de versão e a sua distribuição pode possuir outro. O número que identifica a versão da distribuição é decidido pela empresa responsável pela versão, de acordo com padrões próprios. Conectiva 10 O Kernel possui um número de versão composto por 3 partes: um número maior, um número menor e um número de release, vmlinuz-2.6.4-52200cl O número do kernel é dado pelo grupo de programadores que cuidam do desenvolvimento do kernel. 14 O Kernel do Linux O número de série do seu kernel pode ser facilmente identificado digitando-se no prompt o comando uname -r, como no exemplo abaixo: # uname -r 2.6.4-52200cl O número menor é particularmente importante, pois: números pares identificam versões de kernel testadas e consideradas estáveis, números ímpares identificam versões em desenvolvimento, onde novos recursos estão sendo testados. 15
6 Kernel do Linux O kernel do Linux pode ser compilado para se adequar melhor ao tipo de máquina e ao tipo de tarefa que essa máquina vai executar. É possível compilar o kernel para um determinado conjunto de periféricos de um hardware, resultando assim em um kernel de menor tamanho e otimizado. O processo de compilação de um kernel não é muito simples e é recomendado apenas a administradores de sistemas mais experientes. Para maiores informações consulte: Kernel Re-Build HowTo Guia de recompilação do kernel http://www.digitalhermit.com/~kwan/kernel.html 16 Aplicações do Sistema e do Usuário O Kernel só provê os recursos que são necessários para que outros programas sejam executados; Aplicações do sistema são necessárias para fazer o sistema funcionar; Aplicações do usuário são todos os programas utilizados pelo usuário para realizar uma determinada tarefa (como um processador de texto, por exemplo). Entre as aplicações de sistema pode-se citar: init, getty, e syslog. 17 Aplicações do Sistema init getty primeiro processo lançado após o carregamento do kernel; responsável por continuar o processo de boot lançando os outros programas. garante que o getty esteja sendo executado (para que os usuários possam entrar no sistema); e adota os processos órfãos (processos filhos no qual o pai morreu), pois no Linux todos os processos devem estar em uma mesma árvore e possuírem um pai (excluindo o processo init, que não tem pai). responsável pelo login dos usuários em terminais textos (virtuais ou não). syslog responsável por capturar as mensagens de erro geradas pelo kernel ou por outras aplicações de sistema e por mostrá-las, posteriormente, quando o administrador do sistema solicitá-las. 18
7 O Ambiente Gráfico No Linux a responsabilidade pelo ambiente gráfico não é do kernel e sim de um programa especial, o Xfree86, o Servidor de Janelas X (X Window Server). O XFree86 provê apenas as funções de desenho de elementos gráficos, interação com a placa de vídeo, monitor, teclado e mouse. A interação final do usuário com a interface gráfica se dá através de programas gerenciadores de janelas, como o KDE, o WindowMaker e o GNOME, e são eles os responsáveis pela "aparência" do seu Linux. Como o ambiente gráfico consome recursos do sistema, é possível desativá-lo, principalmente em servidores. O desenvolvimento do ambiente gráfico pode ocorrer de maneira independente ao do kernel. O Linux também pode funcionar em modo texto. Nesse caso, a interação com o usuário se dá por meio de um shell, como o Bash, que interpreta e executa os comandos digitados pelo usuário. 19 Ambiente Gráfico - KDE 20 Linux Modo Texto Apesar de todas as facilidades dos Desktops, é interessante entender um pouco do Linux modo texto, pois com certeza esse modo de se trabalhar traz grandes benefícios aos usuários. Certos tipos de serviços são muito mais rápidos ao serem executados desta maneira. A maior parte das ações que são executa no Desktop podem ser feitas através de linhas de comandos, de um modo, muitas vezes, mais simples e rápido. 21
8 Shell O que é um shell? Um shell é um interpretador de comandos. Para que serve um shell? O shell pode ser considerado como um ponto a partir do qual você pode iniciar todos os comandos do Linux, inclusive o modo gráfico. Da mesma maneira que existem várias aplicações para editor de textos, cada uma com suas funcionalidades, existem também vários shells, cada um com suas configurações e funcionalidades específicas. A maior parte das diferenças existentes entre os shells mais conhecidos (bash, csh, ksh e zsh) envolvem facilidade de operação e tipos de configuração. Um exemplo é a maneira de voltar o cursor para a esquerda, que se faz no ksh utilizando-se as teclas Ctrl-H, enquanto que no bash essa movimentação é feita utilizando-se a seta para a esquerda. 22 Iniciando o Bash Primeiramente, você precisa entrar no modo texto do Linux. Caso você esteja utilizando o Linux em modo gráfico deverá pressionar Ctrl - Alt -F2. Onde está escrito nome_da_máquina login: digite seu nome de usuário e a seguir o sistema irá solicitar a sua senha com o pedido de Password:. Digite a senha e pressione Enter. Agora você deverá estar num ponto semelhante a: [usuário@nome_da_máquina diretório_atual] $ Este é o seu prompt de comandos. É importante que você entenda alguns conceitos antes de começar a utilizar o shell. 23 Konsole Também podemos acessar o shell através do aplicativo Konsole do KDE 24
9 Linux Modo Texto Nota: Os nomes de arquivos no Linux são case-sensitive, ou seja, distinguem maiúsculas de minúsculas. Sendo assim, um nome de arquivo como: Teste é diferente de teste e também de teste. As extensões não existem como forma limitante do nome do arquivo, elas são parte do nome do arquivo. Alguns aplicativos utilizam as extensões para poder manipular os arquivos. Tab Completion: Quando digitando um comando ou nome de arquivo muito longo, basta que seja digitado os primeiros caracteres desse comando e aperte a tecla Tab. O shell se encarrega de completar o resto do nome. Nem todos os nomes podem ser completados até o final, pelo fato de existirem outras opções no processo de complementação. 25 Estrutura de Diretórios do Linux Diretório / /bin /boot /dev /etc /home /lib /mnt /proc /root /sbin /tmp /usr /var Diretório raiz do sistema de arquivos. Arquivos executáveis de comandos essenciais. Arquivos necessários à inicialização do sistema. Arquivos de dispositivos do sistema. Arquivos de configuração do sistema. Lugar onde ficam as pastas locais dos usuários. Arquivos de bibliotecas essenciais ao sistema, utilizadas pelos programas. Usualmente é o ponto de montagem de dispositivos. Informações do kernel, dos processos e interrupções da máquina. Pasta local, ou home, do superusuário. Arquivos relacionados diretamente ao sistema. Normalmente só o superusuário tem acesso a estes arquivos. Pasta de arquivos temporários. Descrição dos arquivos que estão nesse diretório Arquivos pertencentes aos usuários, bem como documentação do sistema, dentre outros tipos de arquivos. Pasta onde são guardadas informações variáveis sobre o sistema. 26 Linux Modo Texto O modo texto do Linux é composto por terminais. Um terminal, ou console, é o conjunto formado pelo teclado e o monitor, que constitui o dispositivo padrão de entrada e saída de dados. No Linux, existem terminais virtuais que podem ser ativados e alternados pela seqüência de teclas Ctrl-Alt-Fn, onde n é um número entre um e sete. Você tem sete terminais virtuais, como padrão, nos quais pode estar trabalhando ao mesmo tempo. O terminal 7 é o terminal gráfico por convenção. 27