Como um sistema operacional Linux pode ser "baseado em" outro sistema operacional Linux?

38

Eu estive pesquisando várias distros do Linux recentemente para ter uma idéia do que está por vir, e uma frase que continua surgindo é que "[este SO] é baseado em [outro SO]". Por exemplo:

  • O Fedora é baseado no Red Hat
  • O Ubuntu é baseado no Debian
  • Linux Mint é baseado no Ubuntu

Para quem vem de um ambiente Mac, entendo como o "OS X é baseado em Darwin"; no entanto, quando olho para o Linux Distros, me pego perguntando: "Eles não são todos baseados no Linux ..?"

Nesse contexto, o que exatamente significa para um sistema operacional Linux ser baseado em outro sistema operacional Linux?

Coisas efêmeras
fonte
17
e Darwin é baseado no BSD. Você pode jogar o NeXT OS entre os dois ...: D #
Keltari 10/10
12
"O Red Hat é baseado no Fedora", esse é bastante impreciso. Mais como o Fedora, é um teste beta para elementos posteriormente usados ​​no RedHat.
vartec
Basicamente você tomar distribuições componentes principais, a mudança que você quer, (software, logotipos, nomes, qualquer que seja ...) e agora você tem um "sabor", ou distribuição baseada na outra "distro"
TheXed
2
A maneira mais simples é pegar a distribuição exata do Linux que você gosta e alterar uma linha, em algum lugar, talvez apenas /etc/motde pronto, você tem sua própria distribuição do Linux. Como um SO Linux NÃO pode se basear em um já existente. Essa é a pergunta mais difícil.
Warren P
4
Eu acho que sua resposta já está respondida. No entanto, aqui é uma representação gráfica agradável da história de todas as distribuições Linux que estão ao redor: upload.wikimedia.org/wikipedia/commons/1/1b/...
Dohn Joe

Respostas:

59

O Linux é um kernel , o Debian é uma distribuição desse kernel e um monte de software para realmente interagir com o sistema.

Agora posso pegar o Debian e alterar o logotipo na tela de inicialização para o meu próprio logotipo e, em seguida, minha distribuição é baseada no Debian (de uma maneira muito primitiva). Geralmente, os ajustes feitos em uma distribuição derivada são mais substanciais.

O ponto é que, se você quiser alterar algo sobre uma distribuição, você pode simplesmente pegar essa, modificá-la ao seu gosto e publicar sua própria distribuição, com base na existente (desde que todas as licenças sejam respeitadas).

Der Hochstapler
fonte
10
Precisa, mas talvez muito simplista?
Austin T French
... é claro que, na prática, a distribuição derivada faz algumas alterações importantes visíveis ao usuário, geralmente em uma área específica. Por exemplo, o Ubuntu se concentra em polir o ambiente da área de trabalho. Mas ainda assim a maioria dos pacotes no Ubuntu é simplesmente copiada do Debian.
Jan Hudec
2
@AthomSfere: Desculpe, eu estava no meu telefone quando escrevi o post. Eu o melhoraria agora, mas parece que as outras respostas receberam todos os detalhes.
Der Hochstapler 10/10
8
@OliverSalzburg Você estava no telefone? Você está muito viciado :-D
Luc M
9
O @AthomSfere KISS também pode ser aplicado às respostas!
jsedano
32

O Linux é um kernel - um software (complexo) que funciona com o hardware e exporta uma certa API (Application Programming Interface), além de convenções binárias sobre como usá-lo com precisão (Application Binary Interface, ABI) disponível para o "user- aplicações espaciais ".

O Debian , RedHat e outros são sistemas operacionais - ambientes completos de software que consistem no kernel e em um conjunto de programas no espaço do usuário que tornam o computador útil na execução de tarefas sensíveis (envio / recebimento de e-mail, permitindo navegar na Internet, robô etc).

Agora, cada um desses sistemas operacionais, ao mesmo tempo em que fornece principalmente o mesmo software (não existem muitos programas gratuitos para servidores de correio, navegadores da Internet ou ambientes de desktop, por exemplo), diferem nas abordagens para fazer isso e também em seus objetivos e ciclos de lançamento.

Geralmente, esses sistemas operacionais são chamados de "distribuições". Esse é, na IMO, um termo um tanto errado, resultante do fato de que você é tecnicamente capaz de construir manualmente todo o software necessário e instalá-lo em uma máquina de destino, para que esses SOs distribuam o software em pacote para que você não precise criar (Debian, RedHat) ou eles facilitam essa construção (Gentoo). Eles também costumam fornecer um instalador que ajuda a instalar o sistema operacional em uma máquina de destino.

