¿Por qué no se adopta Linux como el núcleo oficial de GNU?

128

Si bien supe durante bastante tiempo la existencia de Hurd , y su misión como el núcleo oficial del sistema operativo GNU, me preguntaba cómo es que Linux no se adoptó como el núcleo oficial de GNU a lo largo de los años, ya que está en un estado mucho mejor que el Hurd?

Linux ha estado, más o menos, cumpliendo este rol más de 20 años hasta ahora, sin embargo , uno puede ver que el Proyecto GNU mantiene su distancia cuando se trata de Linux. ¿Por qué está pasando esto? ¿Es por un sueño que Hurd estará (en algún momento en el futuro) en un nivel de calidad de producción? ¿Es porque el proyecto GNU no ve su misión reflejada tanto como quiere en Linux? ¿Es por otras razones políticas?

NlightNFotis
fuente
20
Una especie de pregunta "ilegal" aquí pero interesante. Con un poco de suerte se protege por "importancia histórica", dado respuestas suficientemente brillantes ... ;-)
Hauke ​​Laging
2
@HaukeLaging Gracias compañero. También creo que esta es una buena pregunta, y puede producir respuestas interesantes, y realmente no puedo entender por qué alguien emitiría un voto cercano. Estoy seguro de que esto es algo que mucha gente quisiera saber.
NlightNFotis
1
Oh, eso es simple: alguien tendría que señalar las preguntas frecuentes y gritar "fuera de tema" Y "demasiado amplio" ...
Hauke ​​Laging
55
@HaukeLaging Eres tan cierto, y desearía que las personas fueran más pragmáticas y pudieran reconocer una pregunta con algún valor en lugar de solo señalar las preguntas frecuentes y gritar. Uno puede ver fácilmente en SO las preguntas más interesantes que se están cerrando, solo para preguntarse ...
NlightNFotis
44
Acabo de volver a leer las preguntas frecuentes. En mi humilde opinión, este es el tema aquí. Aunque es una meta-pregunta, la pregunta en sí se relaciona con Linux / Unix y es bastante clara.
Nils

Respuestas:

151

GNU no adoptará algo como proyecto a menos que los desarrolladores estén de acuerdo con ciertas estipulaciones que vinculan todos los proyectos oficiales de GNU.

Actualmente, el kernel de Linux probablemente no se ajusta a estas restricciones, y no hay nada para Linus Torvalds, kernel.org, et al. para ganar al colocarse bajo el paraguas de GNU, y mucho que perder: el acuerdo vinculante antes mencionado y la percepción pública de que el núcleo ahora es un proyecto GNU, lo que tendría un impacto mayormente negativo. La organización matriz de GNU, la Free Software Foundation (FSF), es una organización política y Torvalds ha hecho varias críticas públicas sobre ella y sobre el controvertido e iconoclasta líder / fundador de por vida de GNU y la FSF, Richard M. Stallman.

Además, el kernel de Linux no requiere el espacio de usuario de GNU más de lo que el espacio de usuario de GNU requiere el kernel de Linux. Los principios básicos de la ingeniería de software deberían considerar esta independencia como algo bueno, que favorecen la modularidad y el acoplamiento más flexible en lugar de lo opuesto (cosas monolíticas con acoplamiento estrecho).

Otro punto en contra de esta idea es que si bien HURD puede no ser de interés para tantas personas como Linux, los desarrolladores y usuarios de HURD pueden oponerse a que su proyecto se elimine de manera efectiva en un concurso de popularidad. Y bien por ellos; La "competencia" de este tipo es algo positivo, mientras que inclinarse ante la monopolización no lo es: terminas con entidades masivas que sofocan la creatividad en parte porque son propensas al control monolítico / meglomaníaco. La Fundación Linux ya es una organización independiente, bien podría seguir siendo así.

