GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿se reescribieron todos los comandos de Unix en Linux?

Me gustaría saber qué comandos se reescribieron para Linux y cuáles se conservaron de Unix.

Respuesta aceptada:

Parece que está confundiendo dos partes muy diferentes del sistema operativo. Es comprensible, porque a menudo se los menciona indistintamente, pero es técnicamente incorrecto, por lo que su pregunta se basa en una premisa errónea. Para explorar por completo y, con suerte, responder la pregunta que probablemente quiera hacer, se necesita una breve lección de historia.

Primero, estaba UNIX. Básicamente, en aquellos días, UNIX significaba el sistema UNIX de AT&T, que fue lo primero. Pero AT&T UNIX dejó de ser gratuito, por lo que Richard Stallman inició el proyecto GNU para escribir un sistema Unix que fuera gratuito. De ahí el nombre Gnu no es Unix , abreviado GNU. Los planes para GNU se hicieron públicos en 1983 y el desarrollo comenzó en 1984.

A principios de la década de 1990, GNU había vuelto a implementar la mayoría de las utilidades de UNIX desde cero. Wikipedia enumera algunos componentes del sistema general que no se reescribieron (TeX, el sistema X Window y el micronúcleo de Mach se mencionan como ejemplos de componentes que no se reescribieron) pero, sobre todo, las herramientas de la zona de usuario se reescribieron desde cero para cumplir el objetivo de evitar la reutilización de cualquier código de AT&T (o más bien, no gratuito), así como ampliar sus capacidades al agregar opciones de línea de comandos. Como resultado, las utilidades de GNU solían ser más poderosas que las herramientas en las que se inspiraron originalmente.

En ese momento, a GNU todavía le faltaba un componente vital:un kernel de sistema operativo , lo que permitiría que todo funcione en conjunto en una computadora real que no ejecute ningún otro sistema operativo. En 1991, Linus Torvalds comenzó a trabajar en un proyecto de juguete que finalmente se conoció como Linux. Fue básicamente un proyecto escolar para aprender sobre la entonces nueva CPU Intel 80386 de 32 bits, y comenzó extremadamente simple, pero finalmente comenzó a transformarse en un kernel de sistema operativo realmente utilizable. Pero no tenía ningún software de usuario; Linux por sí solo no proporciona shell, ni funciones de inicio del sistema más allá de la inicialización del kernel, ni editor de texto, ni interfaz gráfica, nada . El núcleo es como el motor de un automóvil; esencial para hacer un automóvil útil, pero inútil por sí solo (para un automóvil útil, necesita cosas como ruedas, transmisión, dirección, un lugar para que el conductor se siente, un tanque de combustible u otra reserva de energía, etc.). El kernel de Linux finalmente se distribuyó bajo la Licencia Pública General GNU, igual que el software GNU .

Entonces la gente comenzó a emparejar a los dos. Obtendría un espacio de usuario similar a Unix, junto con un kernel basado en ideas de Unix (incluyendo una gran similitud con POSIX), completo con código fuente que podría piratear todo lo que quisiera, y no costó nada. . Especialmente antes de las distribuciones de Linux se volvió común, se necesitó un poco de retoques para que las cosas funcionaran, pero estaba lo suficientemente terminado como para que aquellos que estuvieran dispuestos a dedicar algún tiempo a ello lo pudieran usar.

Relacionado:Linux:¿instalar Java en Ubuntu/Linux?

En estos días, GNU proporciona un núcleo propio. Probablemente no hayas oído hablar de él, pero se llama GNU Hurd. Pero Hurd no existía a principios de la década de 1990, cuando Linux comenzó a ganar terreno entre los aficionados y los aficionados, por lo que fue la combinación del kernel de Linux y una zona de usuarios mayoritariamente GNU lo que atrajo la mayor atención entre los desarrolladores.

Además, en estos días, muchos sistemas Unix instalan, o permiten que el administrador instale fácilmente, partes de la zona de usuarios de GNU. Es posible que vea cosas como GNU bash, GNU Compiler Collection, la biblioteca GNU C (vainilla o parcheada), etc., en un sistema que de otro modo no es GNU.

Para empeorar las cosas, algunos sistemas usan el kernel de Linux pero no usan el espacio de usuario de GNU. Para un ejemplo ampliamente utilizado de esto, considere el sistema operativo Android, que es básicamente el kernel de Linux junto con un espacio de usuario personalizado.

Esto es importante porque borra significativamente la línea entre GNU, Linux y los diversos Unix (solo hay un UNIX, pero hay muchos Unix y aún más sistemas operativos similares a Unix). Cuando pregunta sobre Linux, muy a menudo pregunta sobre el sistema GNU/Linux. Pero considere Debian GNU/kFreeBSD, que ejecuta una zona de usuario de GNU sobre el kernel de FreeBSD, sin usar Linux en absoluto. O, por ejemplo, Solaris, en el que puede instalar fácilmente varios paquetes GNU, incluidos, p. coreutils. Creo que Mac OS X también incluye partes de la zona de usuarios de GNU. O considere el Android mencionado anteriormente.

Al final, un sistema GNU utilizable podría ejecutar código no GNU, y un sistema no GNU podría ejecutar código GNU, pero las utilidades GNU no contienen código que no sea GNU.


Linux
  1. Mis 8 comandos prácticos favoritos de Linux

  2. ¿Cómo encontrar todos los archivos propiedad de un usuario específico en Unix/Linux?

  3. Comando de Linux para enumerar todos los comandos y alias disponibles

  4. ¿Por qué no es compatible con GNU/Linux SUS v3+?

  5. ¿Cómo crear comandos personalizados en Unix/Linux?

5 errores de novato en Linux

Cómo ejecutar comandos de archivo .sh todo a la vez en Linux

Comando mkdir en Linux/Unix

Linux frente a Unix

Comando Grep en Linux/UNIX

Comandos Zip y Unzip en Linux/Unix