Linux: Introdução ao sistema operativo

Linux

Hoje começo uma série de artigos sobre o Linux. Os primeiros serão uma ligeira introdução ao mundo Linux e dos sistemas em geral. Com esta série, conseguem aprender do zero a trabalhar em Linux.

Screen Shot 2016-01-05 at 23.02.27

A definição de Linux, depende do contexto onde é utilizada. A palavra Linux, refere o Kernel do sistema operativo e não o kernel e software.

Existe ainda o termo Unix que na prática significa o mesmo, mas atualmente é uma marca e uma especificação detida pelo open group. Só software certificado por eles se pode chamar de Unix.

O Linux é um software open source com uma grande comunidade de suporte.

O que é e o que faz o kernel?

O kernel é o núcleo de qualquer sistema operativo. É o controlador principal que gere entre muitas cosias a memória. Por exemplo, se duas aplicações quiserem escrever para o disco em simultâneo, o kernel é quem decide quem escreve primeiro. É o responsável pelo multitasking.

Screen Shot 2016-01-05 at 23.03.12

Quando o computador inicia, arranca um programa chamado boot loarder. A função do boot loader é disponibilizar ao utilizador uma maneira de escolher um kernel para iniciar. Depoisd e escolhido, é trabalho do kernel iniciar toda GUI.

O que é open source

Linux trovalds começou o Linux como hobby (Hobby? Pois…) que disponibilizou a toda a gente para ajudarem o desenvolvimento. O software tem o que é chamado de código fonte. O código fonte é uma linguagem desenvolvida para ser humanamente lida e escrita. Esser código fonte é depçois compilado para linguagem máquina que gera algo que o computador corre.

Esse código fonte pode ser como vemos por exemplo no Windows comercial, o que significa que temos o direito de utilizar o software mas não podemos ver o código, fazer engenharia reversa etc.

A filosofia de código aberto (open source) é que temos o direito de utilizar o software, bem como modificar o código para uso pessoal. O objetivo é partilhar essas alterações com a comunicadade e construir melhor código. Existem várias variantes de código aberto com vários tipos de diferenças que falarei a seu tempo.

O Linux era até alguns anos atrás pouco adoptado por ser um sistema pouco user friendly no sentido em que a interface gráfica era limitada ou inexistente e a interacção o sistema era feita em grande parte através de comandos na shell.

O que é um comando?

Um comando é na sua essência um programa que desempenha determinada tarefa e é corrido na shell (linha de comandos do Linux basicamente).

Screen Shot 2016-01-05 at 23.03.45

Um comando pode ser de vários tipos:

  • Comandos integrados na shell – São comandos que vêm pré-instalados  para serem utilizados na shell. Um exemplo é o comando ‘cd’ que falaremos depois dos conceitos básicos.
  • Comandos que vêm em diretorias especiais do sistema – Estes comandos estão normalmente configurados out-of-the-box. São comandos adicionados pela comunidade e que já são aceites. Mais tarde são adicionados na variável de ambiente PATH(A PATH é igual em windows)
  • Alias – Um alias pode mapear um nome escolhido para o nome de um comando qualquer. Podemos ver isto como um nickname para o comando.

Os sistemas baseados em Linux contam com distribuições. As distribuições são versões  do sistema operativo lançadas por diferentes comunidades. Apesar de todas utilizarem o mesmo kernel, em termos de interface gráfica diferem.

Quando escolhemos um sistema baseado em Linux convém termos alguns aspectos em conta.

A primeira coisa que temos de ver é qual o objectivo da máquina em que estamos a instalar o sistema. Se queremos um servidor, não precisamos da interface gráfica e podemos ter só a shell o que permite poupar recursos de hardware por exemplo.

Determine quais as funções da máquina. É uma máquina servidor que vai ser acedida por muitos utilizadores? É uma máquina cliente que só vai correr um editor de texto?

Vida e tolerancia a falhas. O software é normalmente atualizado. Esse periodo chamasse release cycle. Os softwares mais antigos são suportados só por um tempo fixo. Esse tempo é chamado maintenance cycle ou life cycle findo esse tempo são considerados como EOL(end of life).

Backward compatibility. O utilizador antes de instalar qualquer sistema deve ver qual o software que precisa, o hardware que tem e se o sistema a ser instalado é compativel com versões anteriores.

No próximo artigo vou falar de aplicações open source e licenças.

Fonte das imagens