encerrada dorada
fuente
13
Gracias por la fantástica respuesta. +1 de mi parte y 2 notas: 1) No me malinterpreten: tengo una gran opinión de Hurd. Soy un desarrollador de hurd. Sin embargo (creo que) no es discutible que Linux sea un estado mejor. 2) Puedo ver por qué Linux no querría estar acoplado con GNU, pero por lo que puedo ver, es el Proyecto GNU el que demuestra las mayores objeciones a esto. ¿Podrías dar más detalles sobre esto?
NlightNFotis
14
@NlightNFotis: ¿Estás seguro de que es principalmente una objeción de GNU? Solo leyendo esto: torvalds-family.blogspot.ca/2008/11/black-and-white.html . Para mí, parece que todos los involucrados son mucho más felices sin una relación formal.
Ricitos de Oro
Gracias por esta publicación en el blog. Tiene más sentido ahora. Mantendré la pregunta abierta durante algún tiempo para ver si las personas elaboran con respuestas más fantásticas, y si no, la suya será seleccionada como la "respuesta" a esta pregunta. Solo una última "petición" más. ¿Le importaría, reformulando si puedo decir, "puede que no tenga una gran opinión de HURD" porque me hace sentir un poco incómodo y me hace sentir mal conmigo mismo.
NlightNFotis
44
Realmente me gustan las ideas detrás de Hurd. Lo que me vino a la mente: la tendencia actual hacia la virtualización podría resultar de gran ayuda para que Hurd vea al menos una parte del mundo real. No necesita un sistema operativo completo para que alguien lo use. Si tiene algunas aplicaciones que tienen claras ventajas de ejecutarse bajo Hurd, entonces simplemente puede ponerlas en una VM Hurd. Similar a chrooting, lxc o lo que sea.
Hauke ​​Laging
2
@NlightNFotis reformuló :)
goldilocks
77

Hay mucha documentación y discusión sobre esto en la red.

La respuesta corta es que existen profundas diferencias ideológicas entre el proyecto GNU y los proyectos del kernel de Linux, lo que impide una posible unificación.

El enfoque de la FSF, la organización detrás del Proyecto GNU, está en la pureza ideológica con respecto a la idea del software libre. Esto toma su liderazgo en gran medida de las opiniones del fundador de FSF / GNU, Richard Stallman. Además, como ha mencionado Ricitos de Oro, la FSF ahora es principalmente una organización de defensa política. Desde hace mucho tiempo, la FSF no ha invertido recursos significativos en el Proyecto GNU, aunque sí proporcionan infraestructura de soporte.

El proyecto del kernel de Linux tiene una postura mucho más pragmática sobre la libertad del software, nuevamente en gran medida derivada de su fundador, Linus Torvalds. El proyecto de kernel de Linux es principalmente un proyecto de software libre, que consiste en desarrolladores de software especializados en el desarrollo de kernel / OS y, en ningún caso, una organización de defensa política.

Como ejemplos específicos de cómo se desarrollan estas ideologías en la práctica, considere

1) Que Stallman considera inaceptable el hecho de que el proyecto Debian "publicite" software no libre al mantener la parte no libre de su archivo de software. Esto es irónico, ya que el proyecto Debian se centra en la libertad de software que es bastante similar a la FSF, aunque no es tan rígido ideológicamente.

2) Que el kernel de Linux permite que se utilicen módulos de kernel binarios (no libres) con el kernel. Si bien los desarrolladores del kernel no están entusiasmados con esto, lo toleran, pero es difícil imaginar que la FSF lo haga.

También vale la pena señalar que el intento de Stallman de nombrar los sistemas operativos basados ​​en el kernel de Linux como GNU / Linux probablemente no ha mejorado las relaciones entre la FSF y la comunidad del kernel de Linux, aunque no tengo datos específicos sobre esto.

Aparte de cualquier otra cosa, como menciona goldilocks, la FSF tiene varias reglas que un proyecto GNU debe cumplir. Esto incluye la asignación de derechos de autor de todo el código a la FSF. Esto en sí mismo sería un factor decisivo, ya que Linus Torvalds nunca ha requerido dicha asignación de derechos de autor. Por lo tanto, si el kernel de Linux se convirtiera en parte del proyecto GNU, todas las contribuciones significativas al kernel de Linux tendrían que tener sus derechos de autor asignados a la FSF. Dada la edad y el tamaño del proyecto, y la cantidad de contribuyentes, esto es básicamente imposible. Los proyectos mucho más pequeños y más jóvenes (por ejemplo, Mercurial) han encontrado que el software que renueva la licencia es una tarea desalentadora.

