LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Recibo esta pregunta con bastante frecuencia, pero me cuesta explicarlo, especialmente con unas pocas palabras simples. De todos modos, este es un tema muy interesante porque las cosas son muy complicadas cuando se trata de UNIX vs Linux. Hay cosas relacionadas con los negocios, licencias, políticas, influencia del gobierno, etc.

Debido a que Unix es un sistema operativo y que Linux es un kernel, son de naturaleza diferente y tienen propósitos diferentes, no son fácilmente comparables. No puede resumir las diferencias y lo que son en una sola oración. Pero no te preocupes. Después de esta lección de historia y sus características y propósitos, obtendrás el "panorama general" y todo será agradable y claro. Puede saltar al final de la publicación, en la conclusión, si desea una lectura rápida.

Multix

Saltemos a finales de los sesenta. Las computadoras personales en ese momento fueron diseñadas para hacer tareas específicas individuales. Por ejemplo, había una computadora para calcular un salario mensual, o una computadora para procesar las palabras en una biblioteca, etc. Cada una de ellas estaba ejecutando un programa específicamente diseñado para ese hardware en particular y la tarea que debía realizar. Los programas que se escribieron para un proveedor de computadoras (o un fabricante como IBM o Apple) no se pueden ejecutar en una computadora desarrollada por un proveedor diferente. Esos equipos no pueden manejar la ejecución de varios programas a la vez, pero solo uno. Entonces, si un usuario quería escuchar algo de música mientras escribía un documento, eso era imposible.

Para superar esos problemas, se desarrolló el sistema operativo Multics (también conocido como Multix). Inicialmente como un proyecto colaborativo entre MIT, General Electrics y Bell Labs. Esta es la raíz, el sistema operativo que establece los fundamentos de cada uno nuevo, incluidos los sistemas operativos Windows, MacOS, Android, Linux y muchos más.

Multics (Servicio multiplexado de información y computación) es un sistema operativo de tiempo compartido. Esto significa que muchos programas pueden compartir los recursos de hardware y activar intervalos de tiempo finitos. En otras palabras, la idea detrás de los sistemas operativos de tiempo compartido es el mecanismo que funciona de la siguiente manera:

  • Un programa está utilizando el hardware (CPU, memoria RAM, etc.) durante algún tiempo, digamos 20ns (nanosegundos), luego se detiene.
  • Ahora los recursos de hardware están disponibles para otro programa por una cantidad igual de tiempo, 20ns.

Debido a los intervalos muy pequeños (cambio muy rápido), existe la ilusión de que se ejecutan varios programas a la vez. El mismo principio está presente en todos los sistemas operativos modernos.

Además de las capacidades de tiempo compartido, Multics se diseñó con la idea de una estructura de hardware modular y una arquitectura de software. Es consistente con muchos "bloques de construcción" pequeños. Cada bloque se puede intercambiar de forma independiente por otro que realiza la misma función, pero tal vez de una manera diferente. El resultado final es construir un sistema que puede crecer por tiempo y reutilizar los bloques en lugar de reimplementarlos. Entonces, cuando hay un cambio de hardware, solo se actualizan unos pocos bloques, el resto se reutiliza. Si varios programas requieren la misma característica, pueden compartir una implementación común. Por ejemplo, muchos programas pueden compartir la misma implementación para transformar una palabra en minúsculas, lo que ahorra tiempo, esfuerzo, frustración entre los desarrolladores y dinero. Esos son los fundamentos de Multics.

Además de toda la bondad de Multics, Dennis Ritchie y Ken Thompson (en ese momento empleados en Bell Labs) no estaban satisfechos con todos los aspectos del proyecto. Principalmente por el tamaño y la complejidad introducida para lograr los objetivos. En su tiempo libre, comenzaron a trabajar en un proyecto de pasatiempo similar (en realidad, reimplementación de Multics) llamado Unics (Servicio de Información e Informática Uniplexado) también conocido como Unix . Como puede ver, el nombre de Unics está influenciado por Multics, con la única diferencia que es intercambiar la palabra "multiplexado" por "no multiplexado". La razón de este intercambio son las desventajas técnicas del proyecto Unics desde el principio. No pudo manejar la ejecución de múltiples programas simultáneamente, solo un programa a la vez, por lo que se usó uniplexed. Vale la pena mencionar que el proyecto Unics fue diseñado solo para uso interno dentro de los Laboratorios Bell y se desarrolló sin ningún respaldo organizativo.