Criar e dar suporte a um sistema operacional é uma tarefa muito complicada que exige uma infraestrutura complexa e intricada (filas de upload, criação de servidores, rastreador de erros e servidores de arquivamento, software de lista de discussão etc etc etc) e equipe. Obviamente, isso cria uma barreira alta para a criação de um novo sistema operacional do zero. Por exemplo, o Debian fornece ca. Pacotes de 37k para algumas cinco arquiteturas de hardware - calcule quanto trabalho é dedicado ao suporte a esse material.

Ainda assim, se alguém acha que precisa criar um novo sistema operacional por qualquer motivo, pode ser uma boa idéia usar uma base existente para desenvolver. E é exatamente aí que os sistemas operacionais baseados em outros sistemas operacionais passam a existir. Por exemplo, o Ubuntu se baseia no Debian apenas importando a maioria dos pacotes e reembalando apenas um pequeno subconjunto deles, além de empacotá-los, fornecendo suas próprias ilustrações, configurações padrão, documentação etc.

Observe que há variações nessa coisa "baseada em". Por exemplo, o Debian promove a criação de "misturas puras" de si mesmo: distribuições que usam o Debian diretamente, e apenas adicionam um monte de pacotes e outras coisas úteis apenas para grupos de usuários bastante pequenos, como aqueles que trabalham em educação, medicina ou música indústria etc.

Outra reviravolta é que nem todos esses sistemas operacionais são baseados no Linux. Por exemplo, o Debian também fornece kernels FreeBSD e Hurd. Eles têm grupos de usuários bastante pequenos, mas de qualquer maneira.

kostix
fonte
8

Red Hat, Debian, etc. são todas distribuições ("distros") do Linux.

Lembre-se de que o Linux é tecnicamente apenas o kernel, que é uma única parte de um sistema útil e útil.

Você precisará de utilitários básicos, decisões sobre onde as coisas estão no sistema, um mecanismo para instalar e atualizar o software e convenções / padrões (como o diretório para onde os programas vão) para unir isso.

A maioria das versões GNU dos utilitários clássicos são freqüentemente consideradas básicas por muitas distros e, portanto, é por isso que o Debian, por exemplo, o chama GNU / Linux. No entanto, com quase tudo o resto, há muitas opções. E como o Linux, os utilitários GNU e muitas coisas executadas no Linux são software livre, qualquer um pode criar uma nova distribuição a qualquer momento. A inclusão de derivar de uma distribuição existente se ela não incluir nada com direitos autorais ou proprietário.

As imagens e os logotipos costumam ser marcas registradas / com direitos autorais e geralmente não podem ser usados ​​diretamente em uma distribuição derivada, a menos que você obedeça aos termos e condições de quem é o proprietário. O mesmo software geralmente pode ser se for licenciado como GPL ou semelhante a GPL.

Uma coisa importante que geralmente é específica da distribuição é o gerenciador de pacotes ou o método em que o software é mantido, testado e distribuído. Distribuições derivadas geralmente são compatíveis com seus gerenciadores de pacotes "upstream". Nada o impede de instalar manualmente o programa em qualquer distribuição Linux.

Normalmente, isso significa que você instalará o software da mesma maneira, usando o mesmo gerenciador de pacotes, e os locais dos arquivos executáveis ​​e de configuração estarão no mesmo local.

LawrenceC
fonte
7

Com o Linux, existem distribuições ou distribuições. Literalmente centenas deles.

O Linux é de código aberto, portanto, qualquer pessoa (ou grupo ou empresa) pode modificar qualquer parte do sistema operacional que desejar. É por isso que algumas versões têm instaladores diferentes ( .debvs. RPM ou apenas tar) e comandos diferentes ( apt-getvs. yum).

A maioria das distros escolhe um uso alvo ou usos específicos e meio que evolui em torno disso.

Por exemplo, o Redhat e seus parentes são orientados ao servidor. A maior parte do sistema operacional é projetada para ser estável ou rápida.

O Debian deve ser mais fácil de usar, portanto suporta .debarquivos que são pacotes fáceis de instalar.

O Ubuntu pegou a base do Debian e adicionou código e pacotes para torná-lo uma boa primeira distribuição do Linux.

