¿Alguna diferencia básica entre Unix y Linux en diseño y otros aspectos? [cerrado]

24

Sigo leyendo esta oración:

Linux es un sistema similar a Unix, pero no es Unix.

No sé cuál es la verdadera diferencia entre los dos. Sé que Linux obtuvo muchas ideas de Unix y las licencias de los dos son diferentes. Aparte de eso, como no soy un experto en ninguno de ellos, quiero saber si hay diferencias básicas entre ellos en el diseño u otros aspectos significativos.

Gnijuohz
fuente
2
¿te importaría aclarar dónde leíste eso? la búsqueda web me muestra Linux Kernel Development (3rd Edition) de Robert Love, ¿es eso?
mosquito

Respuestas:

30

Un sistema "similar a Unix" puede cumplir totalmente con la especificación UNIX única , el nombre colectivo de los estándares para lo que califica como sistema Unix, pero al mismo tiempo Unix es una marca registrada de The Open Group y los proveedores de sistemas similares a Unix necesitan para registrar sus sistemas para calificar oficialmente como Unix. Actualmente los sistemas UNIX 03 registrados son:

  • Apple Inc .: Mac OS X versión 10.5 Leopard en computadoras Macintosh basadas en Intel
  • Apple Inc .: Mac OS X versión 10.6 Snow Leopard en computadoras Macintosh basadas en Intel
  • Fujitsu Limited: sistema operativo Solaris ™ 10 en plataformas basadas en SPARC® Fujitsu PRIMEPOWER® de 64 bits
  • Hewlett-Packard Company: HP-UX 11i V3 versión B.11.31 o posterior en servidores HP Integrity
  • IBM Corporation: AIX 5L para POWER V5.2 con fecha 8-2004 o posterior con APAR: IY59610, IY60869, IY61405 con VAC 6.0.0.8 o posterior en sistemas pSeries CHRP
  • IBM Corporation: AIX 5L para POWER V5.3 con fecha 7-2006 o posterior en sistemas que utilizan arquitectura de sistema CHRP con procesadores POWER ™
  • IBM Corporation: Sistema operativo AIX 6 V6.1.2 con SP1 o posterior en sistemas que utilizan arquitectura de sistema CHRP con procesadores POWER ™ y tarjetas asíncronas de 2, 8 o 128 puertos
  • Oracle Corporation: Oracle Solaris 11 FCS y posterior en plataformas basadas en SPARC, 32 bits y 64 bits y en plataformas basadas en X86, 32 bits y 64 bits
  • Oracle Corporation: sistema operativo Solaris 10 más el parche 118844-06 para X86 y posteriores, en sistemas basados ​​en X86 de 64 bits
  • Oracle Corporation: sistema operativo Solaris 10 y sistemas basados ​​en SPARC de 32 bits y 64 bits
  • Oracle Corporation: sistema operativo Solaris 10 y en sistemas basados ​​en X86 de 32 bits

Los proveedores de sistemas de código abierto tipo Unix (principalmente Linux y FreeBSD) generalmente no se registran en The Open Group, ya sea para evitar los costos de certificación o, bueno, porque no encuentran mucho valor al hacerlo. En teoría, es completamente posible que un sistema similar a Unix sea técnicamente Unix, y todo lo que falta es la certificación.

La Fundación Linux, por otro lado, creó Linux Standard Base , un estándar ISO , en un esfuerzo por estandarizar Linux. El cumplimiento de POSIX está en el corazón tanto del SUS como del LSB, manteniendo de alguna manera el enlace entre Unix y Linux.

Los sistemas similares a Unix y Unix tienden a ser más similares que diferentes, en teoría todos los sabores populares de Unix, registrados o no, son compatibles con POSIX (completos o en su mayoría), por lo que comparten una interfaz de programación central, shells y utilidades (y muchos otros cosas). IEEE y The Open Group mantienen una copia disponible gratuitamente de la última versión, POSIX.1-2008 , donde puede encontrar más información sobre lo que significa realmente el cumplimiento de POSIX.

