Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds?



Documentos relacionados
16:21:50. Introdução à Informática com Software Livre

Universidade Federal de Goiás. Alexandre Ferreira de Melo CERCOMP / UFG

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

ENDEREÇOS DE REDE PRIVADOS até até até Kernel

História. Sistema Operacional

SOFTWARE LIVRE. Distribuições Live CD. Kernel. Distribuição Linux

Introdução a Sistemas Abertos

SISTEMA OPERACIONAL & SOFTWARE LIVRE

Sistema Operacional LINUX

Everson Scherrer Borges João Paulo de Brito Gonçalves

Operador de Computador. Informática Básica

Aula 02. Introdução ao Linux

Instalando o Debian em modo texto

Partição Partição primária: Partição estendida: Discos básicos e dinâmicos

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

Estudo de Caso II: LINUX

Introdução ao Linux: Parte I

Curso de Linux Básico com o Linux Educacional

Aula 01. Introdução ao Linux

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Oficina de ferramentas de Gerência para Redes em Linux. Prof. Jefferson Santiago

Aula 4 Comandos Básicos Linux. Prof.: Roberto Franciscatto

Informática. Aula 03 Sistema Operacional Linux. Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos

Sistema Operacional Unidade 5 - Iniciando o modo texto. QI ESCOLAS E FACULDADES Curso Técnico em Informática

NÚCLEO DE CIDADANIA DIGITAL Caminho Livre para o novo mundo! Conceitos básicos de Linux.

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

Organização do Curso. Instalação e Configuração. Módulo II. Pós Graduação em Projeto e Gerencia de Redes de Computadores

Gestão em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini

Objetivos do Curso. Organização do Curso. Apresentação do Curso. Pós Graduação em Projeto e Gerencia de Redes de Computadores

PLANO DE AULA. Ambiente Operacional Unix Profa. Morganna

