Introdução ao Linux Professor Breno Leonardo G. de M. Araújo Sistema Operacional Linux Embora o Sistema Operacional Microsoft Windows ainda seja predominante no mercado de desktops e Notebooks,já é, bastante comum, encontrarmos equipamentos que são vendidos com algum distribuição do Sistema Operacional Linux que é um sistema open source com diversos aplicativos também gratuitos e que podem atender tanto as necessidades de usuários domésticos e pequenas empresas, como também possui distribuições mais robustas voltada para o mercado corporativo (servidores de infraestrutura, segurança de rede e Banco de dados entre outros ). Linux - Histórico O Linux é um clone do UNIX criado pelo Filandês Linus B. Torvalds que disponibilizou sou código fonte na internet para que programadores do mundo todo pudessem contribuir com a criação do S.O. O Linux está Licenciado soba GPL (GNU public License) e seu código permanece disponíveis, existem várias distribuições entre as mais famosas: Linux Oferece : Sistema Operacional Multitarefa e Multiusuário de 32 e 64 Bits Sistema Grafico X-Windows Suporte a diversas linguagens: Java, C, C++, Pascal e etc... Suporte a protocolos de Rede: TCP/IP, IPX, Appletalk e NetBIOS Memorial virtual Estabilidade Permissão de arquivos Linux - Visão Geral Interpretador de Comandos, é a interface entre o usuário e o Kernel – O Shell padrão é o bash. Shell Kernel Hardware Camadas do Sistema Operacional Núcleo do S.O, parte mais próxima do núcleo físico (hardware), composta de chamadas ao sistema, acesso aos dispositivos de E/S e de gerencia aos recursos da Máquina . Linux - características Script – é um Arquivo contém comandos shell e são executados sequencialmente. Linux – S.O Multitarefa – Os programas são executados em peseudoparalelismo, o Kernel escalona a execução deles reservando-lhes uma fatia de quantum, um espaço em memória e um espaço em disco, quando o quantum termina, salva o contexto e executa o próximo processo da fila, ou seja, o Linux é um sistema operacional multitarefa preemptiva. Assim como o Windows NT/2000/XP/2003/Vista/2008/7. Linux - características Linux – S.O multiusuário – Permite que mais de um usuário acesse o computador simultaneamente, no mesmo computador ou por meio de terminais virtuais ou ainda remotamente. Por ser multiusuário, cada usuário possui propriedade de arquivo e autorização relacionadas a ele. Há dois tipos de usuários o root (ou superusuário) que pode manipular todos os recursos do S.O cujo prompt é #, e os usuários comuns que sofrem restrições e o prompt é $. Linux - características Linux – Memória Virtual – O Linux é um S.O com memória virtual paginada, isso quer dizer que podemos ter programas em execução cujo tamanho é maior que o da memória disponível. O Linux obedece o padrão criado IEEE posix (Portable Operating System Interface Unix), que tem como objetivo garantir a portabilidade do código-fonte de um programa a partir de um sistema operacional que atenda as normas POSIX para outro sistema POSIX, desta forma as regras atuam como uma interface entre sistemas operacionais distintos. Linux - características Linux possui um padrão gráfico X-Windows System que define um ambiente gráfico básico tipo ClienteServidor, sem no entanto definir um gerenciador de janelas padronizado. Um gerenciador de janelas consiste em um software rodando sob x-windows system que é responsável pelas funções de ajuste de tamanho de uma janela, minimização e maximização. Existem vários gerenciadores de janela para Unix e Linux como: KDE, GNOME, XFACE, ENLIGHTMENT entre outros. Linux – Sistema de Arquivos O Linux organiza suas informações em arquivos. No MS-DOS os dispositivos como HD´s e CD-Roms são representados por letras A:B:C:D. No Linux por diretório. Ex.: /mnt/floppy /mnt/cd-rom /mnt/sda1. No Linux os arquivos podem usar até 255 caracteres e mais de um ponto, não existe o conceito de extensão de arquivos. Ex.: programas.srv.tar.gz O Linux é case sensitive, ou seja, diferencia letras maiúsculas de minúsculas. Ex.: Os arquivos Relatorio, relatório e RELATORIO são diferentes. Linux – Sistema de Arquivos Os seguintes não podem usada em nomes de arquivo: !@#$%*(){}[]’”?|,<>`=\/. Arquivos Executáveis * Backup ~ Link Simbólico Pipe | Socket = Arquivos e Diretórios Ocultos . Linux – Tipos de Arquivos Comuns: Arquivos texto ASCII, Texto não ASCII, shellscript, binário executáveis. Diretórios: São arquivos que contém os nomes de outros arquivos. Links: É um arquivo que faz referência a outro arquivo ou diretório. Device files: São arquivos utilizados para representar dispositivos de Hardware. Ex.: Porta de impressora /dev/lp1 Sockets: São arquivos usados para comunicação entre processos. Linux – Sistema de Arquivos O Linux é capaz de utilizar vários sistemas de arquivos além do EXT2, tais como: Minix, EXT, EXT3(EXT2 melhorado com recuperação rápida de dados em caso de perda de energia – Journaling) , ReiserFS, XFS, JFX, ISO 9660 (CD-ROM) entre outros. Journaling - Suportado por sistemas de arquivos a partir do Kernel 2.4 , basicamente o FS mantém um journal (log) onde são armazenadas todas as mudanças feitas em arquivos do disco. Quando qualquer erro acontece ou o sistema é desligado incorretamente. Linux – Sistema de Arquivos É possível localizar todas as operações que haviam sido completadas, restaurando a consistência do sistema de arquivos sem a necessidade de vasculhar arquivo por arquivo, como faz o checkdisk do Windows ou FSCK do próprio Linux. O uso de sistemas de arquivo EXT3 e ReiserFS é recomendado principalmente para quem não tem nobreak. Linux – REISERFS e EXT3 O ReiserFS oferece um grande proteção contra o corrompimento do sistema de arquivos, mas em compensação pouca proteção para os aquivos em si. O EXT3 por sua vez oferece uma maior proteção aos aqruivos, mas em troca oferece menor desempenho e uma proteção mais fragil para o File System (FS). O Ext3 guarda informações tanto sobre a metadata, ou seja, informações sobre o espaço ocupado pelo arquivo, suas permissões como também informações sobre os dados em si, o ReiserFS guarda apenas informações sobre a metadata. Linux – Mapeamento de Arquivos para Discos Os i-nodes são elementos essenciais quando você cria um arquivo um i-node é associado a ele. Bloco 0 ou Bloco de Boot Super Bloco Contém o BOOT do S.O Tabela de i-nodes Contém as Informações sobre o FS n° de i-nodes Livres, n ° de blocos no disco e n ° de blocos Livres no disco Tabela de Dados Contém os Arquivos e diretórios Linux – i-node Os i-nodes contém as seguintes informações: UID (id do usuário dono) e GID (id do grupo do dono); Tipo de arquivo (comum, diretório, Link, dispositivos e etc); Permissão do aqruivo (rwx) ( read – write – execute); Data e hora da criação, acesso e última modificação; Data e hora da modificação do i-node; Tamanho do arquivo Localização dos blocos onde está armazeno o arquivo. Linux – Estrutura de Diretórios / (diretório raiz) /boot (Kernel do sistema) /dev (arquivos de dispositivos de hardware /tmp (arquivos temporários) /etc (configuração do sistema) /lib (bibliotecas compartilhadas) /mnt (ponto de montagem temporário do FS) /home (diretório do usuário) /var (dados variáveis /root (diretório do usuário root)