Ahora, aparte de las razones legales y técnicas, Linux heredó el mantra "no Unix" de su asociación con GNU , un sistema operativo similar a Unix iniciado por Richard Stallman. GNU significa "GNU's not Unix", ya que las intenciones de Stallman eran construir un sistema compatible con Unix que fuera gratuito, y para hacerlo no debería contener ningún código Unix, ya que Unix es propietario.

Los primeros desarrolladores de Linux comenzaron a portar herramientas GNU a Linux, y el sistema resultante se denominó GNU / Linux ya en 1992 . Existe una controversia duradera sobre si Linux debe ser referido como Linux o GNU / Linux (ya que incorpora varias partes de GNU), pero eso es irrelevante para su pregunta, lo relevante es que "no Unix" puede referirse a la asociación con GNU y tiene poco que ver con su diseño, dependiendo del contexto.

El artículo "Historia de Linux" en Wikipedia explica los orígenes de Linux y su relación con Unix (a través de Minix y GNU) con cierto detalle, y también debe tomarse un tiempo para leer las referencias del artículo, si está interesado en aprendiendo más.

Yannis
fuente
buena respuesta, esperaré y veré si elijo la tuya como mi respuesta :)
Gnijuohz
8
@Gnijuohz No se apresure a aceptar respuestas, siempre deje que su pregunta madure por un día o dos (o más, si lo desea), puede obtener excelentes respuestas de personas que no se molestarían en responder si vieran que ya ha aceptado un responder. Aceptar una respuesta depende completamente de usted, ni siquiera tiene que aceptar si ninguna de las respuestas le fue útil, independientemente de cómo la comunidad las respondiera.
Yannis
1
Interesante, aparentemente la última versión de OS X no es UNIX "oficialmente".
Kris Harper
@ root45 Eso es de esperar, ya que se requiere tiempo para verificar el cumplimiento de una versión.
Yannis
@ YannisRizos Ah, está bien. Eso tiene sentido. Gracias por la información.
Kris Harper
4

UNIX es una familia de sistemas operativos y hoy en día UNIX es más una marca propiedad de The Open Group. Para que un sistema operativo tenga la marca UNIX, debe someterse a una prueba de conformidad, y para Linux esto significaría que cada distribución (Ubuntu, Debian, Fedora, Red Hat, etc.) debería someterse por separado a esta prueba de conformidad para cada versión. . Esta es una de las principales razones por las que Linux es un sistema tipo Unix y no UNIX.

Esta prueba que mencioné es para garantizar el cumplimiento del sistema operativo con la especificación Single Unix, que actualmente se encuentra en la versión 4 SUSv4 (especificación Single Unix versión 4). Esta especificación define un conjunto de API que deben estar disponibles para las aplicaciones para que un sistema esté calificado para el nombre UNIX.

Rafael
fuente
¿Es un buen estándar a seguir? ¿Intentan los autores de Linux?
Trabajo
1
Es un estándar bueno pero incompleto. Los contribuyentes del kernel de Linux intentan seguir este estándar y Linux puede considerarse extraoficialmente un sistema UNIX. Si está desarrollando aplicaciones contra los estándares de Unix, es probable que se compile y se ejecute en un sistema Linux. Desafortunadamente, como dije antes, UNIX está bastante incompleto en algunos aspectos, por lo que los sistemas operativos proporcionan API adicionales para algunas tareas y esto es lo que hace que ciertas plataformas de aplicaciones dependan, ya que estas API adicionales tienden a variar.
Raphael
Hubo una distribución llamada Linux-FT que inició el proceso de certificación POSIX, pero como era de esperar, los patrocinadores se quedaron sin dinero. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml
¡Gracias por esta información! Siempre me pregunté si alguien por ahí alguna vez había tratado de certificar una distribución.
Raphael
3

Las respuestas existentes ya mencionan algunas de las diferencias que está buscando. Sin ser el experto en kernel de Linux, también agregaría que muchas de las diferencias de diseño / implementación entre GNU / Linux y los diversos Unices están cubiertas en la serie de patrones de diseño de kernel de Linux .