Tenga en cuenta que esta respuesta no pretende ser una crítica a los desarrolladores del núcleo FSF o Linux. Ambas partes tienen sus propios puntos de vista válidos. Sin embargo, la realidad de la situación es que, en cierta medida, son puntos de vista incompatibles.

Faheem Mitha
fuente
44
+1 Me gusta esta respuesta. Información sólida sobre el tema. Agradezco tu aporte.
NlightNFotis
1
Vale la pena señalar que en muchos países de Europa la 'asignación de derechos de autor' no es legalmente posible. Existen otras posibilidades (acuerdo de contribuyentes) pero la asignación de derechos de autor podría no ser legalmente posible, no solo técnicamente.
Maciej Piechotka
1
@FaheemMitha, no según la definición de GNU porque los blobs binarios ciertamente son parte del núcleo; se distribuyen en el código fuente del núcleo, y se integran en los binarios del núcleo y son necesarios para que funcionen.
psusi
8
Ahh, los controladores propietarios son otra cosa a la que GNU se opone. Esta fue una de las razones de GPLv3; para impedir que los módulos propietarios se vinculen a código libre, incluso en tiempo de ejecución, y por qué Linux eligió quedarse con GPLv2.
psusi
1
@vonbrand, si estás de acuerdo o no es irrelevante; es la posición de la FSF y, por eso, Linux nunca podría ser un proyecto GNU.
psusi
35

Estoy citando un comentario de Richard Stallman , sobre la decisión de rodar con Hurd en lugar de Linux.

La gente a veces pregunta: `` ¿Por qué la FSF desarrolló un nuevo núcleo libre en lugar de usar Linux? ''. Es una pregunta razonable. La respuesta, brevemente, es que esa no es la pregunta que enfrentamos.

Cuando comenzamos a desarrollar Hurd en 1990, la pregunta a la que nos enfrentábamos era: `` ¿Cómo podemos obtener un kernel libre para el sistema GNU? ''. Entonces no había un kernel similar a Unix y no conocíamos otro plan para escribir uno. La única forma en que podíamos esperar tener un núcleo libre era escribirlo nosotros mismos. Entonces empezamos.

Escuchamos sobre Linux después de su lanzamiento. En ese momento, la pregunta que nos enfrentaba era: `` ¿Deberíamos cancelar el proyecto Hurd y usar Linux en su lugar? ''

Escuchamos que Linux no era portátil (esto puede no ser cierto hoy, pero eso es lo que escuchamos entonces). Y escuchamos que Linux estaba arquitectónicamente a la par con el kernel de Unix; Nuestro trabajo conducía a algo mucho más poderoso.

Dados los años de trabajo que ya habíamos puesto en Hurd, decidimos terminarlo en lugar de tirarlos.

Si nos enfrentáramos a la pregunta que la gente hace, si Linux ya estuviera disponible, y estuviéramos considerando si comenzar a escribir otro núcleo, no lo haríamos. En su lugar, elegiríamos otro proyecto, algo para hacer un trabajo que ningún software libre existente puede hacer.

Pero empezamos Hurd, en aquel entonces, y ahora lo hemos hecho funcionar. Esperamos que su arquitectura superior haga que los sistemas operativos libres sean más potentes.

NlightNFotis
fuente
77
A pesar de las fantásticas respuestas proporcionadas a la pregunta, seleccionaré esta respuesta como la canónica a la pregunta porque demuestra la razón detrás de la elección de quedarse con Hurd, directamente del creador del Proyecto GNU, Richard Stallman.
NlightNFotis
99
Tenga en cuenta que "esto puede no ser cierto hoy": la opinión de RMS sobre Linux parece estar basada en rumores, no en conocimiento.
Martin Schröder
19
@ Martin: (Respuesta tardía, pero :) Cuando Torvalds anunció por primera vez Linux, era específico para x86, con cero planes para hacerlo portátil. En el hilo inicial, Linus dijo: "Yo diría que portar es imposible". Por lo tanto, rms no tenía ninguna razón para creer originalmente que Linux se convertiría en lo que tiene hoy. La evidencia de la boca del líder del proyecto es apenas un rumor.
Kevin Cathcart
@KevinCathcart: RMS / FSF debería haber estudiado el código ellos mismos en lugar de confiar en otros ("escuchamos").
Martin Schröder
21
@ MartinSchröder: ¿Por qué estudiar el código cuando el Líder del Proyecto dijo explícitamente que no sería portátil? De todos modos, Linux se anunció en 1991. Tomó hasta abril de 1994 (versión 1.1.45) antes de que Linux incluso agregara las carpetas para puertos de arquitectura. Tomaría más tiempo antes de que cualquier puerto fuera práctico. Si la FSF tomó la decisión de continuar con Hurd en 1992 o 1993, mirar el código solo habría reforzado que el código no era portátil.
Kevin Cathcart
4

