Como pode um sistema operacional Linux ser “baseado em” outro sistema operacional Linux?

38

Eu tenho procurado através de um grande número de distribuições Linux recentemente para ter uma idéia do que está por aí, e uma frase que continua surgindo é que "[este SO] é baseado em [outro sistema operacional]". Por exemplo:

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

Para alguém vindo de um ambiente Mac eu entendo como o "OS X é baseado em Darwin", no entanto, quando olho para o Linux Distros, me pergunto "Não são todos baseados em Linux ..?"

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

    
por Ephemera 10.10.2013 / 13:02

7 respostas

60

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

Agora eu posso pegar o Debian e mudar o logo na tela de boot para o meu próprio logo e então minha distribuição é baseada no Debian (de uma maneira muito primitiva). Normalmente, os ajustes feitos em uma distribuição derivada são mais substanciais.

O ponto é, se você quiser mudar alguma coisa sobre uma distribuição, então você pode pegar essa, modificá-la ao seu gosto e então publicar sua própria distribuição, com base na existente (contanto que todas as licenças sejam respeitado).

    
por 10.10.2013 / 13:07
31

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

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

Agora, cada SO, enquanto fornecendo principalmente o mesmo software (não há muitos programas de servidor de email gratuito ou navegadores de Internet ou ambientes de área de trabalho, por exemplo) diferem nas abordagens para fazer isso e também em seus objetivos declarados e ciclos de lançamento.

Normalmente, esses sistemas operacionais são chamados de "distribuições". Isto é, IMO, um termo um pouco errado decorrente do fato de você ser tecnicamente capaz de construir manualmente todo o software necessário e instalá-lo em uma máquina de destino, para que esses sistemas distribuam o software empacotado para que você ou não precisa construí-lo (Debian, RedHat) ou eles facilitam esse tipo de 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 suportar um sistema operacional é uma tarefa complicada que exige uma infraestrutura complexa e intricada (filas de upload, servidores de compilação, um rastreador de bugs e servidores de arquivamento, software de lista de e-mail etc etc) e equipe . Isso obviamente levanta uma grande barreira para a criação de um novo sistema operacional do zero. Por exemplo, o Debian fornece ca. Pacotes de 37k para cerca de cinco arquiteturas de hardware - vai descobrir quanto trabalho é feito para suportar essas coisas.

Ainda assim, se alguém achar que precisa criar um novo SO por qualquer motivo, pode ser uma boa ideia usar uma base existente para construir. E é exatamente onde os sistemas operacionais baseados em outros sistemas operacionais passam a existir. Por exemplo, o Ubuntu constrói sobre o Debian apenas importando a maioria dos pacotes e reempacotando apenas um pequeno subconjunto deles, além de empacotá-los, fornecendo sua própria arte, 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 pequenos grupos de usuários, como aqueles que trabalham em educação ou medicina ou música. indústria etc.

Outra diferença é que nem todos esses SOs são baseados no Linux. Por exemplo, o Debian também fornece kernels FreeBSD e Hurd. Eles têm grupos de usuários muito pequenos, mas de qualquer forma.

    
por 10.10.2013 / 14:21
8

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

Tenha em mente que o Linux é tecnicamente apenas o kernel, que é uma parte de um sistema funcional e útil.

Você precisará de utilitários básicos, decisões sobre onde as coisas moram no sistema, um mecanismo para instalar e atualizar 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 de utilitários clássicos é geralmente considerada básica por muitas distros e é por isso que o Debian, por exemplo, o chama de GNU / Linux. Com praticamente tudo, existem muitas escolhas. E como o Linux, os utilitários GNU e muitas coisas que rodam no Linux são softwares livres, qualquer um pode criar uma nova distribuição sempre que quiserem. Incluindo derivam de uma distro existente se essa distro não incluiu nada que tenha direitos autorais ou propriedade.

Imagens e logotipos são frequentemente algo com marca registrada / direitos autorais e geralmente não podem ser usados diretamente em uma distro derivada, a menos que você obedeça aos termos e condições de quem a possui. O mesmo software geralmente pode ser se for licenciado como GPL ou GPL.

Uma coisa importante que é normalmente específica da distribuição é o gerenciador de pacotes ou o método que o software é mantido, testado e distribuído. As distribuições derivadas geralmente são compatíveis com seus gerenciadores de pacotes "upstream". Nada está impedindo você de instalar o programa manualmente 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 executáveis e dos arquivos de configuração estarão no mesmo lugar.

    
por 10.10.2013 / 14:15
7

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

O Linux é open source, portanto qualquer pessoa (ou qualquer grupo ou empresa) pode modificar qualquer parte do sistema operacional que desejar. É por isso que algumas versões têm instaladores diferentes ( .deb vs. RPM ou apenas tar ) e comandos diferentes ( apt-get vs. yum ).

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

Por exemplo, Redhat e seus parentes são orientados a servidores. A maior parte do sistema operacional é projetada em torno de ser estável ou rápida.

O Debian deve ser mais fácil de usar, então ele suporta arquivos .deb que são pacotes fáceis de instalar.

O Ubuntu pegou a base Debian e acrescentou código e pacotes para torná-la uma boa distro Linux.

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

Aqui está uma árvore genealógica detalhada do GNU / Linux: link

    
por 10.10.2013 / 13:34
2

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

Quando uma distribuição é normalmente criada nos primeiros dias, o kernel é 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, mas muitas das novas distribuições não querem repetir o esforço de fazer com que tudo funcione bem, então eles usam uma distribuição básica como Debian, CentOS, Slackware e adicionam ou subtraem aplicativos de usuário como o GNOME, KDE. , LXDE, etc. Eles também podem escrever menus personalizados e injetar seus próprios logotipos e fundos na distribuição (SUSE, PCLinux, etc). Eles podem ir mais longe e criar aplicativos específicos de distribuição, como gerenciadores de pacotes ou front-ends personalizados.

Então, quando você diz, por exemplo, 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 como mudanças no Debian podem ou não encontrar seu caminho para o Ubuntu.

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

link

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

link

    
por 10.10.2013 / 14:24
1

O Mac OS X é baseado em Darwin, no sentido em que é executado em cima de Darwin. Tem uma dependência de tempo de execução em 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 do Debian, os pacotes e scripts do Debian e outros enfeites, e fazer sua própria distribuição que é similar ao Debian, então você tem 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 é configurada em /etc ).

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

    
por 10.10.2013 / 18:36
0

O Linux é apenas a parte principal que dá acesso ao hardware do computador. Em camadas, é normalmente a Biblioteca GNU C, sobre a qual são colocados em camadas todos os comandos e softwares que você está acostumado a usar (incluindo qualquer interface gráfica com o usuário).

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

Coloquialmente, chamamos todos esses sistemas operacionais de "Linux" ou "Linux-based" 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).

    
por 11.10.2013 / 07:44