miniaturadaimagem|290x290px|Ubuntu, uma das distribuições mais populares de Linux Uma distribuição Linux (geralmente abreviada de distro) é um criado a partir de uma coleção de softwares, com o uso do núcleo Linux, um sistema gestor de pacotes, e um repositório de programas. Na maior parte dos casos, as distribuições Linux utilizam bibliotecas e utilidades criadas pela GNU. Há distribuições Linux para uma variedade de casos de uso, desde sistemas embarcados (como o DD-WRT para roteadores), computadores pessoais (como o Linux Mint, por exemplo), para supercomputadores, como o Scientific Linux, utilizado pela Fermi National Accelerator Laboratory.
Na maioria das distribuições Linux, a maior parte do software disponível em seus repositórios é livre e de código aberto, na forma de pacotes previamente compilados (binários), e em código-fonte, sendo possível modificá-lo. Normalmente, distribuições Linux incluem alguns softwares proprietários, que não vêm com o código-fonte, como os binary blobs necessários para alguns drivers de dispositivo.
Em uma distribuição Linux para computadores pessoais, além dos programas já mencionados, também incluem um sistema de janelas, um gerenciador de janelas e um ambiente de desktop. Também é comum a inclusão de certos softwares proprietários que não estejam disponíveis em código-fonte, como drivers de dispositivos.
Uma distribuição Linux pode ser obtida on-line, disponíveis na forma de instaladores (como o Ubiquity e o Anaconda) que podem ser gravados em DVDs e pen drives, ou utilizadas para serem gravadas em servidores. Os instaladores e os repositórios de software estão distribuídos em servidores ao redor do mundo.
Uma distrinuição Linux também pode ser definida como uma série de aplicativos ou softwares utilitários (como diversas ferramentas e bibliotecas de GNU) equipadas com o kernel Linux de tal forma que suas funções se aplicam à necessidade do usuário. Normalmente, o software é adaptado para a distribuição e combinado com o gestor de pacotes pelos gerenciadores. Os pacotes de software estão disponíveis em repositórios online, que estão distribuídos ao redor do globo. Além dos glue codes, como os instaladores das distribuições (como o Debian-Installer ou o Anaconda) e os sistemas gestores de pacotes, pouquíssimos pacotes são escritos pelos gerenciadores.
Existem mais de mil distribuições Linux, e a maioria está em desenvolvimento ativo. Por causa da grande disponibilidade de software, as distribuições se diferem em seu foco de usuários, que podem ser computadores pessoais e servidores, ou netbooks e celulares e tablets, além de softwares para ambientes mínimos, como os para sistemas embarcados. Existem distribuições com o suporte de companhias, como o Fedora Linux pela Red Hat, o openSUSE pela SUSE e o Ubuntu pela Canonical, e distribuições completamente suportadas por suas comunidades, como o Arch Linux, o Debian, o Gentoo, e o Slackware Linux. A maior parte das distribuições são feitas prontas para serem usadas e pré-compiladas com um conjunto de instruções, enquanto outras, como o Gentoo, são em sua maioria distribuídas em código-fonte e precisam ser compiladas localmente para que possam ser instaladas.
História thumb|direita|GNU/Linux Distro Timeline, linha temporal representando o desenvolvimento de várias distribuições Linux. Em 1991, Linus Torvalds desenvolveu e distribuiu a primeira versão do Linux kernel, a 0.01. Originalmente, Linux era distribuído apenas em código-fonte, e posteriormente como uma imagem distribuída em um par de disquetes; um inicializável, que continha o Linux kernel, e outro com um conjunto de ferramentas e utilidades GNU, para configurar o sistema de arquivos. Já que o procedimento de instalação era complicado, principalmente se comparado com o crescente número de softwares disponíveis, surgiram distribuições que simplificavam o processo.
As distribuições Linux começaram a receber maior popularidade desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas operativos comerciais, Microsoft Windows e Mac OS, principalmente por parte de pessoas habituadas ao Unix na escola e no trabalho. O sistema tornou-se muito popular no mercado de servidores, principalmente para hospedar websites e bancos de dados.
Entre as primeiras distribuições, estão:
As imagens "Boot-Root" de Torvald, que depois foram administradas por Jim Winstead Jr. Elas são o par de disquetes que vinham com o kernel e as ferramentas mínimas para instalar o sistema (4 de novembro de 1991). MCC Interim Linux (3 de março de 1992). Softlanding Linux System (SLS), que incluia o X Windows System e era uma das distribuições mais compreensíveis ao público leigo de seu tempo (15 de agosto de 1992). Os "rootdisks inicializáveis" (23 de setembro de 1992) e o "Linux Base System" (5 de outubro de 1992), de H.J. Lu. Yggdrasil Linux/GNU/X, uma distribuição comercial (8 de dezembro de 1992).
As duas distribuições mais antigas ainda em desenvolvimento começaram em 1993. A distribuição SLS não era bem mantida, por isso, em julho de 1993, foi lançada outra distribuição SLS, o Slackware, criada por Patrick Volkerding. Igualmente não satisfeito com a SLS, Ian Murdock criou a distribuição grátis Debian, cuja distribuição da versão beta aconteceu em janeiro de 1994, e sua versão estável foi lançada junho de 1996.
Os usuários eram atraídos pelo Linux como uma alternativa do DOS e os sistemas operacionais da Microsoft Windows para os computadores IBM PC compatível, o Mac OS da Apple Macintosh, e as versões pagas do Unix. A maior parte dos primeiros usuários já eram familiares com o Unix, que era usado no trabalho e nas escolas. O Linux foi adotado por seu baixo custo (ou grátis) e a disponibilidade do código-fonte para a maior parte dos softwares.
Em 2017, Linux se tornou mais popular em mercados de servidores e dispositivos previamente embarcados do que no mercado de desktops. Ele foi usado em mais de 50% dos servidores de websites, em comparação com 3,7% do mercado de desktop.
Componentes Muitas distribuições Linux fornecem um sistema de instalação parecido com outros sistemas operacionais modernos. Outras distribuições, incluindo o Gentoo Linux, provém apenas apenas o binário do kernel básico, ferramentas de compilação e um instalador, que compila todo o software necessário para a arquitetura do computador do usuário, usando suas ferramentas e código-fonte.
Gerenciador de pacotes
thumb|350px|componentes de uma distribuição Linux Normalmente, distribuições são segmentadas em pacotes. Cada pacote contém uma aplicação ou serviço diferente. Alguns exemplos são a biblioteca para lidar com o formato de imagem PNG, coleções de fontes e o navegador web.
O pacote é tipicamente fornecido como um código compilado, com sua instalação e remoção feitas por um sistema gestor de pacotes (SGP), ao invés de um simples arquivador de ficheiros. Cada pacote feito para certo SGP contém metadados, como sua descrição, o número de sua versão e suas dependências (outro pacotes necessários para sua execução). O SGP avalia os metadados para permitir a procura de pacotes, executar atualizações automáticas e checar se todas suas dependências estão presentes (e até mesmo notificar o usuário para que as instale, ou que eles sejam instalados automaticamente). O pacote também pode ser usado como código-fonte para ser compilado pelo sistema.
A maior parte das distribuições instalam os pacotes, incluindo o kernel e outros componentes essenciais do sistema operacional, em uma configuração predeterminada. Alguns poucos requerem permissões para ajustamento de configuração para instalar pela primeira vez. Estes procedimentos fazem o processo de instalação menos complicados, especialmente para novos usuários, mas nem sempre são aceitáveis. Para certos requerimentos, o software precisa ser cuidadosamente configurado para ser útil, para funcionar corretamente com outro software, ou para ser seguro, e administradores locais são comumente obrigados a rever e reconfigurar os procedimentos.
Algumas (mas não todas) distribuições ajustam seus softwares personalizáveis ou provém ferramentas para ajudar os usuários.
Ao obter e instalar todos os serviços providos pela distribuição fora do pacote, o administrador pode criar uma instalação "sem distribuições". É possível criar sistemas operacionais do zero, evitando completamente as distribuições. É necessário criar uma maneira de gerar os primeiros binários até que o sistema seja auto-hospedável. Isto pode ser feito com via compilação em outro sistema capaz de construir binários para certo objetivo (possivelmente um compilador cruzado). Um exemplo é o Linux From Scratch.
Tipos e tendências
Em termos gerais, as distribuições Linux podem ser:
Comerciais ou não-comerciais Feitas para aplicações empresariais, avançadas ou domésticas Suportam diversos tipos de hardware ou são específicos para uma plataforma, até mesmo a certificação do vendedor da plataforma Concebido para servidores, computadores pessoais ou dispositivos embarcados Para propósitos gerais ou altamente especializáveis para funcionalidades de máquina específicas (como firewalls, roteadores de rede e clusters) Feitos para um grupo específico de usuários (por exemplo, por internacionalização e tradução de linguagem ou pela inclusão de pacotes sobre produção musical ou computação científica) Construido principalmente para segurança, usabilidade, portabilidade, ou para ser de fácil compreensão Lançamento padrão ou contínuo
A diversidade de distribuições Linux se dá pela variação técnica, organizacional ou filosófica entre os produtores e os usuários. A licença permissiva dos software livres permitem que usuários com o conhecimento e interesse necessários podem customizar uma distribuição existente ou criar uma do zero de acordo com seus interesses.
Distribuições contínuas Distribuições Linux contínuas são mantidas por atualizações pequenas e contínuas. Os termos contínuo parcial ou contínuo em partes (juntos com os sinônimos semi-contínuo e meio-contínuo), inteiramente contínuo, verdadeiramente contínuo e opcionalmente contínuo por vezes são usados pelos desenvolvedores e usuários.
Repositórios de distribuições contínuas normalmente contém lançamentos de software muito recentes, normalmente a última versão estável disponível. Há pseudo-lançamentos e mídias de instalação que são versões de controle da distribuição na data de lançamento da imagem. Normalmente, um sistema operacional de distribuição contínua instalado por uma mídia mais antiga ainda pode ser atualizado.
Dependendo do uso, há vantagens e desvantagens para as metodologias de desenvolvimento de software para ambas distribuições padrão e contínuas.
Em termos de desenvolvimento de software, as distribuições padrão necessitam de um grande esforço para manter as versões anteriores funcionando por precisar atualizar a versão mais nova com correções de falhas ao mesmo tempo que precisam trabalhar em seu desenvolvimento. Também, as distribuições padrão precisam de mais de uma ramificação para o desenvolvimento e manutenção, que aumenta a quantidade de trabalho dos desenvolvedores e mantenedores.
Por outro lado, recursos de software e planejamento tecnológico são mais simples em distribuições padrão, pois os recursos das versões futuras são mais fáceis de se prever. Os ciclos de lançamento de software também podem ser sincronizados com projetos upstream, como ambientes de área de trabalho.
Do ponto de vista da experiência do usuário, lançamentos padrão são vistos como mais estáveis e livres de falhas, já que conflitos de software podem ser mais facilmente corrigidos e o software em si pode ser testado e avaliado com mais cuidado durante o ciclo de desenvolvimento. Por isso, eles tendem a ser escolhidos em ambientes empresariais ou em que é importante se chegar a um resultado.