Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Funtoo:About/pt-br

From Funtoo
Jump to navigation Jump to search

Visão do Projeto

Daniel Robbins originalmente escreveu a Filosofia Gentoo Linux, e nisso definiu o conceito de uma ferramenta ideal assim sendo algo que "simplesmente funciona", não fica no caminho do usuário, e responde a vontade do usuário ao invés de forçar o usuário a trabalhar de um jeito particular.

Funtoo Linux é um projeto de pessoas que concordam filosofia da ferramenta ideal, e que são apaixonadas pelo nosso desejo de melhorar a tecnologia de ser tão próximo desse ideal quanto possível. O foco de nossos esforços é o melhoramento contínuo da distribuição Gentoo Linux.

O foco do desenvolvimento do Funtoo Linux é atualmente direcionado ao sistema central (core system), significando qualquer coisa em um stage3, portage, core languages, kernels, aplicações de servidor, e em cima do X11 e gerenciadores de janelas simples, e incluindo ambientes desktop como o GNOME e o KDE.

Foco, Foco, Foco

Os desenvolvedores devem utilizar esses princípios gerais para determinar em quais prioridades focar primeiro. -Essas áreas abaixo estão listadas em ordem de prioridade, então o próximo parágrafo é a mais alta prioridade (top priority), seguido pela próxima prioridade, etc. Só por que algo é prioridade mais baixa não significa que é "menos importante" - somente significa tratar as coisas de prioridades mais altas (higher-priority) primeiro.

Constrói?

  • Constrói confiavelmente?

O primeiro teste - o software constrói a partir do código fonte corretamente? Isso não se trata somente de emergir ebuilds no seu sistema -- OS builds do stage funcionam sem problemas utilizando o Metro? Se não, isso precisa ser corrigido primeiro. O Funtoo Linux continuamente constrói lançamentos do sistema operacional atualizados, e essas devem ser construídas confiavelmente em todos os momentos. O foco aqui é para builds 100% corretos e eficientes utilizando o Metro, e depois emergindo aplicações iniciais em um sistema Funtoo Linux.

Ele executa?

  • Ele executa bem?

OK, ele constrói. Ele executa corretamente? Ele funciona? Isso é bem vago, então vamos colocar algumas especificações aqui. Quando instalar o Funtoo Linux a partir do stage3, tudo funciona? Quais complicações ou falhas foram encontradas na instalação inicial? Essas devem ser corrigidas, ou soluções devem ser colocadas no lugar, e correções a longo prazo devem ser trabalhadas para melhorar a experiência do usuário. Lembre-se de que o foco do Funtoo Linux é no sistema central - Essa é a coisa que você toca quando você instala o Funtoo Linux pela primeira vez. Você deve reinstalar o Funtoo Linux regularmente para verificar por quaisquer questões e priorizar as questões de instalação do usuário e a experiência inicial do usuário.

Consigo Usá-lo?

  • Facilmente?
  • Para Trabalho de Verdade?

OK, ele constrói, e executa. Mas eu posso realizar tarefas de verdade com a ferramenta? Qual é a facilidade ou dificuldade de realizar essas tarefas? A tecnologia (e documentação) devem ser projetadas para oferecer suporte ao usuário na questão de realizar estas tarefas, ao invés de forçar o usuário a saltar por arcos para obter algo configurado corretamente. As coisas devem ser automatizadas o tanto o quanto possível sem assumir controle distante do usuário. Padrões seguros, razoáveis que são adequados para a cargas produtivas devem ser utilizadas por todas as aplicações. As coisas devem emergir sem bloqueadores ou ausência de recursos que devem ser habilitadas manualmente pelo usuário. E uma implicância - se o emerge parar para dizer ao usuário que ele deve definir uma variável USE para que continue, isso é algo que deve ser corrigido de um jeito ou de outro. Então, quando tudo é dito e feito, ele deve funcionar.

É Documentado?

  • Para projetos de software livre, documentação é a chave.

Se o software, executa e funciona, outros ainda podem ainda não ser capaz de utilizá-lo até que documentação adequada esteja disponível. Documentação montante nem sempre é completa ou fácil de entender, então frequente documentação adicional para usuário é necessária. Se etapas do manual são necessárias, elas devem ser documentadas claramente e corretamente. A opção de escolha da documentação é a Funtoo wiki tão bem quanto as man pages.

Para o código fonte, comentários bem detalhados devem ser utilizados. Você pode estar trabalhando no código agora, mas outra pessoa poderá estar trabalhando nele daqui a seis meses. É esperado que desenvolvedores escrevam comentários claros que sejam suficientemente não-técnicos e forneça o contexto necessário para permitir que desenvolvedores menos experiente entendam partes criticas do código, e idealmente 'todas' as partes do código. Por favor veja Padrões de Código.

É bem projetado?

  • Otimizado?
  • Sustentável?

Ele constrói e executa, e eu posso utilizá-lo para realizar trabalho de verdade. Mas o sistema é bem projetado? Ele funciona confiavelmente? Todos os patches estão disponíveis e corrige o lugar para assegurar uma experiencia computacional confiável? O Funtoo Linux está fornecendo a melhor tecnologia possível aos usuários? E essa tecnologia é fácil de manter? lembre-se, todas as coisas sendo iguais, menos código é melhor que mais código por que é mais fácil de manter. Há comentários detalhados no código aonde é necessário?

Estamos melhorando?

