Linux: Introdução ao sistema operativo – parte 2

Linux

Neste artigo vou dar uma introdução de algumas aplicações open source em linux bem como algum instalado out-of-the-box.

O software linux geralmente é classificado entre três categorias:

  • Software de servidor – Software que não tem interação directa com o monitor e teclado da máquina. O seu propósito é servir clientes. Apache(servidor web) por exemplo.
  • Software de cliente – Servidores web, editores de texto, jogos entre outros.
  • Utilitários – Software que existe para facilitar a interação com o sistema operativo. Uma ferramenta para configurar a impressora, o teclado etc.

O linux é muito utilizado como servidor, por ser tão eficiente e de baixo custo É comum em uso caseiro e empresarial vermos servidores linux a correr vários tipos de serviço.

Servidores web – Este tipo de serviço permite disponibilizar paginas web por http ou a sua versão segura https. O servidor mais popular é o Apache seguido do nginx.

Servidores de e-mail – Estes serviços permitem enviar e recepcionar e-mails. É importante referir 3 diferentes serviços que são necessários para enviar e-mails.

  • Mail transfer Agent – Descobre qual o servidor que vai receber o e-mail e reencaminha utilizando SMTP. Podem haver vários MTA´s no caminho. Como exemplo de MTA temos o sendmail o postfix;
  • Mail delivery agent – Guarda o e-mail recebido pelo MTA na caixa de entrada do utilizador.
  • Servidor POP / IMAP – São dois protocolos que permitem que um software de e-mail cliente comunique com um servidor de e-mails e conversem entre eles.

O kernel de linux conta também com um módulo de partilha de ficheiros chamado Network File System (NFS) Este módulo permite ao utilizador montar na maquina uma drive remota como se esta estivesse localmente instalada.

Outros serviços são:

  • Domain Name Server (DNS) – Este servidor é responsável por mapear os endereços ip em nomes. Por exemplo, suponhamos que o ip 1.1.1.1 é o ip publico do servidor do wordpress. Quando no browser vamos aceder a wordpress.pt, este pergunta qual o ip associado ao nome a um servidor DNS algures. Um serviço exemplo para Linux é o bind.
  • Dynamic host configuration protocol (DHCP) – Este serviço é responsável por atribuir ip´s privados dinamicamente às máquinas da rede.
  • Lightweight directory access – Este serviço é responsável pelas contas de utilizador, periféricos do dominio etc.

Do lado desktop, o linux corre um sistema chamado de x windows ou x11 que fornece ao sistema um modo de dispor os elementos gráficamente, bem como interação com o teclado e rato. Este sistema incorpora os gestores de janelas para gerir as janelas do GUI, os icons entre outros. Existem vários gestores. Compiz, fvwm, enlightenment entre outros .  Tudo isto está num ambiente de trabalho linux. Existem vários ambientes de trabalho para destinos diferentes (mais leves ou mais pesados). Os principais são o KDE e o GNOME.

Todas estas ferramentas, são a um nível básico, geridas pela shell. O trabalho da shell é aceitar comandos para serem passados para o kernel para serem executados.

Screen Shot 2015-12-07 at 15.56.13

No exemplo anterior, foi escrito o comando “pwd”, enviado para a shell e impresso nesta um output do comando. “/Users/diogoaleixo”.

A shell contem o que é chamado de prompt. A prompt é o que antecedo o comando no exemplo anterior e que nos indica duas coisas:

  • O nome do localhost. “Diogos-MacBook-Pro”;
  • O diretorio onde estamos posicionados. Neste caso estávamos na diretoria home (“~”) ou diretoria pessoal do utilizador;

O Linux fornece vários tipos de shell que se distinguem no que possibilitam o utilizador personalizar e nos comandos nativos desta. A bourne shell c shell. Existem outras, mas estas duas são a referencia.

As shells contêm também editores de texto como o vi, vim (vi atual), nano, emacs entre outros. Todos têm uma curva de aprendizagem diferente. Mais à frente falaremos de alguns deles.

Outra funcionalidade base de uma shell é instalar, atualizar e remover módulos do sistema.  Esses módulos são atualizações do kernel, utilitários, aplicações cliente entre outras.

Esses módulos, vêm em pacotes ou packages. Esses pacotes contêm vários ficheiros de código fonte do novo módulo. A shell fornece para instalação dos packages um package manager. Um package manager tem como função manter o normal funcionamento e consistência entre pacotes. Dependendo da distribuição, Debian ou Red-Hat o gestor de pacotes pode ser respetivamente o apt ou ypm.

No próximo artigo irei falar das licenças deste mundo e desmistificar alguns aspectos.

Fonte das imagens