O versionamento do kernel é independente dos versionamentos de distro, exceto na medida em que distros incluam patches próprios. Isso é indicado ao inserir um identificador extra na versão, por exemplo:
3.16.6-203
Aqui 3.16.6
é a versão do kernel baunilha (não modificado), e -203
é anexado pela distro para indicar a versão relativa de suas modificações.
Não é necessário que você entenda isso em profundidade, apenas que o kernel do Linux é uma entidade independente. As distribuições combinam-no com o software de usuário e (na maioria dos casos) tudo é pré-compilado para trabalhar em conjunto em uma arquitetura de computador específica ( o mais comum hoje em dia é o X86-64; algumas distribuições chamam isso de AMD64 - elas se referem exatamente à mesma coisa).
A maior parte do software da userland fundamental na verdade vem de GNU , uma organização distinta daquela do kernel do Linux, daí a nome genérico apropriado para o sistema operacional é geralmente considerado "GNU / Linux" .
O software é agrupado em repositórios gerenciados pela distribuição. Quando você instala o software, ele vem de um repositório padrão (por exemplo, "estável"), mas você pode configurar o sistema para usar um diferente (por exemplo, "teste") para acessar diferentes versões de itens individuais por padrão. Você também pode ser capaz de especificar uma versão e, se ela não estiver no repositório padrão, o instalador verificará uma lista de outros para ela.
As distribuições vêm em dois tipos diferentes no que diz respeito à criação de versões. Embora o software individual esteja sempre sendo atualizado, a maioria das distros também é atualizada como um todo ocasionalmente, por exemplo, do Ubuntu 12.x para o Ubuntu 13.x. Isso permite que eles façam mudanças radicais que podem ser muito difíceis de serem feitas de outra forma. No entanto, algumas distribuições usam um lançamento contínuo modelo onde não há lançamentos distintos, há apenas uma versão atualizada continuamente.
Para resumir, o conceito de controle de versão pode se aplicar a:
- O kernel do Linux, um software independente.
- Lançamentos de distribuição, que geralmente têm apelidos (por exemplo, Ubuntu 14.10: "Utopic Unicorn" ou Fedora 20: "Heisenbug").
- A versão de pacotes individuais em uma distro, que geralmente são separados em repositórios distintos. Como o kernel, eles possuem fontes independentes que podem ser modificadas levemente pelos empacotadores de distribuição.
- A "arquitetura de destino" na qual um pacote é compilado (por exemplo, X86-64). Estes também podem ser separados em repos.
Um exemplo de uma string de versão completa do pacote, que combina várias dessas coisas:
foobar-4.11.3-4.fc20.x86_64
Isto é para um fedora .rpm mas outras distros usam esquemas similares. Foobar
é o nome do pacote, 4.11.3
é a versão da fonte usada, -4
indica a versão dos patches aplicados pelo Fedora, f20
é a versão da distribuição para a qual este pacote foi compilado e x86_64
é a arquitetura para a qual foi compilada.