segunda-feira, março 20, 2006

O que é Software Livre

O Que é?
Nós mantemos esta definição do Software Livre para mostrar claramente o que deve ser verdadeiro à respeito de um dado programa de software para que ele seja considerado software livre.

"Software Livre" é uma questão de liberdade, não de preço. Para entender o conceito, você deve pensar em "liberdade de expressão", não em "cerveja grátis".

"Software livre" se refere à liberdade dos usuários executarem, copiarem, distribuírem, estudarem, modificarem e aperfeiçoarem o software. Mais precisamente, ele se refere a quatro liberdades, para os usuários do software:

  • A liberdade de executar o programa, para qualquer propósito (liberdade no. 0);
  • A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades (liberdade no. 1). Aceso 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 no. 2);
  • A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie (liberdade no. 3). Acesso ao código-fonte é um pré-requisito para esta liberdade.

Um programa é software livre se os usuários tem todas estas liberdades. Portanto, você deve ser livre para redistribuir cópias, seja com ou sem modificações, seja de graça ou cobrando uma taxa pela distribuição, para qualquer um em qualquer lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que você não tem que pedir ou pagar pela permissão.

Você deve também ter a liberdade de fazer modifcações e usá-las privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que elas existem. Se você publicar as modificações, você não deve ser obrigado a avisar a ninguém em particular, ou de nenhum modo em especial.

A liberdade de utilizar um programa significa a liberdade para qualquer tipo de pessoa física ou jurídica utilizar o software em qualquer tipo de sistema computacional, para qualquer tipo de trabalho ou atividade, sem que seja necessário comunicar ao desenvolvedor ou a qualquer outra entidade em especial.

A liberdade de redistribuir cópias deve incluir formas binárias ou executáveis do programa, assim como o código-fonte, tanto para as versões originais quanto para as modificadas. Está ok se não for possível produzir uma forma binária ou executável (pois algumas linguagens de programação não suportam este recurso), mas deve ser concedida a liberdade de redistribuir essas formas caso seja desenvolvido um meio de criá-las.

De modo que a liberdade de fazer modificações, e de publicar versões aperfeiçoadas, tenha algum significado, deve-se ter acesso ao código-fonte do programa. Portanto, acesso ao código-fonte é uma condição necessária ao software livre.

Para que essas liberdades sejam reais, elas tem que ser irrevogáveis desde que você não faça nada errado; caso o desenvolvedor do software tenha o poder de revogar a licença, mesmo que você não tenha dado motivo, o software não é livre.

Entretanto, certos tipos de regras sobre a maneira de distribuir software livre são aceitáveis, quando elas não entram em conflito com as liberdades principais. Por exemplo,copyleft (apresentado de forma bem simples) é a regra de que, quando redistribuindo um programa, você não pode adicionar restrições para negar para outras pessoas as liberdades principais. Esta regra não entra em conflito com as liberdades; na verdade, ela as protege.

Portanto, você pode ter pago para receber cópias do software GNU, ou você pode ter obtido cópias sem nenhum custo. Mas independente de como você obteve a sua cópia, você sempre tem a liberdade de copiar e modificar o software, ou mesmo de vender cópias.

"Software Livre" Não significa "não-comercial". Um programa livre deve estar disponível para uso comercial, desenvolvimento comercial, e distribuição comercial. O desenvolvimento comercial de software livre não é incomum; tais softwares livres comerciais são muito importantes.

Regras sobre como empacotar uma versão modificada são aceitáveis, se elas não acabam bloqueando a sua liberdade de liberar versões modificadas. Regras como "se você tornou o programa disponível deste modo, você também tem que torná-lo disponível deste outro modo" também podem ser aceitas, da mesma forma. (Note que tal regra ainda deixa para você a escolha de tornar o programa disponível ou não.) Também é aceitável uma licença que exija que, caso você tenha distribuído uma versão modificada e um desenvolvedor anterior peça por uma cópia dele, você deva enviar uma.

No projeto GNU, nós usamos "copyleft" para proteger estas liberdades legalmente para todos. Mas também existe software livre que não é copyleft. Nós acreditamos que hajam razões importantes pelas quais é melhor usar o copyleft, mas se o seu programa é free-software mas não é copyleft, nós ainda podemos utilizá-lo.

Às vezes regras de controle de exportação e sansões de comércio podem limitar a sua liberdade de distribuir cópias de programas internacionalmente. Desenvolvedores de software não tem o poder para eliminar ou sobrepor estas restrições, mas o que eles podem e devem fazer é se recusar a impô-las como condições para o uso dos seus programas. Deste modo, as restrições não afetam as atividades e as pessoas fora da jurisdição destes governos.

