¿Cómo puede un SO Linux "basarse en" otro SO Linux?

38

He estado revisando bastantes distribuciones de Linux recientemente para tener una idea de lo que hay alrededor, y una frase que sigue apareciendo es que "[este sistema operativo] se basa en [otro sistema operativo]". Por ejemplo:

  • Fedora se basa en Red Hat
  • Ubuntu está basado en Debian
  • Linux Mint está basado en Ubuntu

Para alguien que viene de un entorno Mac, entiendo cómo "OS X se basa en Darwin", sin embargo, cuando veo Linux Distros, me pregunto "¿No están todos basados ​​en Linux ...?"

En este contexto, ¿qué significa exactamente que un sistema operativo Linux se base en otro sistema operativo Linux?

Efímera
fuente
17
y Darwin se basa en BSD. Podrías lanzar el sistema operativo NeXT entre esos dos ...: D
Keltari
12
"Red Hat está basado en Fedora", ese es bastante inexacto. Más como Fedora es una prueba beta para elementos que luego se usaron en RedHat.
vartec
Básicamente, tomas un componente central de distribución, cambias lo que quieres (software, logotipos, nombres, lo que sea ...) y ahora tienes un "sabor" o distribución basada en la otra "distribución"
TheXed
2
La forma más simple es tomar la distribución exacta de Linux que le gusta y cambiar una línea, en algún lugar, tal vez solo /etc/motd, y listo, tiene su propia nueva distribución de Linux. ¿Cómo puede un SO Linux NO basarse en uno existente? Esa es la pregunta más difícil.
Warren P
44
Creo que tu respuesta ya está respondida. Sin embargo, aquí hay una buena representación gráfica de la historia de todas las distribuciones de Linux que existen: upload.wikimedia.org/wikipedia/commons/1/1b/…
Dohn Joe

Respuestas:

59

Linux es un núcleo , Debian es una distribución de ese núcleo y un montón de software para interactuar realmente con el sistema.

Ahora puedo tomar Debian y cambiar el logotipo en la pantalla de arranque a mi propio logotipo y luego mi distribución se basa en Debian (de una manera muy primitiva). Por lo general, los ajustes que se realizan en una distribución derivada son más sustanciales.

El punto es que si desea cambiar algo sobre una distribución, puede tomarla, modificarla a su gusto y luego publicar su propia distribución, en función de la existente (siempre que se respeten todas las licencias).

Der Hochstapler
fuente
10
¿Exacto, pero quizás demasiado simplista?
Austin T French
... por supuesto, en la práctica, la distribución derivada realiza algunos cambios importantes visibles para el usuario, generalmente en un área específica. Por ejemplo, Ubuntu se centra en pulir el entorno de escritorio. Pero aún así, la mayoría de los paquetes en Ubuntu simplemente se copian de Debian.
Jan Hudec
2
@AthomSfere: Lo siento, estaba en mi teléfono cuando escribí la publicación. Lo mejoraría ahora, pero parece que las otras respuestas tienen todos los detalles cubiertos.
Der Hochstapler
8
@OliverSalzburg ¿Estaba hablando por teléfono? Eres muy adicto :-D
Luc M
9
¡@AthomSfere KISS también se puede aplicar a las respuestas!
jsedano
32

Linux es un núcleo : una pieza (compleja) de software que funciona con el hardware y exporta una determinada interfaz de programación de aplicaciones (API) y convenciones binarias sobre cómo usarla con precisión (interfaz binaria de aplicaciones, ABI) disponible para el "usuario- aplicaciones espaciales ".

Debian , RedHat y otros son sistemas operativos : entornos de software completos que consisten en el núcleo y un conjunto de programas de espacio de usuario que hacen que la computadora sea útil mientras realizan tareas sensibles (enviar / recibir correo, lo que le permite navegar por Internet, manejar un robot, etc.).

Ahora, cada uno de estos sistemas operativos, aunque proporciona principalmente el mismo software (por ejemplo, no hay tantos programas gratuitos de servidor de correo o navegadores de Internet o entornos de escritorio) difieren en los enfoques para hacer esto y también en sus objetivos establecidos y ciclos de lanzamiento.