sakisk
fuente
2

"UNIX" es algo complicado de precisar. En términos de conformidad con los estándares, tanto Solaris como Mac OS X son UNIX "oficialmente", pero no tiene que pasar mucho tiempo antes de encontrar diferencias bastante grandes entre los dos. Hay un gran diagrama que documenta el lanzamiento de varios tipos de sistemas operativos UNIX o similares a UNIX y cómo se influenciaron y divergieron entre sí.

En el gran esquema de cosas que se ven, caminan y graznan como UNIX, un sistema Linux [*] es uno de los lanzamientos más convencionales. Es bastante común que la gente se refiera a Unices o * nix y signifique "cualquier cosa similar a UNIX", que probablemente incluye Linux. Sin embargo, UNIX es una marca registrada con limitaciones sobre cómo puede aplicarse comercialmente; ninguna distribución de Linux se ajusta a esas limitaciones.

[*] Debido a que esta pregunta invita a un nivel de división semántica, creo que es un tema en este caso señalar que Linux en sí mismo es solo un núcleo en el que se puede construir un sistema operativo. Es común construir un sistema similar a UNIX sobre Linux, que es para lo que fue diseñado, y ese sistema generalmente se construye a partir de componentes del proyecto GNU. En la respuesta anterior, "Linux" podría leerse como una abreviatura de "un sistema operativo que incorpora el kernel de Linux".


fuente
@ YannisRizos Agregaré una referencia a la respuesta, definitivamente está certificada.
Sí, tiene toda la razón, desde Leopard y Mac OS en adelante tiene certificación UNIX 03, y aquí hay otra referencia .
yannis
2

Una vez leí que Linux es lo que obtienes cuando tomas un desarrollador de PC y le pides que escriba un sistema operativo Unix, mientras que FreeBSD es lo que obtienes cuando tomas un desarrollador de Unix y le pides que haga un sistema operativo de PC ... no ' ¡No olvide los BSD en su comparación!

Las diferencias están principalmente en el Kernel ya que las aplicaciones de espacio de usuario (incluidas cosas como ls) son parte del proyecto GNU. Esto significa que Unix, FreeBSD y Linux parecen ser casi lo mismo.

Sin embargo, hay diferencias una vez que miras de cerca. El diseño del directorio será diferente (pero muchas distribuciones de Linux usan sus propios diseños en su mayoría compatibles pero aún diferentes), los sistemas de archivos son diferentes (Unix usa UFS, FreeBSD usa FFS, Linux usa Ext3 para ser simplista, todos pueden usar puertos de FS comunes, por ejemplo, ZFS)

Luego hay diferencias en las API principales, Linux le dará la API de inotify para informarle cuándo cambian los archivos, Mac OSX le ofrece FSEvents y FreeBSD le proporciona kqueue .

Por lo tanto, pueden considerarse la misma familia: compare un sistema Windows con herramientas GNU portadas con un sistema Linux con las mismas herramientas. Solo aparecerán superficialmente igual, pero un sistema Unix o FreeBSD seguirá siendo comparable. De un vistazo más de cerca, encontrará que la transferencia de aplicaciones entre FreeBSD, Unix y Linux es relativamente fácil en comparación con la transferencia a sistemas operativos alternativos como Windows.

gbjbaanb
fuente
1

Unix ya no es un solo sistema operativo. Solía ​​ser una implementación de Bell Labs / AT&T, pero ahora es un estándar.

Técnicamente, Linux es solo un núcleo. Este núcleo se puede encontrar en sistemas operativos que no son de Unix, siendo el más popular Android. Por otro lado, hay muchos sistemas operativos basados ​​en Linux que son similares a Unix. La mayoría (si no todos) de ellos están utilizando las bibliotecas y utilidades Gnu. Esta combinación proporciona distribuciones de Linux a la API de Unix y el cumplimiento (o incumplimiento) de los estándares.

El estándar Unix no requiere un sistema compatible para ser propietario o tener una licencia en particular. Los BSD, OpenSolaris / Illumos, darwin son ejemplos de implementaciones de Unix que aún no son Linux.