Solo estoy agregando mi 2 centavo aquí, creo que lo que se ha discutido en este punto tiene mucho sentido, pero hay un aspecto importante que creo que realmente puede polarizar la base de GNU y es el hecho de que Linux se está volviendo más y más más un lugar donde las grandes corporaciones están invirtiendo dinero y tiempo real, la idea de que Linux es una especie de proyecto hecho en casa no es verdad, ni siquiera un poco, tal vez haya algún tipo al azar tratando de llamar la atención mientras da una parchear lejos, pero para gran parte Linux es un trabajo para corporaciones.

usuario2384250
fuente
1
No creo que la FSF tenga un problema con el soporte corporativo de proyectos de software. Su enfoque principal está en los principios del software libre.
Faheem Mitha
El dominio corporativo fue una gran preocupación que la GPL de GNU estaba destinada a abordar. El software con licencia permisiva era en realidad un procedimiento normal tanto en MIT como en Berkeley, pero una vez que se comercializó el código, se cerró rápidamente. Entonces, por ejemplo, podría verificar la fuente de Linux hoy y todas las mejoras desarrolladas comercialmente beneficiarán a mi proyecto potencial. O mi próximo pequeño proyecto personal puede usar solo un par de bloques, el punto es que cualquier mejora lanzada beneficiará a quien trabaje con el código a continuación.
JM Becker
-6

Linux no puede ser Unix, ya que Linux no se ajusta a Posix .

Entonces, incluso sin problemas políticos, Linux no puede cumplir con el objetivo de diseño de Hurd.

Cita : "Hurd es el reemplazo del proyecto GNU para UNIX, un núcleo de sistema operativo popular".

Asombroso, que hay un Debian / Hurd-Projekt . Pero esa es posiblemente una historia diferente ...

Por cierto: Windows (desde NT / XP) también se basa en el núcleo MACH.

Nils
fuente
8
Si va a afirmar que Linux no es compatible con POSIX, tendrá que respaldarlo un poco. Incluyendo donde la FSF dice que requieren un núcleo absolutamente 100% compatible con POSIX. Por cierto, Unix no es POSIX. Unix (marca registrada) es un sistema operativo propietario específico, por lo que no hace falta decir que ningún otro sistema operativo puede ser ese sistema operativo.
psusi
66
¿Cita para el núcleo de Windows basado en MACH? Wikipedia dice que comparten algunas opciones de diseño; pero con MACH como el microkernel prototípico, mientras que la mayoría de los servicios del sistema operativo Windows se ejecutan en el núcleo, no en el país de los usuarios. El único componente importante de OSS en el kernel de Windows que conozco es la pila de red que solía estar basada en la implementación de BSD; sin embargo, fue arrancado y reemplazado por uno que mejor interactuó con el resto del diseño del sistema operativo hace varias versiones (IIRC en XP o 2k).
Dan Neely
14
Pero GNU no es Unix tampoco.
Simon
66
@Nils, la pregunta que vinculó contradice su posición, en lugar de apoyarla .
psusi
8
@Nils, el sinsentido de Mach es otro concepto erróneo popular. NT no tiene nada en común con mach. Sus "servidores de subsistema" no son diferentes a los demonios de Unix, que no forman un microkernel. Originalmente, la interfaz gráfica de usuario se implementó en modo de usuario, y esto solo tenía un parecido pasajero con un sistema de microkernel (aunque también lo es Xwindows, que no convierte a Linux en un microkernel), pero esto se desechó en NT4 y se trasladó al kernel.
psusi