Por lo general, estos sistemas operativos se llaman "distribuciones". Este es, en mi opinión, un término un tanto incorrecto derivado del hecho de que técnicamente eres capaz de construir todo el software requerido a mano e instalarlo en una máquina de destino, por lo que estos sistemas operativos distribuyen el software empaquetado para que no necesites construir (Debian, RedHat) o facilitan dicha construcción (Gentoo). También suelen proporcionar un instalador que ayuda a instalar el sistema operativo en una máquina de destino.

Crear y soportar un sistema operativo es una tarea muy complicada que requiere una infraestructura compleja e intrincada (colas de carga, servidores de compilación, un rastreador de errores y servidores de archivo, software de listas de correo, etc., etc.) y personal. Obviamente, esto plantea una gran barrera para crear un nuevo sistema operativo desde cero. Por ejemplo, Debian proporciona ca. Paquetes de 37k para unas cinco arquitecturas de hardware: calcule cuánto trabajo se dedica a apoyar estas cosas

Aún así, si alguien piensa que necesita crear un nuevo sistema operativo por cualquier razón, puede ser una buena idea utilizar una base existente para construir. Y aquí es exactamente donde los SO basados en otros SO entran en existencia. Por ejemplo, Ubuntu se basa en Debian simplemente importando la mayoría de los paquetes y reempacando solo un pequeño subconjunto de ellos, además de empaquetar los suyos, proporcionar sus propias ilustraciones, configuraciones predeterminadas, documentación, etc.

Tenga en cuenta que hay variaciones a esta cosa "basada en". Por ejemplo, Debian fomenta la creación de "mezclas puras" de sí mismo: distribuciones que usan Debian directamente, y solo agregan un montón de paquetes y otras cosas que solo son útiles para grupos bastante pequeños de usuarios, como aquellos que trabajan en educación, medicina o música. industria etc.

Otro giro es que no todos estos sistemas operativos están basados ​​en Linux. Por ejemplo, Debian también proporciona núcleos FreeBSD y Hurd. Tienen grupos de usuarios bastante pequeños, pero de todos modos.

kostix
fuente
8

Red Hat, Debian, etc. son todas las distribuciones ("distribuciones") de Linux.

Tenga en cuenta que Linux es técnicamente solo el núcleo, que es una parte única de un sistema funcional y útil.

Necesitará utilidades básicas, decisiones sobre dónde viven las cosas en el sistema, un mecanismo para instalar y actualizar software y convenciones / estándares (como el directorio donde van los programas) para unir esto.

La mayoría de las versiones de GNU de las utilidades clásicas a menudo se consideran básicas por muchas distribuciones y por eso Debian, por ejemplo, lo llama GNU / Linux. Sin embargo, con casi todo lo demás, hay muchas opciones. Y dado que Linux, las utilidades GNU y muchas cosas que se ejecutan bajo Linux son software libre, cualquiera puede crear una nueva distribución en cualquier momento que lo desee. Incluyendo deriva de una distribución existente si esa distribución no ha incluido nada con derechos de autor o propiedad.

Las imágenes y los logotipos son con frecuencia algo que está registrado / protegido por derechos de autor y, por lo general, no se pueden usar directamente en una distribución de derivados a menos que obedezca los términos y condiciones de quien sea el propietario. El mismo software generalmente puede ser si tiene licencia GPL o similar a GPL.

Una cosa importante que generalmente es específica de la distribución es el administrador de paquetes o el método cuyo software se mantiene, prueba y distribuye. Las distribuciones derivadas generalmente son compatibles con sus gestores de paquetes "ascendentes". Sin embargo, nada lo detiene de la instalación manual del programa en ninguna distribución de Linux.

Por lo general, esto significa que instalará el software de la misma manera usando el mismo administrador de paquetes, y las ubicaciones de los archivos ejecutables y de configuración estarán en el mismo lugar.

LawrenceC
fuente
7

Con Linux hay distribuciones o distribuciones. Literalmente cientos de ellos.

Linux es de código abierto, por lo que cualquiera (o cualquier grupo o empresa) puede modificar cualquier parte del sistema operativo que desee. Es por eso que algunas versiones tienen diferentes instaladores ( .debvs. RPM o simplemente tar) y diferentes comandos ( apt-getvs. yum).

La mayoría de las distribuciones eligen un uso objetivo o usos específicos y evolucionan en torno a eso.

Por ejemplo, Redhat y sus parientes están orientados al servidor. La mayoría del sistema operativo está diseñado para ser estable o rápido.

Debian está destinado a ser más fácil de usar, por lo que admite .debarchivos que son paquetes de instalación fáciles.