Desde que llegamos al nacimiento de Unics, es hora de un pequeño resumen:

  1. El desarrollo de los multics comenzó a finales de la década de 1960.
  2. Los objetivos de los multics siguen siendo valiosos a partir de hoy. Es tiempo compartido (multitarea)
  3. Quejas sobre el tamaño y complejidad.
  4. A principios de la década de 1970, el desarrollo de Unics comienza, pero en menor escala, para superar las desventajas de los sistemas multicanal. Es un proyecto de hobby de Dennis Ritchie y Ken Thompson.

Continuemos con más detalles sobre Unics y su desarrollo.

Unix

Unics fue escrito inicialmente en lenguaje ensamblador. Debido a esto, la mayoría del código estaba codificado para hardware específico y no era fácil de transportar a otras computadoras. No había mejor alternativa disponible en ese momento.

Mientras tanto, se lanza el lenguaje de programación C (también por Dennis Ritchie y Ken Thompson). La intención de este lenguaje de programación es usarse para escribir programas portátiles. Se logra al requerir un compilador relativamente simple, mapear de manera eficiente a las instrucciones de la máquina, requerir un mínimo de tiempo de ejecución, etc. Para las personas no técnicas, esto es realmente sorprendente.

En este momento, existe Unics, pero no es portátil, y hay un nuevo lenguaje de programación que ofrece portabilidad. Suena como una idea acertada: Unics se reescribirá en C. A mediados de la década de 1970, se reescribió Unics en C, lo que introdujo la portabilidad, pero hubo un problema legal que impidió el lanzamiento público y el uso generalizado.

Desde una perspectiva empresarial y jurídica las cosas son bastante interesantes. Existe una empresa de telecomunicaciones gigante llamada AT&T que posee el centro de investigación Bell Labs anteriormente mencionado. Debido a la naturaleza del negocio y la disponibilidad de la tecnología en ese momento, AT&T se consideraba un monopolio controlado por el gobierno. Para simplificar las cosas, los precios de los servicios de telecomunicación están controlados por el gobierno para que no puedan dispararse, pero tampoco AT&T puede ir a la bancarrota debido a los ingresos garantizados declarados por el gobierno. El punto es que los Laboratorios Bell tienen una fuente de ingresos estable (fundada por AT&T) y pueden permitirse asignar recursos a cualquier tarea que quieran sin preocuparse por el costo. Libertad casi completa que es bastante buena para un centro de investigación.

Debido a los problemas de monopolio y otras cuestiones legales, se prohibió a AT&T ingresar al mercado de computadoras, solo se permitían los servicios de telecomunicaciones. Todo lo que podían hacer era licenciar el código fuente de los Unics. Vale la pena mencionar que el código fuente se está distribuyendo a través de otros centros de investigación y universidades para futuras investigaciones, desarrollo y colaboración, pero bajo los términos de licencia correspondientes.

Más tarde, hay una separación entre Bell Labs y AT&T. Dado que el monopolio controlado por el gobierno está en AT&T, Bell Labs es libre después de la separación, por lo que ya no hay problemas legales.

Sistema V y BSD

En la década de 1980, AT&T lanzó una versión comercial de Unics llamada System 5 (conocida como System V ).

Mientras tanto, mientras AT&T estaba trabajando en System 5, en Berkeley University of California, el desarrollo del código previamente compartido de Bell Labs continúa y un sistema operativo Unics muy similar se está desarrollando y lanzando como BSD (Berkeley Software Distribution).

Es hora de un resumen:

  • El desarrollo inicial de Unics se está realizando en los laboratorios Bell.
  • El código fuente de Unics es compartido entre universidades y otras investigaciones.
  • Separación de Bell Labs y AT&T
  • AT&T continúa con el desarrollo de su propia versión de Unics llamada System 5
  • En Berkeley University of California, el desarrollo del código fuente previamente compartido continúa y se lanza otro sistema operativo como BSD (Berkeley Software Distribution).

Entonces, a mediados de los 80, ya tenemos dos distribuciones Unics diferentes (Sistema 5 y BSD) evolucionadas por sí mismas, pero compartiendo un predecesor común.

No existe el sistema operativo Unics "real" o "genuino". A medida que pasa el tiempo, hay aún más variantes de lo que estaba disponible en esas dos sucursales.

  • HP se ramifica desarrollando un sistema operativo llamado HP-UX (Hawelt Packard Unix).
  • Sun se ramifica con un sistema operativo llamado Solaris.
  • IBM se ramifica y continúa desarrollando su versión llamada AIX.