Los sistemas compatibles generalmente son, pero no siempre, una mezcla de componentes de código abierto y propietario, mientras que Gnu / Linux puede ser de código abierto o también incluir cosas de propietario.

En lo que respecta al cumplimiento de Unix, no hay muchas diferencias. La mayoría de las distribuciones de Linux y las implementaciones de Unix comparten el mismo conjunto de comandos utilizando el mismo conjunto de opciones. Sin embargo, encontrará muchas extensiones de los comandos estándar, especialmente en el lado de Gnu donde se llaman Gnuisms, y numerosos comandos que no están definidos por los estándares en primer lugar (compiladores, comandos administrativos, instalación, empaquetado, entorno gráfico). Esta es un área donde puedes encontrar mucha divergencia, incompatibilidades y, a veces, guerras santas.

El modelo de desarrollo Gnu / Linux generalmente se considera más "orgánico" y "bazar", mientras que otros sistemas similares a Unix son más "diseñados" y "catedral". Dependiendo de los subsistemas, la diferencia no es tan clara y depende de las personas y / o empresas que los respaldan.

jlliagre
fuente
1

Linux viene con muchas herramientas como:

  • Sistema GUI
  • Utilidades GNU (como cp, mv, ls, date, bash, etc.)
  • herramientas de instalación y gestión
  • Compiladores GNU C / C ++
  • Editores (vi)
  • y varias aplicaciones (como OpenOffice, Firefox).

Sin embargo, la mayoría de los sistemas operativos UNIX se consideran como un sistema operativo completo, ya que todo proviene de una única fuente o proveedor.

Algunas cosas que comparten:

  • GUI, archivos y administradores de Windows (KDE, Gnome)
  • Conchas (ksh, csh, bash)
  • Varias aplicaciones de oficina como OpenOffice.org
  • Herramientas de desarrollo (compiladores perl, php, python, GNU C / C ++)
  • Interfaz POSIX
Billjk
fuente
Linux también se expande en la filosofía de Unix ...
Trabajo
2
Linux no es solo un kernel, el kernel de Linux es, bueno, el kernel. Linux generalmente se refiere a un sistema completo que se basa en el kernel de Linux.
Yannis
@Anónimo: a veces, si edita y corrige su respuesta, los votos negativos pueden eliminar el voto negativo. No está garantizado, pero a veces ayuda. (No voté mal, solo trato de ser útil) :) El resto de su respuesta es correcta, en mi humilde opinión, por lo que deshacerse de la discrepancia puede ayudarlo a obtener algunos votos positivos / evitar más votos negativos.
jmort253
-7

En realidad no, Linux era una ingeniería inversa improvisada de Unix después de todo, por lo que el diseño del núcleo siguió la filosofía de Ken Thompson. La forma de Linux parece ser imitar la filosofía de Unix lo más cerca posible sin nunca agobiarse con el pensamiento original.

samual johnson
fuente
@YannisRizos ¿Qué quieres decir con "pero no era realmente utilizable". AFAIK era completamente utilizable, pero debido a que estaba escrito en el ensamblaje PDP, era difícil portarlo en otras arquitecturas.
sakisk
@ samual-johnson -1 Porque no respaldas tus declaraciones con referencias. Es la primera vez que escucho sobre la "filosofía de Ken Thompson" (y es Thompson, no Thomson).
sakisk
1
@faif Comprobando mis referencias, el núcleo rudimentario al que me refería estaba escrito para el GE-645 y no para el PDP, por lo que fue difícil llamarlo un núcleo Unix. He eliminado el comentario, ya que el punto principal era la falta de referencias de todos modos y su comentario es suficiente para transmitir ese mensaje. - Samual, tómese un tiempo para hacer una copia de seguridad de sus afirmaciones con referencias sólidas o revisarla con algo menos basado en opiniones
Yannis
@YannisRizos Interesante. No he oído hablar de GE-645, que según Wikipedia era una versión mejorada de Multics. Gracias por la info.
sakisk