Quando falando sobre o software livre, é melhor evitar o uso de termos como "dado" ou "de graça", porque estes termos implicam que a questão é de preço, não de liberdade.

Finalmente, note que critérios como os estabelecidos nesta definição do software livre requerem cuidadosa deliberação quanto à sua interpretação. Para decidir se uma licença se qualifica como de software livre, nós a julgamos baseados nestes critérios para determinar se ela se segue o nosso espírito assim como as palavras exatas. Se uma licença inclui restrições impensadas, nós a rejeitamos, mesmo que nós não tenhamos antecipado a questão nestes critérios. Às vezes um requerimento de alguma licença levanta uma questão que requer excessiva deliberação, incluindo discussões com advogados, antes que nós possamos decidir se o requerimento é aceitável. Quando nós chegamos a uma conclusão sobre uma nova questão, nós frequentemente atualizamos estes critérios para tornar mais fácil determinar porque certas licenças se qualificam ou não.

Para maiores informações, visite o site de filosofia do projeto GNU.

fonte: http://www.softwarelivre.org/whatisit.php

sexta-feira, março 17, 2006

Instalando SUDO no GNU Linux

Introdução:
Sudo (Superuser do) permite administradores de sistemas linux dar, a certos usuários (ou grupo de usuários), a capacidade de "rodar" alguns ou todos os comandos de um console como usuário root ou qualquer outro tipo de usuário.

Instalação:

Não vamos fugir da boa e velha compilação ou instalação usando os fontes. Você pode encontrá-los em http://www.gratisoft.us/sudo/sudo.html. A versão tratada aqui é a sudo 1.6.8p12.

Para a maioria dos sistemas...

Baixe o "source" do sudo:

wget ftp://ftp.sudo.ws/pub/sudo/sudo-1.6.8p12.tar.gz
/* se der problemas com esse mirror, consulte outros aqui */

tar xvzf sudo-1.6.8p12.tar.gz -C /usr/local/src

cd /usr/local/src/sudo-1.6.8p12

./configure
make
make install

Após essas rotinas, edite o arquivo sudousers com o 'visudo'

Simples né!? Pois bem, pode parecer simples mas só o INSTALL do sudo há várias opções para as mais diversas necessidades. Nunca deixe de olhar o INSTALL e o README antes de compilar.

Bom, alguns esclarecimentos sobre a postagem:

Sim, foi rápida e objetiva. Tentei abordar de forma simples a instalação do sudo, o qual pode ser compilado qualquer sistema GNU Llinux. Essa talvez seja o método mais "fácil" de se compilar o programa, mas, como já disse, há várias opções possíveis para concretizar a instalação.

EFI - Em Inglês

The EFI specification defines a new model for the interface between operating systems and platform firmware. The interface consists of data tables that contain platform-related information, plus boot and runtime service calls that are available to the operating system and its loader. Together, these provide a standard environment for booting an operating system and running pre-boot applications.

The EFI specification is primarily intended for the next generation of IA architecture-based computers, and is an outgrowth of the "Intel® Boot Initiative" (IBI) program that began in 1998.

In 2005 the Unified EFI Forum was formed. Using the EFI 1.10 specification as the staring point, this industry group is responsible for developing, managing and promoting the UEFI specification. Please refer to the UEFI site for more information on UEFI and for accessing UEFI specifications.

For more information about EFI, see EFI presentations.

quinta-feira, março 16, 2006

Tempos antigos...

Internet Archive:
web.archive.org
Eeste site permite ver como eram os layouts antigos de uma infinidade de sites. Como exemplo, você pode ver o design de 1997 do site do UOL e até como era o InfoWester em seu lançamento como site .com em 2003. Para isso, basta digitar o endereço do site no campo de busca do Internet Archive e clicar em "Take me Back". Em seguida, uma lista de versões do site sugerido será mostrado. Em inglês.


Fonte

segunda-feira, março 13, 2006

Engenharia em Sistemas Digitais

Descrição:

Formação de profissionais capacitados a efetuar diagnósticos, formular soluções e gerir a implantação de inovações em processos e produtos envolvendo tecnologias digitais. A sua sólida formação básica em engenharia permitirá uma permanente atualização profissional e uma compreensão adequada mesmo dos problemas não intrinsecamente digitais, dando a eles soluções avançadas que possam incluir as possibilidades do estado da arte da microeletrônica.

Perfil do Profissional:

Um profissional com um sólida base científica e bons conhecimentos dos sistemas produtivos, capaz de assimilar e avaliar inovações bem como ter flexibilidade de atualizar-se e capacitar-se face a problemas novos. Essa capacitação é fundamental para dar suporte ao desenvolvimento de aumento de competitividade da pequena e média empresa de base tecnológica, em atividades que venham a exigir a combinação de tecnologias digitais e sistemas de hardware e software. Em particular, uma forte conexão com o CEITEC proporcionará aos graduados uma adequada capacidade de julgamento sobre a transição de tecnologias convencionais para as de alta integração com a microeletrônica.

Fonte: site da uergs

domingo, março 12, 2006

Compilei o kernel 2.6.15

Olha pessoal, esse poste simples, embora não seja nenhuma dica, é para apenas vos informar que estou usando agora, sem maiores problemas, por enquanto, o kernel 2.6.15. Bom, um grande abraço a todos!

terça-feira, março 07, 2006

Google?!

A escolha do nome

O nome Google foi escolhido por causa da expressão googol, que representa o número 1 seguido de 100 zeros, para demonstrar assim a imensidão da Web.

A expressão googol surgiu de um fato um tanto curioso, o matemático Edward Kasner questionou o seu sobrinho de 8 anos sobre a forma como ele descreveria um número grande - um número realmente grande: o maior número que ele imaginasse. O pequeno Milton Sirotta emitiu um som de resposta que Kasner traduziu por "google". Mais tarde Kasner definiu um número ainda maior: o googolplex.

Veja os derivados do nome googol:

  • Googolplex: é o nome do conjunto de construções de trabalho e moradia do Google, em Mountain View - Califórnia. Este termo também vem da matemática e é algo como 10^{10^{100}}, que seria 10 elevado a (10 elevado a 100) ou 10 elevado a googol.
  • Googolduplex: como quando alguém se refere a um dos complexos de moradia do Google; Este termo, voltando à matemática, se refere a 10^{10^{10^{100}}}, ou 10 elevado a (10 elevado a (10 elevado 100)), ou mesmo 10 elevado a googolplex.
fonte:

segunda-feira, março 06, 2006

Boot Splash com Slackware - Por Bruno R. da Silva

Esse texto escrito por Bruno R. da Silva mostra como usar o Bootsplash no Slackware.
Bootsplash no Slackware

Usando Bootsplash no Slackware por Blood_Brother

1.0 Pré-requisitos
1.1 Aplicando o patch ao kernel
1.2 Compilando o splash
1.3 Criando o /etc/bootsplash
1.4 Criando o /boot/initrd com a bootsplash
1.5 Editando o /etc/lilo.conf
1.6 Criando o /etc/rc.d/rc.bootsplash
1.7 Editando alguns arquivos no /etc/rc.d/
1.8 Últimos ajustes
2.0 Contatos e dúvidas
2.1 Créditos

3.0 Dados do autor

1.0 Pré-requisitos

A primeira ação a ser feita é o download do patch referente à sua versão de kernel, o mesmo pode ser encontrado em http://www.plumlocosoft.com/kernel/patches/2.4/ Somente precisa ser baixado o patch com bootsplash ou bs no nome, que pode ser encontrado em subpastas split ou components. (Ao entrar no link você perceberá do que estou falando)

Após a obtenção do patch é necessário o download de um theme (o qual vai ser sua bootsplash), que pode ser obtido em http://www.bootsplash.org (recomendo que use o theme Default Linux, que é o que foi testado neste artigo).

Faz-se necessário também o pacote de fontes a seguir:
ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.0.7.tar.bz2 Este pacote possui os fontes do utilitário splash, que será usado mais adiante.

Um outro pré-requisito muito importante é saber compilar o kernel. (Sem este pré-requisito não continue)

1.1 Aplicando o patch ao kernel

O patch pode ser aplicado facilmente da seguinte maneira:

~# bunzip2 arquivo-do-patch.bz2
~# cd /usr/src/linux (ou onde estiver o fonte do seu kernel)
~# patch -p1 < /onde-está-seu-patch/arquivo-do-patch
Se você receber alguma mensagem de erro o patch é incompatível com sua versão de kernel, então baixe a versão certa.

Na config do seu kernel assegure-se de ter marcado a opção "Console drivers -> Frame-Buffer support -> VESA VGA graphics console" (ou outro framebuffer apropriado), e a opção "Use splash screen instead of boot logo".

Feito isto, compile seu kernel e passe para o passo seguinte

. 1.2 Compilando o splash