OK, estamos fazendo todas as etapas acima. Aqui está o próximo teste - estamos melhorando? A qualidade, segurança, usabilidade e a manutenção da distribuição está melhorando com o tempo, ou ela está subindo, e depois descendo, e não estamos mesmo tendo nenhum progresso? O objetivo no final do dia é obter progresso avançado no qualidade da distribuição. Isso requer automação melhor, ferramentas melhores, processos melhores, e investimento em pesquisa e desenvolvimento e novos métodos de fazer coisas. Isso também requer a atitude correta. Se estivermos fazendo um monte de trabalho e a qualidade global da distribuição não estiver melhorando, então nossos esforços não estão fazendo diferença a longo prazo, mesmo que eles possam estar tratando bugs e problemas imediatos. Temos que garantir que nossos esforços venham valer a pena, e que eles estão fazendo uma diferença positiva a longo prazo na qualidade da distribuição.

Qual o verdadeiro problema?

Construindo nesse tema - quando um bug é encontrado, qual é o verdadeiro problema, ou a raiz (root cause)? Pensamento estratégico tão bem quanto uma resolução profunda (in-depth troubleshooting) é necessária para identificar a raiz do problema. Devemos somente corrigir as raízes? Não, isso é impraticável, por que fazer isso leva muito tempo. Ao invés disso, soluções alternativas são com frequência utilizadas para restauras rapidamente a qualidade à níveis aceitáveis. No entanto, somente implementar soluções alternativas é perigoso, por que os bugs tendem a multiplicar-se enquanto a questão subjacente não for solucionada. A solução adequada é implementar soluções alternativas mas não perder o foco no necessário para tratar as questões subjacentes, ou raízes, do problema. De fato, muito do foco do Funtoo Linux está nessa ultima etapa - agressivamente corrigindo um monte de questões imediatas assim nós podemos começar a tratar os problemas mais profundos de uma vez por todas...

Arquitetura

...e tratar da raiz de problemas com frequência requer uma mudança significativa na arquitetura de software. Funtoo Linux é um projeto que não tem medo de fazer alterações arquitetônicas significantes, e mesmo agressivas, a fim de corrigir problemas. Isso é o que os nossos usuários esperam que façamos, e desde que essas alterações sejam propriamente testadas, gerenciadas, planejadas, automatizadas e comunicadas aos usuários, eles não irão se chatear. Conforme declarado no parágrafo anterior, o projeto Funtoo Linux é zeloso a respeito de tratar esses problemas centrais de arquitetura -- mas nós precisamos controlar os desafios mais fundamentais primeiro. Uma vez soluções alternativas estão no lugar, levaremos uma punhalada em alguma alteração no sistema central que pagarão dividendos bem no futuro.

Exemplos

Abaixo, você encontrará exemplos de esforços que tem alinhados a esses objetivos. Essa seção lhe dará uma sensação do quanto projetos reais podem ser iniciados que se alinham com a visão do Funtoo Linux definida acima.

Boot-Update

Boot-Update foi projetado por Daniel Robbins para prover um jeito mais elegante de configurar o carregador de boot sob o Funtoo Linux. Esse projeto foi priorizado por várias rasões. Uma, esse projeto tinha que fazer com que a experiência da instalação inicial (veja #Ele executa?) Também, ausência do suporte ao GRUB2, tão bem quanto o suporte ao GPT/GUID, foi definido como um ponto fraco crítica na funcionalidade atual do Gentoo Linux (veja #É bem projetado?) Por isso, um novo configurador unificado foi escrito que utiliza /etc/boot.conf como arquivo de configuração para o carregador de boot global. Isso representa a mudança na arquitetura do carregador de boot (veja #Arquitetura) sob o Funtoo Linux, a fim de melhorar a usabilidade e a flexibilidade em soluções existentes, e tentar reduzir ou eliminar uma classe de problemas relacionadas a configuração do carregador de boot, que é especialmente problemático no GRUB2.

Metro

foi projetado por Daniel Robbins e é utilizado para tratar a questão do "#Constrói?". A solução existente, catalyst, foi difícil de manter (veja #É bem projetado?), então Metro foi desenvolvido para prover um novo mecanismo para a construção de lançamentos de sistema operacional (OS releases).

Forked Ebuilds

Nem todas as melhoras envolvem grandes esforços no desenvolvimento de software. De fato, a maioria das correções envolvem correções relativamente pequenas para os ebuilds. Essas correções são com frequência feitas para corrigir uma falha no Metro build (veja #Constrói?) ou tratar de alguma questão de qualidade (veja #É bem projetado?). O ebuild www-servers/nginx foi melhorado para prover melhores configurações padrões para sistemas de produção, com alterações correspondentes feitas ao sys-libs/pam para permitir que isso funcione. dev-lang/python contem correções para assegurar que o contem correções para assegurar que Metro builds complete corretamente e um symlink /usr/bin/python válido sempre exista.

OpenVZ

Suporte a OpenVZ é uma prioridade específica do Funtoo Linux. Funtoo Linux mantem um patched sys-cluster/vzctl com vários patches para corrigir uma variedade de problemas. Em adição, openvz-rhel6-stable e openvz-rhel5-stable ebuilds tem sido criados para facilitar a instalação de kernels OpenVZ de qualidade para produção (veja #Consigo Usá-lo?) em adição, documentação OpenVZ existe no wiki (veja #Consigo Usá-lo?)