Vale la pena mencionar que todas estas ramificaciones se están realizando para proporcionar algunas características únicas a fin de que un proveedor determinado ofrezca un mejor producto en el mercado. Por ejemplo, la pila de red está disponible primero en la rama BSD, pero luego se transporta a todas las demás ramas. Casi todas las características agradables se cruzaron en algún momento a todas las demás sucursales. Para superar los problemas mientras se realizan funciones de puertos cruzados, y para optimizar la reutilización a un nivel superior, el IEEE Computer Society está introduciendo POSIX (Interfaz del sistema operativo portátil X) en 1988. Este es un estándar que, si es seguido por los proveedores, es compatible con Los sistemas operativos estarán garantizados, por lo que los programas serán ejecutables en otros sistemas operativos sin que se requieran modificaciones.

Aunque la reutilización está presente hasta cierto punto, la adición de nuevas características requiere mucho trabajo, por lo que hace que el desarrollo sea más lento y más difícil. Esto se debe a la herencia de los términos y condiciones de la licencia de AT&T bajo la cual se distribuyó el código fuente de Unics. Para eliminar todos los problemas legales sobre compartir el código fuente, las personas que trabajan en la sucursal de BSD comenzaron a reemplazar el archivo fuente original heredado de AT&T con su propia implementación, pero lo liberaron con la licencia BSD que es más liberal en términos de reutilización, modificaciones, distribución, etc. La idea es lanzar el sistema operativo Unics sin ninguna restricción. Hoy en día, esto se conoce como software libre. Gratis como en libertad para estudiar, modificar y distribuir la versión modificada sin ninguna acción legal contra el desarrollador.

Esta idea no fue bien recibida por AT&T, así que hubo una demanda. Resulta que no hay violación de ningún tipo. La tendencia de reemplazo de archivos continúa y la versión 4.4 de BSD (también conocida como BSD Lite) se liberó de cualquier código fuente que se originó en AT&T.

Una recapitulación más:

  • Muchas ramificaciones
  • Estándar POSIX
  • Resulta que muchas características están siendo portadas cruzadas tarde o temprano
  • Es difícil decir qué es el sistema operativo Unics "raíz" o "genuino". Todo se está derivando del mismo predecesor y todas las características se portan de forma cruzada, por lo que todo es más o menos una variación del mismo sistema operativo.
  • Debido a problemas legales que provienen del contenido de la licencia de AT&T, el desarrollo fue difícil y la redundancia era común.
  • BSD comenzó a eliminar todos los archivos que se originan en AT&T y proporciona archivos de origen que se pueden modificar y redistribuir de forma gratuita.

Ahora es el momento de mencionar el proyecto GNU.

ÑU (GNU)