Basta descompactar o bootsplash-3.0.7.tar.bz2, entrar no diretorio criado com o nome de bootsplash-3.0.7, executar os 2 passos seguintes:

~# make splash
~# cp splash /sbin

1.3 Criando o /etc/bootsplash

Esta parte é importante, pois é a pasta onde serão armazenados seus themes. Então, crie a pasta /etc/bootsplash e dentro dela crie outra chamada themes. Dentro então de /etc/bootsplash/themes descompacte o theme que você obteve no passo 1.0.

1.4 Criando o /boot/initrd com a bootsplash

Este passo é bem simples, basta executar o comando: splash -s -f /etc/bootsplash/themes/Linux/config/bootsplash-1024x768.cfg > /boot/initrd

Repare que usei /etc/bootsplash/themes/Linux/config/bootsplash-1024x768.cfg porque é referente ao theme Default Linux que foi usado neste artigo, se você baixou outro theme adeque o caminho ao mesmo.

1.5 Editando o /etc/lilo.conf

Existem 2 linhas fundamentais para o funcionamento correto do bootsplash, são as que seguem:

initrd = /boot/initrd
append = "splash=silent"

As linhas podem ser colocadas logo abaixo desta:

root = /dev/hda1

Ficando então seu lilo.conf mais ou menos desta maneira:

image = /boot/vmlinuz
root = /dev/hda1
initrd = /boot/initrd
label = Linux
read-only

1.6 Criando o /etc/rc.d/rc.bootsplash

O /etc/rc.d/rc.bootsplash deve ser da seguinte maneira (sem as linhas que começam com --):

-- INICIO DO ARQUIVO -- #! /bin/sh
#
function progressbar()
{
if [ $# != 1 ]
then
echo "Usage: progressbar {progress}"
exit 1
fi
echo "show $(( 65534 * $1 / 100 ))" >
/proc/splash
}
-- FIM DO ARQUIVO --

Ps.: não se esqueça que o /etc/rc.d/rc.bootsplash precisa ser executável, para isso: chmod +x /etc/rc.d/rc.bootsplash

1.7 Editando alguns arquivos no /etc/rc.d/

Dois arquivos importantes serão editados para que controlem a barra que indica o carregamento do sistema no bootsplash, são eles: rc.M e rc.S

No início dos respectivos arquivos você precisa inserir esta linha: . /etc/rc.d/rc.bootsplash (a linha precisa estar logo abaixo do #! /bin/sh)

Após feito isso é você quem vai decidir a porcentagem em que o sistema está carregado em tal ponto, você deve então chamar a função progressbar seguida de um número que vai de 0 (zero) a 100 (cem).

Uma nota importante é que o rc.S é iniciado primeiro na hora do boot, então é interessante que logo após a primeira função que ele executar você já coloque progressbar 10 (posicionar a barra de carregamento do boot splash em 10%), e por ai vai. É interessante também que ao final do rc.S termine em mais ou menos 50% e a partir do início do rc.M você coloque progressbar 60, e ao final progressbar 100. Segue um exemplo para que você possa entender melhor:

#!/bin/sh
# rc.S exemplo
. /etc/rc.d/rc.bootsplash
echo "Progress bar em 10%"
progressbar 10
echo "Progress bar em 20%"
progressbar 20
echo "Progress bar em 35%"
progressbar 35
echo "Progress bar em 50%"
progressbar 50
# Fim do rc.S

#!/bin/sh
# rc.M exemplo
. /etc/rc.d/rc.bootsplash

echo "Progress bar em 60%"
progressbar 60
echo "Progress bar em 70%"
progressbar 70
echo "Progress bar em 85%"
progressbar 85
echo "Progress bar em 100%"
progressbar 100
# Fim do rc.M

Penso que assim fica melhor entendido.

1.8 Últimos ajustes

Feito todos os passos anteriores agora só falta você copiar a sua imagem do kernel com o patch aplicado para /boot/vmlinuz ou criar um link para ele. Executar: lilo (para que o lilo seja reinstalado). E finalmente! Reiniciar a máquina e rezar pra que tudo tenha funcionado, hehehe, brincadeira, se você seguiu os passos certinho tudo deve funcionar.

2.0 Contatos e dúvidas

Se alguém quiser manter contato ou tirar alguma dúvida (pequena!) basta me enviar um e-mail.

Ps.: Se tiver algum erro no texto também ficaria grato que me enviassem um e-mail relatando-o, para que eu possa corrigir.

2.1 Créditos

Gostaria de agradecer àqueles que acreditam em mim, e ao pessoal do #LinuxHelp da rede VirtuaLife que sempre dão uma força!

Slackware r0x!

3.0 Dados do autor

Nome: Bruno R. da Silva
Nickname: Blood_Brother ou Blutsbruder
Nascido em: 14/04/1985
Cidade: Florianópolis
Site pessoal: http://www.bloodcorp.tk
E-Mail:
Ocupação: Estudante de Ciências da Computação na Universidade Federal de Santa Catarina (UFSC)
Experiencia Profissional: Administração de redes Windows e Linux, implementação de proxys e serviços de ftp, http, sshd e vnc.

FISL 7.0 Em Porto Alegre

7º Fórum Internacional Software Livre
19, 20, 21 e 22 de Abril de 2006
Porto Alegre, RS, Brasil

A sétima edição do FISL será mais uma vez em Porto Alegre RS. Nossa "querência" sediará esse evento que vem se tornando cada vez maior em todo Brasil e no mundo. O evento contará com presença do guru Richard Stalman, uma das grandes personalidades mundiais do software livre.

sábado, março 04, 2006

Compilando Kernel 2.4.x

Em minha primeira postagem, gostaria de estar colocando algo bastante interessante e que fascina a todos, que é a COMPILAÇÃO do Kernel. Esse texto é uma tradução adaptada de um trecho que trata sobre compilação em sistemas linux de o "The Revised Slackware Book Project" cuja a autoria é Alan Hicks, Chris Lumens, David Cantrell e Logan Johnson.
Com singelas adaptações minhas...

A questão "Devo compilar um kernel para meu sistema?" é geralmente a perguntada por usuários novos. A resposta é definitivamente tavez. Há poucos exemplos onde você precisará compilar um kernel específico para o seu sistema. Muitos usuário podem usar um kernel precompilado e seus respectivos módulos para ativar um sistema - no caso do Slackware Linux. Isto é, num sistema com SMP você definitivamente vai querer compilar um kernel com suporte a SMP. Também, muitos usuários acreditam que um kernel customizado "roda" mais rápido em suas máquinas. Você pode achar útil compilar um kernel otimizado para seu processador especificamente falando.
Construiu seu próprio kernel não é uma tarefa difícil. O primeiro passo é se certificar de que os fontes instalados em seu sistema. Certifique-se de que você tem instalado em seu sistema um compilador C, GNU make e o GNU binutils. Geralmente, e para evitar qualquer problema, uma boa idéia ter todo o pacote de desenvolvimento. Você pode fazer o download da última versão do kernel de http://www.kernel.org/mirrors

Compilação do Kernel versão 2.4.x

% su -
Password:
# cd /usr/src/linux

O primeiro passo é trazer a fonte do kernel para dentro de sua base. Emitimos esse comando para fazer isso (Nota, você deve fazer um backup do seu .config atual, pois será removido sem haviso prévio).

# make mrproper

Agora você pode configurar o kernel para o seu sistema. As três maneiras de se fazer isso é: a primeira é baseado em texto com perguntas e resposta, muito demorado. Fará várias perguntas e depois criará um arquivo de configuração. O problema, além de ser lento, é que se houver algum erro, tem de começar tudo denovo. O método que a maioria das pessoas preferem é o menu. Por último, há um método baseado numa ferramena de configuração do X. Escolha a que melhor convir:

# make config (text-based Q&A version)
# make menuconfig (menu driven, text-based version)
# make xconfig (X-based version, make sure you are in X first)

Usuários novos poderão achar o menuconfig provavelmente o mais fácil de usar. Telas de ajuda provêem explicações sobre as várias partes da compilação do kernel. Depois de configurar seu kernel, saia do programa de configuração. Ele definir os arquivos configuração necessários. Agora nós podemos preparar a árvore de fontes para a construção.

# make dep
# make clean

O próximo passo é compilar o kernel.

# make bzImage

Isso pode demorar um pouco dependendo da velocidade do seu CPU. Durante o processo, você verá inúmeras mensagens do compilador. Depois de compilar a imagem do kernel, você irá compilar as várias partes do kernel que você definiu como modulares.
# make modules

Nós agora podemos instalar o kernel e os módulos que foram compilados. Para instalar o kernel num Linux, por exemplo, no Slackware, serão necessários estes comandos:

# mv /boot/vmlinuz /boot/vmlinuz.old
# cat arch/i386/boot/bzImage > /vmlinuz *(ou /boot/vmlinuz, não importa)
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
# make modules_install

Após você deverá editar o seu Boot Loader favorito para que ele "carregue" o sistema