Publicado por brain em Sáb, :35. :: Documentação [

Roteiro 3: Sistemas Linux arquivos e diretórios

Laboratório de Redes de Computadores e Sistemas Operacionais

Julgue os itens a seguir referentes a conceitos de software livre e licenças de uso, distribuição e modificação.

Linux, Windows, Antivírus, Teclado e .

Lazarus pelo SVN Linux/Windows

Curso Introdução ao Linux. Desmistificando o Software Livre. Nícholas André nicholas@iotecnologia.com.

Como é o desenvolvimento de Software?

Linux pra mim, Linux pra você!

CET GRSI Sistema Operativo de Rede. António Paulo Santos

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

4. Conceitos Básicos de Computação: Sistemas Operacionais

2. O AMBIENTE DE PROGRAMAÇÃO EM C

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

Introdução a Banco de Dados

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Cadastramento de Computadores. Manual do Usuário

02 - Usando o SiteMaster - Informações importantes

Tutorial Instalação Dual Boot Ubuntu e Windows XP Virtualização com VirtualBox

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Guia de instalação UEG Linux LTS

Fundamentos e Prática em Informática Ensino Médio Integrado em Informática. Lara Popov Zambiasi Bazzi Oberderfer

LINUX EDUCACIONAL 3.0

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

TUTORIAL VMWARE WORKSTATION 8. Aprenda a instalar e configurar corretamente uma máquina virtual utilizando VMware Workstation com este tutorial

Informática. Aula 04/12. Prof. Márcio Hollweg. Visite o Portal dos Concursos Públicos

USB Creator. USBCreator. 1. Requerimentos. Página Imutável Informação Anexos Mais Acções. Ubuntu Brazil Entrar Help

Administração de Sistemas Livres. Prof. Lais Farias Alves

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

Dicas para usar melhor o Word 2007

Treinamento para Manutenção dos Telecentros

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

OneDrive: saiba como usar a nuvem da Microsoft

Aula 01 Visão Geral do Linux

22:59:36. Introdução à Informática com Software Livre

Como instalar uma impressora?

Desenvolvendo Websites com PHP

Como Instalar Programas no GNU/Linux. Elexsandro Rangel dos Santos

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Sistema Operacional Unidade 1 Introdução aos Sistemas Operacionais GNU/Linux. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Como acessar o novo webmail da Educação? Manual do Usuário. 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S.

UDPcast Clonagem de HDs via rede utilizando

Introdução. O Windows Server 2003 está dividido em quatro versões:

Motorola Phone Tools. Início Rápido

Manual. Configuração do. Samba. Compartilhamento e Servidor Samba Linux. Produzido por: Sergio Graças Desenvolvedor do Projeto GNU/Linux VRlivre

Guia Rápido de Instalação Ilustrado

Inicialização rápida da instalação SUSE Linux Enterprise Server 11

Jackson Barbosa de Azevedo

Manual do Google agenda. criação e compartilhamento de agendas

1 / 6. Cartilha O ABC do Software Livre. O que é PcLivre?

Universidade Federal da Fronteira Sul Campus Chapecó Sistema Operacional

Procedimentos para Reinstalação do Sisloc

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER.

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

Manual do Remote Desktop Connection. Brad Hards Urs Wolfer Tradução: Marcus Gama

1- Requisitos mínimos. 2- Instalando o Acesso Full. 3- Iniciando o Acesso Full pela primeira vez

Gerenciamento de Redes de Computadores. Pfsense Introdução e Instalação

1 ACESSO AO PORTAL UNIVERSITÁRIO 3 3 PLANO DE ENSINO 6 4 AULAS 7 5 AVALIAÇÃO E EXERCÍCIO 9 6 ENQUETES 12 7 QUADRO DE AVISOS 14

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

2 Um Primeiro Programa em C

Professor: Roberto Franciscatto. Curso: Engenharia de Alimentos 01/2010 Aula 3 Sistemas Operacionais

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

Sistemas Operacionais

Transcrição:

Sumário 1 Introdução ao Linux...2 Historia...2 1.1 O nome Linux...2 1.2 Características do UNIX...3 1.2.2 Origem do nome Linux...5 1.3 Creative commons...7 1.3.1 Como escolher uma licença...7 1.3.2 Linux tem licença GPL...9 1.3.3 Arquitetura...9 1.3.4 Portabilidade...9 1.3.5 Termos de Licenciamento...10 1.3.6 Sistemas de arquivos suportados...10 1.3.7 Sistema Operacional...10 1.4 Distribuições...11 1.4.1Distribuições de propósito geral...13 1.4.2. Usando o Linux...17 1.4.3. O que é o Linux...17 1.4.4 Linguagens de Programação...18 1.4.5. Makefiles (arquivos make)...20 1.4.5. Depuração com o gdb...21 1.5.1. RPM...21 1.5.2. DPKG...21 1.5.3. Arquivos.tar.gz ou.tgz...22 1.6. Roteiro de algumas curiosidades...22 1.6.1. Alguns comandos disponíveis...23 1.6.2. Terminais virtuais...25 1.6.3. O sistema de arquivos e diretórios importantes...26 1.6.4. X Window System...27 1.6.5. Conceitos sobre o X...27 1.6.6. Os Gerenciadores de Janelas...28 1.6.7. Editores de texto...29

1 Introdução ao Linux Historia 1.1 O nome Linux O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte, no qual contaremos sua história agora, para que você entenda melhor a do Linux. A origem do Unix tem ligação com o sistema operacional Multics, projetado na década de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratórios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A intenção era de que o Multics tivesse características de tempo compartilhado (vários usuários compartilhando os recursos de um único computador), sendo assim o sistema mais arrojado da época. Em 1969, já existia uma versão do Multics rodando num computador GE645. Ken Thompsom era um pesquisador do Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projeto tempos depois, mas ele continuou seus estudos no sistema. Desde então, sua idéia não era continuar no Multics original e sim criar algo menor, mas que conservasse as idéias básicas do sistema. A partir daí, começa a saga do sistema Unix. Brian Kernighan, também pesquisador da Bell Labs, foi quem deu esse nome. Em 1973, outro pesquisador da Bell Labs, Dennis Ritchie, rescreveu todo o sistema Unix numa linguagem de alto nível, chamada C, desenvolvida por ele mesmo. Por causa disso, o sistema passou a ter grande aceitação por usuários externos à Bell Labs. Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é comercializado por empresas como IBM, HP, Sun, etc. O Unix, é um sistema operacional muito caro e é usado em computadores poderosos (como mainframes) por diversas multinacionais. Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds? Para responder essa pergunta, é necessário falar de outro sistema operacional, o Minix. O Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar o Unix "em casa". No entanto, vale citar que ele foi escrito do "zero" e apesar de ser uma versão do Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente. A partir daí, "entra em cena" Linus Torvalds. Ele era um estudante de Ciências da Computação da Universidade de Helsinki, na Filândia e em 1991, por hobby, Linus decidiu desenvolver um sistema mais poderoso que o Minix. Para divulgar sua idéia, ele enviou uma mensagem a um grupo pela Usenet (uma espécie de antecessor da Internet). A mensagem pode ser vista no final deste artigo. No mesmo ano, ele disponibilizou a versão do kernel (núcleo dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994 disponibilizou a versão 1.0. Até o momento em que este 2

artigo estava sendo escrito, a versão atual era a 2.6. O Linux é um sistema operacional livre e é uma re-implementação das especificações POSIX (padronização da IEEE, Instituto de Engenharia Elétrica e Eletrônica) para sistemas com extensões System V e BSD. Isso signfica que o Linux é bem parecido com Unix, mas não vem do mesmo lugar e foi escrito de outra forma. Mas por que o Linux é gratuito? Linus Torvalds, quando desenvolveu o Linux, não tinha a inteção de ganhar dinheiro e sim fazer um sistema para seu uso pessoal, que atendesse suas necessidades. O estilo de desenvolvimento que foi adotado foi o de ajuda coletiva. Ou seja, ele coordena os esforços coletivos de um grupo para a melhoria do sistema que criou. Milhares de pessoas contribuem gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de fazer um sistema operacional melhor. Licença GPL O Linux está sob a licença GPL, permite que qualquer um possa usar os programas que estão sob ela, com o compromisso de não tornar os programas fechados e comercializados. Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercialiazá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendê-lo. GNU A história do Linux não termina aqui. É necessário saber também o que é GNU. GNU é um projeto que começou em 1984 com o objetivo de desenvolver um sistema operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus Torvalds, na mesma época que escrevia o códigofonte do kernel, começou a usar programas da GNU para fazer seu sistema. Gostando da idéia, resolveu deixar seu kernel dentro da mesma licença. Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo e serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional. Mas você pode ter ficado confuso agora. O que é o Linux então? O que é GNU? Simplesmente, várias pessoas uma versões modificadas dos sistemas GNU, pensando que é o Linux em si. Os programadores que trabalham com ele, sabem que o Linux, é basicamente o kernel, conforme já foi dito, mas todos, chamam esse conjunto de Linux (há quem defenda o uso de GNU/Linux). Finalizando, o projeto GNU é um dos responsáveis pelo sucesso do Linux, pois graças à mistura de seus programas com o kernel desenvolvido por Linus Torvalds, o Linux vem mostrando porque é um sistema operacional digno de habilidades insuperáveis por qualquer outro sistema. O UNIX foi desenvolvido no final da década de 1960 e vai seguindo seu percurso de crescimento. 1.2 Características do UNIX 1. Sistema multitarefa e multiusuário 2. Disponível para diversas plataformas. 3

3. Sistema robusto e confiável. 4. Sistema maduro. A principal desvantagem do UNIX é por ser muito caro e só funcionar em plataformas de hardware com preço inacessível a maioria dos profissionais. Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é comercializado por empresas como IBM, HP, Sun, etc. O Unix, é um sistema operacional muito caro e é usado em computadores poderosos (como mainframes) por diversas multinacionais. Versões do UNIX comerciais:» HP-UX» AIX» Solaris» IRIX A versão livre do UNIX se chama FreeBSD. Essa história da origem do Unix é só um resumo, para que vocês possam entender a origem do Linux. Apresentando o Linux Como se percebe o UNIX é inacessível a maioria dos mortais, pois é caro e exige um hardware adequado. Isso, vai inspirar alguém a criar algo acessível. Mas antes disso vamos falar de outra pessoa. Dr. Andrew Tanenbaum O Dr. Andrew Tanenbaum motivado para fins educacionais, criou um sistema operacional chamado MINIX, baseado nos processadores INTEL 8086 que era na época a plataforma mais barata e atual. O Minix só poderia ser usado para fins acadêmicos devido as suas limitações técnicas. Só endereçava até 1MB de cada vez. Não tinha memória virtual. Ótimo. Já temos a primeira parte do sistema operacional. O que é GNU e a FSF? A Fundação do Software Livre FSF (Free Software Foundation) fundada por Richard Stallman no ano de 1983fundou a (Fundação do Software Livre). Foi criado o projeto GNU. Este projeto tinha a responsabilidade de criar um clone do UNIX. Um detalhe deste clone é que tinha que ser livre e não poderia usar código fonte no UNIX pois tinha uma versão livre do UNIX o BSD. O projeto não deu certo em partes, pois chegou ao final da década de 80 sem cumprir seus propósitos que eram criar o clone do UNIX. Mas o fracasso não foi total. 4

Não se conseguiu fazer o clone do UNIX mas foram criadas as ferramentas necessárias para que Linux Torvalds conseguisse desenvolver o Linux. Então, Linux Benedict Torvalds aluno da Universidade de Helsinque, na Finlândia usou tudo o que tinha até o momento: O Minix e as Ferramentas do GNU. Linus, inicia o desenvolvimento de um kernel que fosse um clone do UNIX que possuísse memória virtual, multitarefa preemptiva e capacidade de multiusuários. Era um trabalho que ele sozinho não conseguiria terminar em tempo hábil. Então, ele disponibilizou o código fonte do que ele veio a chamar de Linux. O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. Alguns linuxistas mais radicais chamam o sistema operacional do pingüim de GNU/LINUX, já que Linux Torvalds, conseguiu algum sucesso usando as ferramentas do projeto GNU. 1.2.2 Origem do nome Linux O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte. O nome do mascote Tux (o pingüim do Linux), foi escolhido por votação, pelo próprio Linus. Segundo ele "gostaria de um pingüim cheio, satisfeito por ter comido muitos peixes". Diz a lenda que o motivo por trás da escolha do Tux como mascote foi uma mordida que Linus levou de um pingüim em um zoológico. O MINIX DO DR. ANDREW TANENBAUM Um outro sistema operacional importante é o Minix. A partir dele é que Linux Torvalds começou a desenvolver o que chamamos de Linux. Mas ele não fez tudo. Veja a seguir a frase do Linux Torvalds que ele publicou na USENET. Mensagem de Linus Torvalds na Usenet Abaixo segue a mensagem publicada por Linus Torvalds via Usenet na divulgação de seu projeto. A tradução para português foi disponibilizada logo abaixo da mensagem em inglês. Ambas as mensagens foram retiradas deste link: http://www.rootlinux.com.br/documentos/downloads/historia_do_linux.txt O que significa gratuito no Linux? O Linux depois de pronto foi baseado numa licença chamada GPL. Nem ele como criador original do 5

Linux pode alterá-la ou requerer o Linux novamente para ele. Licença GPL Software livre não significa que uma empresa não possa comercializá-lo. Pode sim. O Linux, pode ser vendido sem problemas, mas, desde que siga quatro princípios de liberdade:» Liberdade 0: - O direito de executar o programa, para qualquer propósito.» Liberdade 1: - O direito de estudar como o programa funciona e adptá-lo para suas necessidades..» Liberdade 2: O direito de redistribuir cópias, permitindo assim que você ajude outras pessoas.» Liberdade 3: - O direito de aperfeiçoar o programa, e distribuir seus aperfeiçoamentos para o público, beneficiando assim toda a comunidade. Você terá os direitos acima especificados contanto que Você cumpra com os requisitos expressos nesta Licença. Os principais requisitos são: Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. Fonte: http://creativecommons.org/licenses/gpl/2.0/ Então, para que um programa seja considera livre, ele tem que está baseado nestas quatro liberdades. Mas as pessoas e empresas podem cobrar para distribuir cópias do programa. A única coisa que não pode acontecer é o autor revogar estas 4 liberdades. Então, para garantir estas liberdades é que as licenças foram criadas. A mais famosa é a GPL 6

General Public License (Licença Geral Pública). COPYLEFT VERSUS COPYRIGHT O COPYLEFT garante que qualquer usuário tenha o direito de copiar, modificar e redistribuir o código de um programa derivado do mesmo se os termos de distribuição não forem modificados. É o oposto do COPYRIGHT 1.3 Creative commons Quando foi criado o conceito de copyleft, apenas programas computacionais começaram a ser licenciados assim, mas, depois, o movimento pela livre circulação da cultura e do saber estendeu-se a outros tipos de conteúdos, especialmente os artísticos, literários, musicais, científicos e os jornalísticos. Em 2001 surgiram outras licenças que estão consagradas pela Creative Commons, uma organização sem fins lucrativos fundada por Lawrence Lessig, então professor de Direito da Universidade de Stanford. No livro "Cultura Livre" Lessig demonstra que empresas dos EUA conseguiram junto ao Congresso daquele país aumentar o prazo pelo qual uma obra permanece "protegida", de modo a não permitir que inúmeros produtos culturais e imateriais, como livros, músicas e filme sejam utilizados para produzir novas obras. Assim, Lessig defende que a cultura seria mais rica se as leis que regulam os direitos autorais fossem mais flexíveis. As licenças Creative Commons facilitam o compartilhamento e recombinação de conteúdos culturais, como textos, músicas, imagens, filmes e outros, sob a égide de uma filosofia copyleft. Assim, os autores desses produtos podem abdicar em favor do público de alguns dos seus direitos inerentes às suas criações, ainda que retenham outros desses direitos. Há vários tipos de licença, incluindo opções que permitem abdicação quase total de direitos patrimoniais pelo licenciante a tipos mais restritivos, que vedam a possibilidade de criação de obras derivadas ou o uso comercial dos materiais licenciados. Assim, quando um autor escolhe a licença para a sua obra, decide se alguém pode ou não fazer uso comercial, se pode modificá-la ou se a obra derivada deve ou não ter o mesmo tipo de licença relativamente à original. É muito importante compreender que os diversos tipos de obras culturais podem e devem ter licenças diferentes. Por exemplo, a livre modificação de textos pode ser aplicada a alguns tipos de trabalhos, como textos de manuais de programas, que até podem ser empreendimentos coletivos. Já, com relação à produção científica, a modificação do texto não faz sentido, pois é absolutamente necessário identificar o autor, atribuir-lhe responsabilidades e garantir a confiabilidade da fonte. Em geral, essas novas licenças são centradas na manutenção da integridade da obra e usam o Copyleft para garantir a liberdade de reprodução. E garantem ao autor o direito de ser remunerado quando seu trabalho intelectual tiver que ser consubstanciado em meio físico para fins de comércio. Assim, supera-se a velha ideologia da "propriedade intelectual" e instala-se a tutela do "trabalho intelectual". 7

Vídeo: Creative Commons - Seja Criativo (Get Creative) Portuguese http://br.youtube.com/watch?v=izsoromxrge (acessado novamente em 2/09/2009) (Versão em português com explicação sobre a diferença de copyright para Creative Commons.) 1.3.1 Como escolher uma licença Não se abre mão de direitos autorais quando se oferece uma obra sob uma licença Creative Commons. Esse ato significa apenas que se oferece alguns direitos para qualquer pessoa, mas somente sob determinadas condições. Sobre as condições Atribuição O autor permite que outras pessoas copiem, distribuam e executem sua obra, e as obras derivados criadas a partir dela, somente se for dado crédito da maneira que o autor estabeleceu. Uso Não Comercial O autor permite que outras pessoas copiem, distribuam e executem sua obra, e as obras derivadas criadas a partir dela, somente para fins não comerciais. Não à Obras Derivadas O autor permite que outras pessoas copiem, distribuam e executem somente cópias exatas da sua obra, mas sem modificações, ou seja, naõ permite obras derivadas. Compartilhamento pela mesma Licença O autor permitir que outras pessoas distribuam obras derivadas somente sob a mesma licença que rege sua obra. As licenças by-nc-nd - Atribuição - Uso Não Comercial - Não a Obras Derivadas Esta é a mais restritiva dentre as seis licenças principais que permitem redistribuição. É chamada de propaganda grátis". Permite: que outros façam cópia e compartilhem a obra, contanto que mencionem e façam o link ao autor. Não permite: Modificar a obra. E, de nenhum modo, usar a obra para fins comerciais. by-nc-sa - Atribuição - Uso Não Comercial - Compartilhamento pela mesma Licença Permite: que outros remixem, adaptem e criem obras derivadas com fins não comerciais, contanto que atribuam crédito ao autor e licenciem as novas criações sob os mesmos parâmetros. Outros podem fazer cópias ou redistribuir a obra e também podem traduzir, fazer remixes e elaborar novas histórias com base na original. Não permite: Toda nova obra feita deverá ser licenciada com a mesma licença, de modo que qualquer obra derivada não poderá ser usada para fins comerciais. by nc - Atribuição - Uso Não Comercial 8

Permite: que outros remixem, adaptem, e criem obras derivadas, sendo vedado o uso com fins comerciais. As novas obras devem conter menção ao autor nos créditos. Não permite: Uso com fins comerciais., mas as obras derivadas não precisam ser licenciadas sob os mesmos termos. by nd - Atribuição - Não a Obras Derivadas Permite: redistribuição e o uso para fins comerciais e não comerciais, contanto que a obra seja redistribuída sem modificações e completa, e que os créditos sejam atribuídos ao autor. by-sa - Atribuição - Compartilhamento pela mesma Licença Comumente comparada a licenças de software livre. Permite: que outros remixem, adaptem, e criem obras derivadas ainda que para fins comerciais, contanto que o crédito seja atribuído ao autor e que essas obras sejam licenciadas sob os mesmos termos. by - Atribuição Esta é menos restritiva. Permite: que outros distribuam, remixem, adaptem ou criem obras derivadas, mesmo que para uso com fins comerciais, contanto que seja dado crédito ao autor pela criação original. 1.3.2 Linux tem licença GPL O Linux foi lançado sob uma licença que proibia qualquer uso comercial. Logo isso foi alterado para a licença GPL. Essa licença, detalhada aqui, permite a distribuição e até a venda de versões modificadas do Linux, mas requer que todas as cópias sejam lançadas dentro da mesma licença e acompanhadas do código fonte. Um grande parte do código do linux (incluindo as contribuições de Linus Torvalds) menciona apenas a GPL versão 2. Isso determina que o kernel esteja sob a versão 2 exclusivamente. O termo Linux refere-se ao núcleo (em inglês: "kernel") do sistema operativo. O termo também é usado pelos meios de comunicação e usuários para referir-se aos sistemas operacionais baseados no núcleo Linux agregado a outros programas. Segundo Tanenbaum e Silberschatz, um núcleo pode ser considerado o próprio sistema operativo, quando este é definido como um gerenciador de recursos de hardware. 1.3.3 Arquitetura O Linux é um núcleo monolítico: as funções do núcleo (escalonamento de processos, gerenciamento de memória, operações de entrada/saída, acesso ao sistema de arquivos) são executadas no espaço de núcleo. Uma característica do núcleo Linux é que algumas das funções (drivers de dispositivos, suporte à rede, sistema de arquivos, por exemplo) podem ser compiladas e executadas como módulos (em inglês: LKM - loadable kernel modules), que são bibliotecas compiladas separadamente 9

da parte principal do núcleo e podem ser carregadas e descarregadas após o núcleo estar em execução. 1.3.4 Portabilidade Embora Linus Torvalds não tenha tido como objetivo inicial tornar o Linux um sistema portável, ele evoluiu nessa direção. Linux é hoje um dos núcleos de sistemas operativos mais portáveis, correndo em sistemas desde o ipaq (um computador portátil) até o IBM S/390 (um denso e altamente custoso mainframe). Os esforços de Linus foram também dirigidos a um diferente tipo de portabilidade. Portabilidade, de acordo com Linus, era a habilidade de facilmente compilar aplicações de uma variedade de código fonte no seu sistema; consequentemente, o Linux originalmente tornou-se popular em parte devido ao esforço para que os códigos-fonte GPL ou outros favoritos de todos corressem em Linux. O Linux hoje funciona em dezenas de plataformas, desde mainframes até um relógio de pulso, passando por várias arquitecturas: x86 (Intel, AMD), x86-64 (Intel EM64T, AMD64), ARM, PowerPC, Alpha, SPARC e etc, com grande penetração também em sistemas embarcados, como handhelds, PVR, consola de videojogos e centros multimídia, entre outros. 1.3.5 Termos de Licenciamento Inicialmente, Torvalds lançou o Linux sob uma licença de software que proibia qualquer uso comercial. Isso foi mudado de imediato para a GNU General Public License. Essa licença permite a distribuição e mesmo a venda de versões possivelmente modificadas do Linux mas requer que todas as cópias sejam lançadas dentro da mesma licença e acompanhadas do código fonte. Apesar de alguns dos programadores que contribuem para o núcleo permitirem que o seu código seja licenciado com GPL versão 2 ou posterior, grande parte do código (incluído as contribuições de Torvalds) menciona apenas a GPL versão 2. Isto faz com que o núcleo como um todo esteja sob a versão 2 exclusivamente, não sendo de prever a adoção da nova GPLv3. 1.3.6 Sistemas de arquivos suportados O Linux possui suporte de leitura e escrita a vários sistema de arquivos, de diversos sistemas operacionais, além de alguns sistemas nativos. Por isso, quando o Linux é instalado em dual boot com outros sistemas (Windows, por exemplo) ou mesmo funcionando como Live CD, ele poderá ler e escrever nas partições formatadas em FAT e NTFS. Por isto, Live CDs Linux são muito utilizados na manutenção e recuperação de outros sistemas operacionais. Entre os sistemas de ficheiros suportados pelo Linux, podemos citar FAT, NTFS, JFS, XFS, HPFS, Minix e ISO 9660 (sistema de ficheiros usado em CD-ROMs). Alguns sistemas de ficheiros nativos são, dentre outros, Ext2, Ext3, Ext4, ReiserFS e Reiser4.[5] Alguns sistemas de ficheiros com características especiais são SWAP, UnionFS, SquashFS, Tmpfs, Aufs e NFS, dentre outros. 1.3.7 Sistema Operacional Richard Stallman, fundador do projeto GNU para um sistema operacional livre.logo que Linus Torvalds passou a disponibilizar o Linux, ou seja na sua versão 0.01, já havia suporte ao disco rígido, tela, teclado e portas seriais, o sistema de arquivos adotava o mesmo layout do Minix (embora não houvesse código do Minix no Linux), havia extensos trechos em assembly, e ela já era capaz de rodar 10

o bash e o gcc. A linha guia quando implementei o Linux foi: fazê-lo funcionar rápido. Eu queria o núcleo simples, mas poderoso o suficiente para rodar a maioria dos aplicativos Unix.[6] O próprio usuário deveria procurar os programas que dessem funcionalidade ao seu sistema, compilá-los e configurá-los. Talvez por isso, o Linux tenha carregado consigo a etiqueta de sistema operativo apenas para técnicos. Foi neste ambiente que surgiu a MCC Interim Linux, do Manchester Computer Centre, a primeira distribuição Linux, desenvolvida por Owen Le Blanc da Universidade de Manchester, capaz de ser instalada independentemente em um computador. Foi uma primeira tentativa de facilitar a instalação do Linux. Desde o começo, o núcleo Linux incluía um sistema básico para chamadas do sistema e acesso aos dispositivos do computador. O núcleo de um sistema operativo define entre várias operações, o gerenciamento da memória, de processos, dos dispositivos físicos no computador e é uma parte essencial de qualquer sistema operacional utilizável, contudo para um sistema operacional adquirir funcionalidade são necessários também vários outros aplicativos que determinam funções específicas que aquele sistema será capaz de desenvolver, os aplicativos existentes em um sistema operacional com a única exceção do núcleo são determinados pelo usuário do computador, como por exemplo: interpretadores de comandos, gerenciadores de janelas, que oferecem respectivamente uma interface para o usuário do computador, CLI ou GUI, e outros aplicativos como editores de texto, editores de imagem, tocadores de som, e, mas não necessariamente, compiladores. A maioria dos sistemas inclui ferramentas e utilitários baseados no BSD e tipicamente usam XFree86 ou X.Org para oferecer a funcionalidade do sistemas de janelas X interface gráfica. Assim como também oferecem ferramentas desenvolvidas pelo projeto GNU. No momento do desenvolvimento do Linux, vários aplicativos já vinham sendo reunidos pelo Projeto GNU da Free Software Foundation ( Fundação Software Livre ), que embarcara em um subprojeto que ainda continua para obter um núcleo, o GNU Hurd. Porém devido a várias complicações o projeto GNU e demora em desenvolver o Hurd, Stallman acabou adotando o núcleo Linux como base para distribuir os programas do projeto GNU, não obstante diversas pessoas e instituições tiveram a mesma idéia e assim várias distribuições começaram a surgir baseadas no núcleo desenvolvido inicialmente por Linus. 1.4 Distribuições Ver artigo principal: Distribuições de Linux Atualmente, um Sistema Operacional (em Portugal Sistema Operativo) Linux ou GNU/Linux completo (uma "Lista de distribuições de Linux ou GNU/Linux") é uma coleção de software livre (e por vezes não-livres) criados por indivíduos, grupos e organizações de todo o mundo, incluindo o núcleo Linux. Companhias como a Red Hat, a SuSE, a Mandriva (união da Mandrake com a Conectiva) e a Canonical (desenvolvedora do Ubuntu Linux), bem como projetos de comunidades como o Debian ou o Gentoo, compilam o software e fornecem um sistema completo, pronto para instalação e uso. Patrick Volkerding também fornece uma distribuição Linux, o Slackware. As distribuições do Linux ou GNU/Linux começaram a receber uma popularidade limitada desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas acostumadas com o Unix na escola e no trabalho. O sistema tornou-se popular no mercado de Desktops e servidores, principalmente para a Web e servidores de bancos de dados. No decorrer do tempo, várias distribuições surgiram e desapareceram, cada qual com sua característica. Algumas distribuições são maiores outras menores, dependendo do número de aplicações e sua finalidade. Algumas distribuições de tamanhos menores cabem num disquete com 1,44 MB, outras precisam de vários CDs, existindo até algumas versões em DVD. Todas elas tem o seu público e sua finalidade, as pequenas (que ocupam poucos disquetes) são usadas para recuperação de sistemas danificados ou em monitoramento de redes de computadores. 11

De entre as maiores, distribuídas em CDs, podem-se citar: Slackware, Debian, Suse, e Conectiva. O que faz a diferença é como estão organizadas e pré-configuradas as aplicações. A distribuição Conectiva Linux, por exemplo, tinha as suas aplicações traduzidas em português, o que facilitou que usuários que falam a Língua Portuguesa tenham aderido melhor a esta distribuição. Hoje esta distribuição foi incorporada à Mandrake, o que resultou na Mandriva. Para o português, existe também a distribuição brasileira Kurumin (Essa distribuição foi descontinuada pelo seu mantedor), construída sobre Knoppix e Debian, e a Caixa Mágica, existente nas versões 32 bits, 64 bits, Live CD 32 bits e Live CD 64 bits, e com vários programas open source: OpenOffice.org, Mozilla Firefox, entre outros. Existem distribuições com ferramentas para configuração que facilitam a administração do sistema. As principais diferenças entre as distribuições estão nos seus sistemas de pacotes, nas estruturas dos diretórios e na sua biblioteca básica. Por mais que a estrutura dos diretórios siga o mesmo padrão, o FSSTND é um padrão muito relaxado, principalmente em arquivos onde as configurações são diferentes entre as distribuições. Então normalmente todos seguem o padrão FHS (File Hierarchy System), que é o padrão mais novo. Vale lembrar, entretanto, que qualquer aplicativo ou driver desenvolvido para Linux pode ser compilado em qualquer distribuição que vai funcionar da mesma maneira. Quanto à biblioteca, é usada a Biblioteca libc, contendo funções básicas para o sistema Operacional Linux. O problema está quando do lançamento de uma nova versão da Biblioteca libc, algumas das distribuições colocam logo a nova versão, enquanto outras aguardam um pouco. Por isso, alguns programas funcionam numa distribuição e noutras não. Existe um movimento LSB (Linux Standard Base) que proporciona uma maior padronização. Auxilia principalmente vendedores de software que não liberam para distribuição do código fonte, sem tirar características das distribuições. O sistemas de pacotes não é padronizado. ArchLinux, Debian, Fedora, Mandriva, Mint, Opensuse, PCLinuxOS, Puppy, Sabayon, Slackware e Ubuntu são algumas das distribuições mais utilizadas actualmente, listadas aqui por ordem alfabética. Um exemplo de distribuição que corre num CD é o Kurumin Linux, criado por Carlos Eduardo Morimoto, baseada no Knoppix. De entre as distribuições consideradas mais difíceis de gerir (por preferirem assegurar a estabilidade tecnológica em detrimento da interface de utilizador), destacam-se a Debian, Gentoo e Slackware. Código Aberto e Programas Livres Um programa, assim como toda obra produzida atualmente, seja ela literária, artística ou tecnológica, possui um autor. Os Direitos sobre a idéia ou originalidade da obra do autor, que incluem essencialmente distribuição, reprodução e uso é feito no caso de um programa através de sua licença. Existem dois movimentos que regem o licenciamento de programas no mundo livre, os programas de código aberto e os programas livres. Os dois representados respectivamente pela OSI e pela FSF oferecem licenças para produção de software, sendo seus maiores representantes a licença BSD e a GPL. O Linux oferece muitos aplicativos de open source, contudo nem todos podem ser considerados programas livres, dependendo exclusivamente sob qual licença estes programas são distribuídos. Os programas distribuídos sob tais licenças possuem as mais diversas funcionalidades, como desktops, escritório, edição de imagem e inclusive de outros sistemas operacionais. Também existem organizações inclusive no mundo livre como a organização Linux Simples para o Usuário Final (SEUL) que tem como objetivo adotar a maior gama possível de aplicativos de alta qualidade produzidos sobre a GPL. É um projeto voluntário que atualmente se foca no aprendizado de Linux, seu uso na ciência e em documentos de advocacia, bem como gerenciar e coordenar projetos de desenvolvimento de aplicativos. Controvérsias quanto ao nome Linux foi o nome dado ao núcleo de sistema operacional criado por Linus Torvalds. Por extensão, 12

sistemas operacionais que usam o núcleo Linux são chamados genericamente de Linux. Entretanto, a Free Software Foundation afirma tais sistemas operacionais são, na verdade, sistemas GNU, e o nome mais adequado para tais sistemas é GNU/Linux, uma vez que grande parte do código-fonte dos sistemas operacionais baseados em Linux são ferramentas do projeto GNU.[7] Há muita controvérsia quanto ao nome. Eric Raymond afirma, no Jargon File, que a proposta da FSF só conseguiu a "aceitação de uma minoria" e é resultado de uma "disputa territorial".[8] Linus Torvalds afirma que consideraria "justo" que tal nome fosse atribuído a uma distribuição do projeto GNU, mas que chamar os sistemas operacionais Linux como um todo de GNU/Linux seria "ridículo".[9] Linus disse não se importar sobre qual o nome usado, considera a proposta da GNU como "válida" ("ok") mas prefere usar o termo "Linux".[10] Sobre o símbolo O símbolo do software foi escolhido pelo seu criador, que achou a foto de um pinguim na internet. [11] Em 1996, muitos integrantes da lista de discussão "Linux-Kernel" estavam discutindo sobre a criação de um logotipo ou de um mascote que representasse o Linux. Muitas das sugestões eram paródias ao logotipo de um sistema operacional concorrente e muito conhecido. Outros eram monstros ou animais agressivos. Linus Torvalds acabou entrando nesse debate ao afirmar em uma mensagem que gostava muito de pingüins. Isso foi o suficiente para dar fim à discussão. Tux.Depois disso, várias tentativas foram feitas numa espécie de concurso para que a imagem de um pingüim servisse aos propósitos do Linux, até que alguém sugeriu a figura de um "pingüim sustentando o mundo". Em resposta, Linus Torvalds declarou que achava interessante que esse pingüim tivesse uma imagem simples: um pingüim "gordinho" e com expressão de satisfeito, como se tivesse acabado de comer uma porção de peixes. Torvalds também não achava atraente a idéia de algo agressivo, mas sim a idéia de um pingüim simpático, do tipo em que as crianças perguntam "mamãe, posso ter um desses também?". Ainda, Torvalds também frisou que trabalhando dessa forma, as pessoas poderiam criar várias modificações desse pingüim. Isso realmente acontece. Quando questionado sobre o porquê de pingüins, Linus Torvalds respondeu que não havia uma razão em especial, mas os achava engraçados e até citou que foi mordido por um "pingüim assassino" na Austrália e ficou impressionado como a mordida de um animal aparentemente tão inofensivo podia ser tão dolorosa. 1.4.1Distribuições de propósito geral ALT Linux v e Arch Linux v e Debian v e BrDesktop v e BRLix v e 13

Damn Small Linux v e Freedows v e Insigne GNU Linux v e KeeP-OS v e Knoppix v e Kurumin v e NG DreamLinux v e Big Linux v e gnulinex v e Resulinux v e Rxart v e Satux v e Skolelinux v e SuiteTelecentro v e Ubuntu v e Alinex v e Fluxbuntu v e gnewsense v e Gobuntu v e Goobuntu v e Jolicloud v e Kubuntu v e Kubuntu Netbook Remix v e Linux Educacional v e 3.0 Linux Mint v e Ubuntu Netbook Remix v e Ubuntu Studio v e Ultimate Edition v e Xubuntu v e ZeVenOS v e Xandros v e Foresight Linux v e Gentoo v e Guaranix v e Librix v e Litrix Linux v e Sabayon Linux v e Tutoo v e GoboLinux v e Linux From Scratch v e Neo Dizinha v e OpenSuSE v e Puppy Linux v e Red Hat Linux v e Caixa Mágica v e CentOS v e Fedora v e Ekaaty v e Insigne GNU Linux v e - versão 3 Libertas v e Muriqui v e Vixta v e Mandriva v e PCLinuxOS v e Yellow Dog Linux v e Resulinux v e Slackware Linux v e GoblinX v e Slax v e Vector Linux v e 14

[editar] Distribuições LiveCD As distribuições em LiveCD rodam direto do cd-rom. ALT Linux v e Arch Linux v e Arco-Debian Linux v e BRLix v e (Baseado no Debian) Ambiente similar ao Windows XP/Vista Big Linux v e Caixa Mágica LiveCD v e CentOS v e CLive v e (baseada em Conectiva Linux) Damn Small Linux v e Dizinha Linux v e (baseada no Kurumin) Dreamlinux v e Fedora v e Fenix Linux v e Gentoo v e GoblinX v e Gnoppix v e (baseada em Knoppix) Incognito v e Insigne GNU Linux v e (baseada em Debian/Fedora) Litrix Linux v e Linux Mint v e Linux Educacional v e 3.0 Linius (Basado em caixa mágica) Kya Linux v e (baseada em Slackware Linux) Kalango Linux v e (baseada no Kurumin) Kanotix v e (baseada em Knoppix) KeeP-OS v e Knoppix v e (baseada em Debian Linux) Kubuntu v e Kurumin v e (baseada em Knoppix) Kurumin Games v e (Baseada no Kurumin) NUbuntu v e LinuxFX v e Mandriva v e Mepis v e Moblin v e Morphix v e Neo Dizinha v e NimbleX v e opensuse v e Paipix v e PCLinuxOS v e PHLAK v e (Baseado no Morphix) Poseidon Linux v e (baseada no Ubuntu) (live-dvd) Puppy Linux v e Quantix v e Resulinux v e Sabayon Linux v e Sacix v e Satux v e (Baseada em Debian ) Slax v e (baseada em Slackware Linux) SliTaz (distribuição completa e minimalista) (Live-CD) Super OS v e Tatui x v e Ubuntu v e (baseada em Debian Linux) Vixta v e (projeto baseado no Fedora com aparencia do Windows Vista) Yoper v e [editar] Distribuições de propósito especial 15

andlinux v e, versão do Ubuntu que roda integrada ao Windows junto com o Explorer. Ångström v e - Desenvolvida para o console portátil Pandora. Android v e - Sistema operacional voltada para smartphones, desenvolvida pela Google. Arm-Linux v e BackTrack v e (Fusão do Whax com Auditor Security Collection) Bootable Business Card v e BrazilFW v e Coyote Linux v e Cytrun Linux v e Dyne:Bolic v e Edubuntu v e Embedded Debian v e Endian Firewall v e EOS Enhanced Operating System v e - Desenvolvida para automatizar instalação de produtos. F.I.R.E v e FREESCO v e GeexBox v e Helix v e - distribuição baseada em Ubuntu,dedicada à investigação ou ciência forense informática. Indymix v e IPCop v e Linux Educacional v e - Voltados para uso de professores, gestores e alunos da rede pública de ensino brasileira. Live Android v e - É um projeto que visa a utilização do sistema Android para PC's. Mikrotik v e Musix v e Mythbuntu v e Openfiler v e Pentoo v e Portable Ubuntu for Windows v e - Outra versão do Ubuntu que roda integrada ao Windows junto com o Explorer. Progeny Debian v e Sentry Firewall v e Skolelinux v e SliTaz - Distribuição voltada para computadores antigos e/ou com baixo desempenho. Sysresccd v e - Distro com ferramentas essenciais para manutenção em geral Terabeauts v e - Distro em disquete destinada à criação e manutenção de sistemas de arquivos The Linux Router Project v e Tupiserver v e Ubuntu Studio v e μclinux v e [editar] Desktops Desktop padrão KDE 4.3 Desktop Gnome 2.20 Desktop do Xfce - GoblinXO sistema operacional Linux possui dois tipos de interfaces para que o usuário possa interagir com o sistema operacional. As interfaces gráficas e a interface de linha de comando. As interfaces gráficas foram desenvolvidas inicialmente por Douglas C. Engelbart e também chamadas de ambientes gráficos, Desktop's ou GUI (Graphical User Interfaces). Alguns exemplos para o Linux são: Kde Gnome LXDE Xfce Fluxbox Blanes Blackbox Windowmaker 16

Afterstep Enlightenment IceWM FVWM Kahakai ZappWM dwm SithWM Whim Karmen Sawfish XIGE Framer Mavosxwm WindowLab OpenBox xmonad [editar] Desktops 3D Os desktops 3D, são na verdade, plugins para adicionar efeitos incríveis às outras interfaces: AIGLX/Beryl XGL/Compiz Compiz Fusion[1] Metisse KWin gerenciador de janelas do KDE com efeitos nativos. [editar] Sistemas móveis (Mobile) Motomagx - sistema especialmente desenvolvido para celulares Motorola LinuxMod - sistema baseado no Motomagx [editar] Interpretadores de comandos Usando o Bash - FramebufferRepresentando a interface de acesso no modo texto, ou CLI (Command Line Interface) do Linux, eles são a principal forma de controle remoto e gerenciamento do sistema. Exemplos de interfaces de linha de comando, também chamados de Shell's ou interpretadores de comandos: sh ksh pdksh bash csh tcsh zsh ash dash rc rsh ssh screen 1.4.2. Usando o Linux Para aqueles que nunca usaram o Linux, iremos expor aqui os conceitos preliminares estritamente necessários para se programar usando o GTK. Portanto, esta primeira seção, onde iremos apenas apresentar alguns pontos que consideramos fundamentais, é dedicada aos iniciantes e àqueles que ainda não estão familiarizados com o sistema. Se esta não é a sua situação, vá direto para a próxima seção. Nosso primeiro principal objetivo será motivá-lo a usar o GTK. Esperamos que qualquer um que tenha noções básicas de C sinta-se encorajado a usar o GTK após ler este tutorial, independentemente do 17

sistema operacional que vinha usando até então. Por isso, é muito importante para nós ter acesso a possíveis dúvidas e comentários. Teremos o maior prazer em responder. Partimos do princípio de que você tem o Linux instalado e funcionando corretamente. Caso você ainda precise passar por essa etapa, recomendamos a instalação de uma das diversas distribuições disponíveis, entre elas a da Red Hat (www.redhat.com.br), uma das mais fáceis de ser instalada e atualizada. Em seguida, leia o texto "Linux Installation and Getting Started" (http://www.infomagic.com/linux/ldp/ldp/gs/gs.html), ou "Linux Installation HOWTO" (http://www.cube.net/linux-howto/installation-howto.html) de Matt Welsh, ou ainda Linux Installation HOWTO (http://www.linuxdoc.org/howto/installation-howto.html"), de Eric S. Raymond. Parte desses textos corresponde aos capítulos iniciais do livro Dominando o LINUX, de Matt Welsh e Lar Kaufman, cuja leitura é muito recomendada. Visite http://www.infomagic.com/catalog2.htm para obter mais informações sobre o livro. O site de referência ao Linux é: http://www.linux.org/. Vale a pena visitá-lo de vez em quando! 1.4.3. O que é o Linux O Linux é um sistema multiusuário e multitarefa, o que significa que várias pessoas podem trabalhar de uma vez, e que este é capaz de realizar diversas tarefas ao mesmo tempo. Além disso, o Linux é um sistema operacional em constante evolução. Isto implica num eterno aprendizado por parte de seus usuários. Quando se usa um computador em que o sistema LINUX foi instalado, a primeira coisa que se deve fazer é informar o seu login, e em seguida a sua senha, o que lhe dará acesso a todos os recursos disponíveis. Em geral, apenas o usuário denominado "root" tem acesso irrestrito a todo o sistema, e é ele quem administra o restante das configurações. Uma vez digitado o login e a senha, você terá acesso ao prompt. Esse prompt (que aqui será simbolizado por um sinal de $) é gerado por um programa chamado shell (literalmente, casca ou aparência exterior) que é responsável por lidar com os seus comandos. 1.4.4. O que é um comando No Linux, os comandos são arquivos que possuem permissão para serem executados. A maioria dos comandos inerentes ao Linux encontra-se no diretório /bin. Assim como no DOS, existe uma lista de diretórios onde o shell pesquisa à procura de comandos. Essa lista de diretórios se chama path (ou 18

caminho). Para ver como está o seu caminho atual, digite: $echo $PATH Uma observação muito importante é que, diferentemente do DOS, o Linux não pesquisa automaticamente no seu diretório atual a procura de comandos a serem executados. O diretório atual é simbolizado por um ponto, e o diretório pai é simbolizado por dois pontos. Se você quiser executar um arquivo chamado "nomearq.exe", que se encontra no diretório atual, e informar apenas: $ nomearq receberá uma mensagem do tipo "File not found". Você deverá informar explicitamente ao sistema que execute o arquivo "nomearq.exe", que se encontra no diretório atual: $./nomearq.exe Uma alternativa seria incluir um ponto (. ) na variável $PATH. No bash, use: $ export PATH=$PATH:. Esse comando irá tornar o seu caminho igual ao caminho antigo mais o diretório atual (o ponto). No tcsh, forneça: $ set path = ( $PATH. ) 1 1.4.4 Linguagens de Programação 1.4.1. Como programar com o gcc O gcc é um compilador C/C++ poderoso. Isto se deve ao fato de que o C é a linguagem nativa do Linux. O gcc (GNU C Compiler) funciona a partir da linha de comandos do shell. Para saber todas as opções que esse compilador oferece, consulte a página manual do mesmo. Visite a página www.gnu.org para saber mais sobre o projeto GNU. A sintaxe básica para se chamar o gcc é: $ gcc [opções] [arquivos] Muitas opções do gcc consistem de mais de um caracter. Por isso, diferentemente da maioria dos outros comandos do shell, cada opção deve ser precedida pelo seu próprio hífen. Você não pode agrupar opções depois de um único hífen. Os dois comandos a seguir, por exemplo, não são idênticos: $ gcc -p -g test.c $ gcc -pg test.c Se você compilar um arquivo e não especificar nenhum parâmetro na linha de comando, o gcc irá 19

automaticamente criar um arquivo executável, e irá chamá-lo de a.out. Para testar, clique aqui para baixar o arquivo teste.c (o tradicional "Hello World!" escrito em C), copie-o para o diretório adequado e lá digite: $ gcc teste.c Para especificar um outro nome para o arquivo de saída, deve-se usar a opção -o (do inglês, output). Para compilar um programa chamado teste.c e gerar um executável chamado hello, digite o seguinte: $ gcc -o hello teste.c O processo de gerar um arquivo executável se divide em duas etapas. Primeiro é gerado o código objeto, a partir do código fonte. Esse arquivo objeto é praticamente equivalente ao código de máquina. Em seguida, o arquivo objeto é linkado ("ligado") para produzir um executável. Essa etapa consiste em informar ao programa onde encontrar as bibliotecas de que este necessita para funcionar. Existem dois tipos de bibliotecas: as estáticas e as compartilhadas. As bibliotecas estáticas são anexadas ao arquivo a ser executado, de modo que passam a fazer parte do programa final. Isso, no entanto, pode ser pouco prático, caso muitos programas usem as mesmas sub-rotinas de bibliotecas em comum. Nesses casos, costuma-se usar as bibliotecas compartilhadas. Quando o programa for ligado a uma biblioteca compartilhada, ao invés de ser anexado todo o código da biblioteca ao programa, será apenas fornecida uma referência para a mesma no disco, de modo que o carregador possa encontrá-la durante a execução. Bibliotecas Para o compilador saber onde encontrar os arquivos de inclusão e as bibliotecas, use as opções -I e -L respectivamente, seguidas pelos diretórios onde encontram-se os mesmos. Por exemplo: $ gcc -I/usr/include -L/usr/lib -o exemplo exemplo.c -lstuff Neste exemplo, a opção -I informa ao gcc para que acrescente o diretório /usr/include ao caminho onde serão pesquisados os arquivos de inclusão. A opção -L informa ao gcc que acrescente o diretório /usr/lib ao caminho onde serão pesquisadas as bibliotecas. Por fim, a opção -lstuff indica ao gcc que ligue a biblioteca libstuff.a ao executável. Por padrão todas as bibliotecas começam com as iniciais "lib". As bibliotecas que terminam com a extensão ".a" são estáticas, e as que terminam com extensão ".so" são compartilhadas. Por padrão, o compilador irá tentar primeiro ligar as bibliotecas compartilhadas. Para especificar que você deseja usar bibliotecas estáticas, utilize a opção -static.1 Mais opções... É recomendável que se ative a opção -w ao se usar o gcc. Esta ativa todas as mensagens de aviso e de erro que o compilador possa gerar. Pode-se especificar até que ponto o gcc irá processar o código fonte. A opção -c indica ao gcc que apenas gere o código objeto. A opção -S indica ao gcc que pare após gerar o código assembly. É possível ainda otimizar o seu código fonte, usando as opções -O, que fará otimizações básicas, e -O2, que trará otimizações avançadas. Ao ativar essas opções, o processo de compilação se tornará mais lento, mas o seu executável será mais rápido. Finalmente, para poder futuramente depurar ou analisar detalhes sobre o código, use a opção -g, se for usar o gdb (Gnu Debugger), -p se for usar o prof ou ainda -pg, se você for usar o gprof. 3 Para saber como compilar programas que fazem uso da biblioteca GTK, consulte a seção 2.2.2. -------------------------------------------------------------------------------- 20