Ubuntu tomó la base de Debian y agregó código y paquetes para que sea una buena primera distribución de Linux.

Mint luego fue y eliminó parte del código de Ubuntu para hacer un sistema operativo más rápido que sea similar a Ubuntu, pero también más de un escritorio tradicional cuando Ubuntu cambió el administrador de escritorio a Unity.

Aquí hay un árbol genealógico detallado de GNU / Linux: http://upload.wikimedia.org/wikipedia/commons/9/9a/Gldt1009.svg

Austin T French
fuente
1
AFAIK, sudose usa en todas partes. yumel equivalente es apt-getoaptitude
Izkata
1
@Izkata Sí, lo siento. Ha pasado un tiempo y el café estuvo débil esta mañana;)
Austin T French
1
Está confundiendo el kernel (Linux) con el resto del software agregado en distribuciones.
Matteo Italia
2

Ampliando las respuestas anteriores. Linux es solo el núcleo, la mayoría de los comandos de nivel de sistema (gcc, grep, bison) fueron escritos originalmente por el proyecto GNU, la mayoría de las aplicaciones de nivel de usuario (XFCE, Apache, XMMS) están escritas por terceros.

Cuando normalmente se creaba una distribución en los primeros días, el núcleo se agrupaba con los comandos de nivel de sistema y un subconjunto de aplicaciones de usuario y componentes de servidor. Esto sigue siendo cierto hoy en día, pero muchas de las nuevas distribuciones no quieren repetir el esfuerzo de hacer que todo funcione bien juntos, por lo que toman una distribución base como Debian, CentOS, Slackware y agregan o restan aplicaciones de usuario como GNOME, KDE , LXDE, etc. También pueden escribir menús personalizados e inyectar sus propios logotipos y fondos en la distribución (SUSE, PCLinux, etc.). Pueden ir más allá y crear aplicaciones específicas de distribución, como administradores de paquetes o front-end personalizados.

Entonces, cuando dices, por ejemplo, que Ubuntu se basa en Debian, eres técnicamente correcto, pero en estos días sería mejor decir, especialmente en el caso de Ubuntu, que se deriva de Debian ya que los cambios en Debian pueden o no encontrar su camino. Ubuntu

Esto debería ayudar a visualizar un poco de lo que estoy hablando, muestra cómo varias distribuciones establecidas se han bifurcado en otras. Si bien no es 100% preciso, da una idea.

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

Esta imagen es 100% precisa, que yo sepa, y es una línea de tiempo de todas las distribuciones de Linux y muestra de dónde provienen. En estos días solo hay un puñado muy pequeño, menos de seis, distribuciones que pueden rastrear sus raíces hasta el principio. Según este mapa solo hay 2, Redhat y Debian, ni siquiera mi amado Slackware era original.

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

Matty
fuente
1

Mac OS X se basa en Darwin en el sentido de que se ejecuta sobre Darwin. Tiene una dependencia en tiempo de ejecución de Darwin, por así decirlo.

Ubuntu se basa en Debian en el sentido de que es un trabajo derivado.

Si toma el paquete y el sistema de compilación de Debian, los paquetes y scripts de Debian y demás, y hace su propia distribución que es similar a Debian, entonces tiene algo basado en Debian.

Los usuarios de su sistema encontrarán grandes similitudes con Debian (por ejemplo, cómo se instala el sistema, cómo se actualizan los paquetes o cómo se configura la configuración del sistema /etc).

Debian también se basa en Debian: la última versión Debian se basa en la versión anterior de Debian.

Kaz
fuente
0

Linux es solo la parte central que le da acceso al hardware de la computadora. En capas, por lo general, se encuentra la Biblioteca GNU C, en la que se encuentran en capas todos los comandos y el software al que está acostumbrado (incluida cualquier interfaz gráfica de usuario).

Lo que sucede en un mundo en el que el software no está bloqueado por alguna compañía, diferentes grupos reúnen diferentes conjuntos de software basados ​​en los dos componentes principales: el kernel de Linux y la Biblioteca GNU C. Esos dos se encuentran prácticamente en todos los sistemas.

Coloquialmente, llamamos a todos estos sistemas operativos "Linux" o "basados ​​en Linux" y todos son muy similares debido a un acuerdo sobre varios estándares.

Como nota al margen, el kernel Darwin de OS X en realidad está desarrollado a partir de BSD (más antiguo que Linux).

Angelo
fuente