O Mint então retirou parte do código do Ubuntu para criar um sistema operacional mais rápido, semelhante ao Ubuntu, mas mais também um desktop tradicional quando o Ubuntu mudou o gerenciador de desktop para Unity.

Aqui está uma árvore genealógica detalhada do GNU / Linux: http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg

Austin T Francês
fonte
1
AFAIK, sudoé usado em qualquer lugar. yumequivalente é apt-getouaptitude
Izkata 10/10
1
@ Izkata Sim, desculpe. Sua sido um tempo eo café era fraco esta manhã;)
Austin T Francês
1
Você está confundindo o kernel (Linux) com o restante do software agregado nas distribuições.
Matteo Italia
2

Expandindo as respostas acima. O Linux é apenas o kernel, a maioria dos comandos no nível do sistema (gcc, grep, bison) foram originalmente escritos pelo projeto GNU, a maioria dos aplicativos no nível do usuário (XFCE, Apache, XMMS) são escritos por terceiros.

Quando uma distribuição era normalmente criada nos primeiros dias, o kernel era empacotado com os comandos no nível do sistema e um subconjunto de aplicativos do usuário e componentes do servidor. Isso ainda é verdade hoje em dia, mas muitas das novas distribuições não querem repetir o esforço de fazer com que tudo corra bem juntas, para que elas usem uma distribuição básica como Debian, CentOS, Slackware e adicionem ou subtraam aplicativos de usuário como GNOME, KDE , LXDE etc. Eles também podem gravar menus personalizados e injetar seus próprios logotipos e planos de fundo na distribuição (SUSE, PCLinux, etc). Eles podem ir além e criar aplicativos específicos de distribuição, como gerenciadores de pacotes ou front-ends personalizados.

Então, quando você diz, por exemplo, que o Ubuntu é baseado no Debian, você está tecnicamente correto, mas hoje em dia seria melhor dizer, especialmente no caso do Ubuntu, que ele é derivado do Debian, pois as alterações no Debian podem ou não encontrar seu caminho. Ubuntu.

Isso deve ajudar a visualizar um pouco do que estou falando, mostra como várias distribuições estabelecidas foram bifurcadas em outras. Embora não seja 100% preciso, dá uma idéia.

http://photos1.blogger.com/blogger/3370/2500/1600/GNULinuxupdatedw4.0.jpg

Esta imagem é 100% exata para o meu conhecimento e é uma linha do tempo de todas as distribuições Linux e mostra de onde elas vieram. Hoje em dia, há apenas um punhado muito pequeno, menos de seis, distribuições que podem rastrear suas raízes desde o início. De acordo com este mapa, existem apenas 2, Redhat e Debian, nem mesmo o meu amado Slackware era um original.

http://www.techjini.com/blog/wp-content/uploads/2011/10/linuxdistrotimeline-7.2.png

Matty
fonte
1

O Mac OS X é baseado em Darwin no sentido de ser executado em cima de Darwin. Depende do tempo de execução de Darwin, por assim dizer.

O Ubuntu é baseado no Debian no sentido de que é um trabalho derivado.

Se você pegar o pacote e o sistema de compilação da Debian, os pacotes e scripts do Debian e outros itens e criar sua própria distribuição semelhante à Debian, então você terá algo baseado no Debian.

Os usuários do seu sistema encontrarão grandes semelhanças com o Debian (por exemplo, como o sistema é instalado, como os pacotes são atualizados ou como a configuração do sistema é modelada /etc).

O Debian também é baseado no Debian: o lançamento mais recente O Debian é baseado no lançamento anterior do Debian.

Kaz
fonte
0

O Linux é apenas a parte principal que fornece acesso ao hardware do computador. Em camadas, normalmente está a GNU C Library, na qual estão em camadas todos os comandos e software que você está acostumado a usar (incluindo qualquer interface gráfica do usuário).

O que acontece em um mundo em que o software não é bloqueado por alguma empresa, grupos diferentes montam um conjunto diferente de software, todos baseados nos dois componentes principais: o kernel do Linux e a GNU C Library. Esses dois são praticamente encontrados em todos os sistemas.

Coloquialmente, chamamos todos esses sistemas operacionais de "Linux" ou "baseados em Linux" e são todos muito semelhantes devido a um acordo sobre vários padrões.

Em uma nota lateral, o kernel Darwin do OS X é realmente desenvolvido a partir do BSD (mais antigo que o Linux).

Angelo
fonte