GNU (GNU's Not Unix), un software libre, proyecto de colaboración masiva anunciado en 1983. Su objetivo es proporcionar a los usuarios libertad y control en el uso de sus computadoras y dispositivos electrónicos.

¿Puedes ver la idea similar con lo que la gente detrás de BSD ya está haciendo?

Ambos están relacionados de alguna manera con el término software libre. pero con una diferencia muy grande en la forma en que se debe tratar el software libre y eso es obvio al comparar la licencia GPL (lanzada por GNU) y la licencia BSD. Básicamente, todo se reduce a:

  • La licencia BSD es menos restrictiva. Se dice hacer lo que quieras con el código fuente. No hay restricciones de ningún tipo.
  • La licencia GPL es más restrictiva pero de buena manera. Pone énfasis en prevenir el uso de código de código abierto (licencia GPL) en aplicaciones de código cerrado de propiedad. Establece que si se está utilizando algún código fuente con licencia GPL, la fuente de su código también debe publicarse bajo la misma licencia. Básicamente, con la licencia GPL, puede tomar lo que quiera, pero debe devolver lo que produzca, aumentando así la cantidad de software libre disponible.
  • A modo de comparación, la licencia BSD no establece que todo lo que se está produciendo debe ser lanzado como software libre también. Se puede lanzar como software de código cerrado de propiedad sin compartir el código fuente.

Además de la licencia, el proyecto GNU está desarrollando una gran cantidad de software que se requiere para tener un sistema operativo completamente funcional. Algunas de sus herramientas son la biblioteca C de GNU, la colección de compiladores de GNU (GCC), el entorno de escritorio GNOME, etc. Todos los cuales se utilizan actualmente en las distribuciones de Linux más populares.

Teniendo todo esto en mente, hablemos de Linux explicando brevemente qué es.

Linux

Tux, la mascota de Linux.

Linux no es un sistema operativo como BSD. Linux es un kernel.

Pero, ¿cuál es la diferencia entre un kernel y un sistema operativo?

  • Un sistema operativo es una colección de muchas cosas que funcionan como un producto completo, completamente funcional y completo.
  • Un kernel es solo una parte de todo el sistema operativo.
  • En términos del kernel de Linux, se puede decir que no es más que un montón de controladores. Aunque hay un poco más, para este propósito, ignoraremos el resto.

Ahora, ¿qué son los conductores? Un controlador es un programa que puede manejar la utilización de una pieza específica de hardware.

Breve recapitulación:

  • Un controlador es un programa que maneja la utilización de una pieza específica de hardware.
  • Linux es solo un montón de controladores (y algo más que será ignorado por ahora)
  • Linux es un kernel.
  • Un kernel es una pieza de un sistema operativo.

Supongo que ya estamos todos claros para comenzar con la lección de historia de Linux.

Sus orígenes se encuentran en Finlandia en la década de 1990, unos 20 años más tarde que Unics. Linus Torvalds en ese momento era un estudiante y fue influenciado por la licencia GNU y Minix (sistema operativo para la educación basado en Unics). Le gustaban muchas cosas acerca de los sistemas operativos Unics, pero también no le gustaban algunas de ellas. Como resultado, comenzó a trabajar en su propio sistema operativo utilizando muchas de las herramientas de GNU ya disponibles. El resultado final es que Linus desarrolló solo un Kernel (los controladores). A veces, los sistemas operativos basados ​​en Linux se denominan sistemas operativos GNU-Linux porque, sin las herramientas GNU, el kernel de Linux es inútil en la vida real.

Se puede decir que Linux, hasta cierto punto, es solo una reimplementación de lo que estaba disponible como sistema operativo Unics (BSD, Sistema 5 ...) pero con una licencia que pone más énfasis en mantener el software libre haciendo cumplir las modificaciones que se aportarán. Atrás, por lo tanto disponible para el estudio, modificaciones y distribución adicional.

Las capacidades de tiempo compartido que permiten realizar tareas múltiples, el lenguaje de programación en C para proporcionar portabilidad, diseño de software modular que permite intercambiar una sola paz cuando sea necesario y reutilizar el resto, y otras cosas se heredan de Unics. Esos son los fundamentos mencionados al principio de este post. Pero no compartir ningún código fuente con Unix.

Vale la pena mencionar que Linux fue pensado para ser un proyecto escolar pequeño. Muchos informáticos estaban interesados ​​en probarlo por curiosidad.

Mientras Linux aún era joven, la demanda entre BSD y AT&T estaba en curso. Debido a la incertidumbre en las características de BSD, muchas compañías que utilizaron BSD se mudaron a Linux como una alternativa muy similar con características más estables. Linux también fue una fuente única de código, mientras que la fuente BSD se distribuyó en muchas sucursales independientes (BSD, Solaris, HP-UX, AIX, etc.)

Desde la perspectiva de una empresa, requerir un sistema operativo para su producto (enrutadores Wi-Fi, cajas de TV por cable, etc.) Linux fue una mejor opción. Tener una sola sucursal garantiza que todas las características combinadas en la única característica estarán disponibles de inmediato. Tener una sola rama es más simple para el mantenimiento también. En el lado de BSD, debido al desarrollo independiente, esas nuevas características aún requerían algún tipo de puerto cruzado que a veces rompe algo más.

Esta es la razón histórica de por qué Linux ganó gran popularidad incluso en las primeras etapas de su desarrollo, sin estar aún en par con BSD y careciendo de muchas características.

Unics vs Unix, Multics vs Multix

¿Notó que a veces se usa el término Unics en lugar de Unix?

Lo divertido es que el nombre original del proyecto es Unics, pero de alguna manera la gente comenzó a llamarlo Unix. Hay muchas historias sobre por qué Unix se convierte en un nombre popular, pero nadie puede decirlo con seguridad. Ahora el nombre Unix es aceptado como el nombre oficial del proyecto.

Lo mismo sucede con Multics, con el tiempo todos lo llamaban Multix, aunque no era su nombre oficial.

Conclusión - Unix vs Linux

Una línea de tiempo de sistemas operativos similares a Unix

En este momento conocemos la historia y la evolución de los sistemas operativos, sí sabemos por qué ocurrieron todas estas ramificaciones, sí sabemos cómo la política gubernamental puede influir en las cosas. Toda la historia se puede resumir como:

  • Unix fue un sistema operativo en los años 60 y 70 mientras se desarrollaba en los Laboratorios Bell. Con toda la ramificación mencionada anteriormente, y las características de transferencia cruzada entre las ramas, es simplemente una situación caótica y es difícil decir qué es el auténtico Unix.
  • Se puede decir que los sistemas operativos más genuinos de Unix son System 5 y BSD.
  • El sistema 5 es desarrollado por AT&T como una continuación del trabajo realizado en los Laboratorios Bell después de su separación.
  • El antepasado directo más popular de Unix es el proyecto BSD. Tomó todo el código fuente de lo que se desarrolló en los Laboratorios Bell, luego reemplazó cualquier código fuente publicado bajo una licencia restrictiva y lo continuó como distribución gratuita.
  • Otras distribuciones populares de hoy son Free BSD, Open BSD, Net BSD, pero hay muchas más disponibles.
  • Linux , por otro lado, no comparte ningún código con Unix (de Bell Labs), simplemente sigue el mismo principio de utilizar bloques de construcción pequeños para producir algo de mayor valor. Esto se conoce principalmente como escribir un pequeño programa que hace una cosa y lo hace bien. Más tarde, esos programas se combinan con mecanismos conocidos como "tuberías" y "redireccionamiento", por lo que la salida de un programa se convierte en la entrada de otro programa y, a medida que la información fluye, se obtiene algo de valores más grandes como resultado final.
  • En términos de licencias, Unics tiene una política de licencias muy restrictiva cuando se desarrolla. Más tarde, se bifurca bajo licencias libres (BSD). Linux, por otro lado, está utilizando la licencia GPL desde el principio.
  • Ambos siguen el estándar POSIX, por lo que se garantiza la compatibilidad del programa.
  • Ambos están usando la misma shell para interactuar con el kernel. Es Bash por defecto.
  • BSD se distribuye como un sistema completo.
  • Los sistemas operativos basados ​​en Linux se crean con el kernel de Linux en combinación con el software GNU y muchas otras utilidades más pequeñas que se cumplen para lograr el objetivo.
  • Distribuciones populares de Linux: Ubuntu, Mint , CentOS , Debian , Fedora, Red Hat, Arch Linux y muchos más. En la actualidad, hay cientos de distribuciones, algunas de ellas incluso optimizadas para un propósito específico, como los juegos o las computadoras viejas .

Aunque dijimos que hay una sola fuente: el Kernel de Linux, hay muchas Distribuciones de Linux (sistemas operativos basados ​​en Linux). Esto puede ser confuso para alguien, así que lo explicaré por si acaso:

Cada distribución (distribución) de Linux incluye versiones diferentes del Kernel de Linux o de las herramientas, o simplemente utiliza diferentes bloques de construcción. Por ejemplo, Ubuntu está usando SystemD como sistema de inicio, pero Slackware está usando SysV como equivalente. No hay nada de malo en ambos, hacen lo mismo con algunas diferencias y hay un caso de uso cuando uno es mejor que el otro,

Otro ejemplo es que hay usuarios que prefieren tener siempre la última versión del software, usan sistemas operativos basados ​​en Linux de lanzamiento rodante como Arch Linux. Otros pueden preferir un entorno estable sin cambios importantes en 5 o más años, la versión de Ubuntu LTS (Soporte a largo plazo) es ideal para este caso de uso, por lo que es ampliamente utilizada en servidores junto con CentOS.

Como puedes ver, hay aún más similitudes entre ambos. Los sistemas operativos basados ​​en Linux también están en la misma situación "caótica". No existe el sistema operativo real o el basado en Linux. Hay muchos de ellos, pero al menos comparten la misma fuente del Kernel de Linux,

Vale la pena mencionar que los programas escritos para sistemas operativos basados ​​en Linux o comandos bash que siguen los estándares POSIX también pueden ejecutarse en cualquier sistema operativo basado en Unix. Por lo tanto, todo el software principal como Firefox o el entorno de escritorio GNOME está disponible en todas partes sin necesidad de modificaciones.

Otro dato divertido que no se mencionó anteriormente es que incluso el sistema operativo Mac (utilizado en las computadoras Apple) se considera un derivado de BSD. No todos los lanzamientos, pero algunos de ellos son.

Como puede ver, en realidad, las cosas son aún más complicadas e interesantes.

Arbol de las distribuciones de Linux, desde 1992 hasta 2011

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Donar a LinuxParty

La mejor forma de darnos las gracias, es hacer una donación.


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política