Introdução ao Linux Thiago Yukio Kikuchi Oliveira [email protected] O que é Linux??? Definição: Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlândia. Mas, o que é um Sistema Operacional?? O que é Sistema Operacional (S.O.)? Definição: software responsável pela criação do ambiente de trabalho da máquina. Consiste na camada intermediária entre o aplicativo e o hardware da máquina. É o interpretador básico de comandos, e é a interface pela qual o usuário tem acesso aos recursos que o hardware oferece. Software Sistema Operacional Hardware Windows ou Linux ou Mac OSX, etc.. Kernel (núcleo) de um Sistema Operacional Kernel de um sistema operacional é entendido como o núcleo deste ou, numa tradução literal, cerne. Ele representa a camada mais baixa de interface com o Hardware, sendo responsável por gerenciar os recursos do sistema computacional como um todo. É no kernel que estão definidas funções para operação com periféricos (mouse, disco, impressora, interface serial/interface paralela), gerenciamento de memória, entre outros. Software Sistema Operacional Kernel OBS: o kernel por si só não tem muitas funcionalidades. Hardware Exemplos de S.O.s UNIX - 1969 DOS Windows Mac OSX LINUX - 1991 Sistema Operacional: UNIX Um sistema operacional multiusuário e multitarefa desenvolvido por Ken Thompson e Dennis Ritchie no Bell Laboratories da AT&T em 1969, para ser usado em minicomputadores. O UNIX é considerado um sistema operacional poderoso que, pelo fato de ter sido escrito na linguagem C, é mais portável , isto é, menos preso a uma determinada máquina. Era (e ainda é) muito utilizado em servidores. S.O. Comercial (caro) e com código-fonte fechado Mas.. o que é código-fonte fechado??? Código-Fonte Os computadores não entendem a linguagem humana. Somente entendem números. (Linguagem binária formada por 0 e 1). Ao escrever um software deveríamos escrever em binário para que os computadores pudessem entender. Exemplo: 11111111 00010011 Para evitar isso, foram desenvolvidos os compiladores. Compiladores são uma espécie de “tradutores” de linguagem humana para linguagem de máquina. Código do programa Linguagem A Código do programa Linguagem B Código do programa Linguagem C Compilador Linguagem A Compilador Linguagem B Compilador Linguagem C Linguagem de máquina (excutável) Código-Fonte Fechado Código fonte fechado significa que somente o executável do programa (linguagem de máquina) é distribuído. Problemas causados pelo código fonte fechado: Sem o código-fonte não conseguimos modificar o software Não se pode aprender como o software realmente funciona: um estudante de mecânica pode desmontar o motor do seu carro para saber como ele funciona por dentro; um estudante de computação não pode ver como o Windows funciona por dentro. Mas no começo da década de 80 não existia Windows... quem predominava era o Unix... ... e pirataria de software não era fácil como hoje! E os estudantes precisavam aprender a usar um sistema Unix Surge então, o Minix... Surge o Minix Para poder dar aula sobre Sistemas Operacionais, um professor holandês chamado Andrew Tannebaum criou um pequeno sistema operacional similar ao Unix. O pequeno sistema operacional foi batizado de Minix. Graças ao Minix os estudantes poderiam instalar um sistema similar ao Unix em casa para poder “brincar” com ele. E o melhor, de graça! Logo o Minix tornou-se popular e começou a ser utilizado na maioria dos cursos de computação na matéria de Sistemas Operacionais. Problema: Apesar de o Minix ser gratuito e ter o código-fonte aberto o mesmo era limitado. Além disso o código-fonte não podia ser modificado e redistribuído. Surge então, a Free Software Fundation, a GPL e o sistema operacional GNU Free Software Foundation e S.O. GNU A Free Software Foundation (FSF, Fundação para o Software Livre) é dedicada à eliminação de restrições sobre a cópia, redistribuição, entendimento e modificação de programas de computadores. Criadora e mantenedora da licença GPL Faz isso promovendo o desenvolvimento e o uso de software livre (código fonte aberto) em todas as áreas da computação mas, particularmente, ajudando a desenvolver o sistema operacional GNU. GNU: Projeto de Sistema Operacional iniciado em 1984 visando desenvolver um S.O. compatível como padrão UNIX e com código-fonte aberto. Problemas no desenvolvimento do S.O. GNU: o kernel do sistema (batizado de HURD) estava sendo desenvolvido lentamente em relação aos demais softwares GNU. Richard Stallman Fundador da FSF GPL – GNU Public License GNU General Public License (Licença Pública Geral), GNU GPL ou simplesmente GPL, é a designação da licença para software livre idealizada por Richard Stallman no final da década de 1980, no âmbito do projecto GNU da Free Software Foundation (FSF). Em termos gerais, a GPL baseia-se em 4 liberdades: A liberdade de executar o programa, para qualquer propósito (liberdade nº 0) A liberdade de estudar como o programa funciona e adaptálo para as suas necessidades (liberdade nº 1). O acesso ao código-fonte é um pré-requisito para esta liberdade. A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo (liberdade nº 2). A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie deles (liberdade nº 3). O acesso ao código-fonte é um pré-requisito para esta liberdade. História do Linux: o nascimento do kernel Em 1991, Linus Torvalds um estudante de computação da faculdade de Helsinki, cansou de usar o Minix. Linus alegava que o Minix era muito limitado. Resolveu então, fazer o seu próprio clone do Unix. Começou então a desenvolver o kernel do sistema. Linus postou uma mensagem em um fórum na Internet, chamando outras pessoas para ajudá-lo a desenvolver o kernel. Para isso, teve que abrir o código do kernel e o lançou sob a licença GPL. O kernel precisava de um nome, e todos os envolvidos concordaram em chamá-lo de LINUX. E resolveram usar um pingüim como mascote. Problema: Foi desenvolvido somente o kernel, com alguns comandos básicos. O usuário tinha que encontrar ou codificar outros programas. Linus Torvalds GNU encontra o Linux Linux encontra o GNU Richard Stallman Fundador da FSF GNU: Projeto de Sistema Operacional iniciado em 1984 visando desenvolver um S.O. Compatível como padrão UNIX e com código-fonte aberto. Problemas no desenvolvimento do S.O. GNU: o kernel do sistema (batizado de HURD) estava sendo desenvolvido lentamente em relação aos demais softwares GNU. Linus Torvalds Linux: Kernel desenvolvido por Linus Torvalds e outros colaboradores Problemas do Linux: Foi desenvolvido somente o kernel, com alguns comandos básicos. O usuário tinha que encontrar ou codificar outros programas. Nasce o GNU/Linux Junção dos softwares GNU com o kernel Linux formaram o GNU/Linux. Atualmente, mais conhecido como Linux. Características do sistema Gratuito Código-fonte aberto (GPL – General Public License) Sistema Multiusuários Sistema Multitarefa Baixa vunerabilidade à vírus Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha, Arm, etc.). Distribuições Linux Atualmente, o que é chamamos de “Linux” é o kernel + um conjuntos enorme de software. Essa combinação resulta no que chamamos de Distribuições Linux. As distribuições mais conhecidas são: