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.
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.
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).
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.