GNU y Linux, líneas de código de cada uno
Soy de los que creen que deberíamos hacer caso a RMS cuando nos pide que llamemos GNU/Linux al sistema operativo completo. Tiene razón por muchos motivos, desde recordar el tema ético y la historia de porqué se ha empezado a desarrollar un sistema libre hasta temas técnicos y económicos.
No volveré a repetir el tema ético, hoy no quiero que me acusen de dogmático, lo pasaré de largo. De la historia sólo cabe recordar que el proyecto GNU comenzó a desarrollar un sistema completo en 1984 (8 años antes que el Linux fuese usable) y Linus Torvalds eligió la licencia GPL porque era la misma licencia que tenía el compilador que usé (y necesario) para compilar su kernel: el gcc.
Esta vez me limitaré a números fríos: líneas de código.
Desde el punto de vista técnico hay un consenso general, en todos los libros de textos de sistemas operativos se explica claramente que un sistema completo está formado por un núcleo –monolítico como Linux o microkernel como el Darwin o Hurd– y las utilidades para poder hacer funcionar y usar el sistema
Normalmente no hay acuerdo sobre cuales son todas las utilidades básicas, pero algunas de ellas son irrefutables en un sistema compatible Unix/Linux. Son las que no se suelen llamar “aplicaciones”, ya que no están orientadas a resolver problemas específicos de los usuarios. Las utilidades consideradas parte del sistema operativo son:
- Compiladores y preprocesadores.
- Librerías básicas como las libc (son las que se usa para toda la interacción entre programas y el núcleo).
- Herramientas básicas, como el tar, awk, grep.
- Intérprete de comandos (shell).
- Editor de texto.
Cualquier distribución que funcione con el núcleo Linux llevará esa serie de utilidades. Desde un punto de vista puramente “técnico” –SLOC, líneas de código– y “económico” –coste– ¿que peso tiene cada una? Es lo que hice. Cogí mi Debian Sid y miré que paquetes de utilidades básicas “oficiales GNU” tenía instalados, baje las fuentes de esos paquetes y las comparé con el núcleo Linux usando el paquete sloccount (para un estudio completo de una distro ver More than a Gigabuck:… o Contando Patatas: El tamaño de Debian 2.2).
Así, elegí los siguientes paquetes que estaban instalado en mi ordenador:
automake1.8 gawk-3.1.4 gettext-0.14.4 groff-1.18.1.1
readline5-5.0 bash-3.0 gcc-3.4-3.4.3 glibc-2.3.5
libtool-1.6 sed-4.1.4 binutils-2.15 gdb-6.3
gnutls11-1.0.16 make-3.80 tar-1.14 coreutils-5.2.1
gdbm-1.8.3 grep-2.5.1 pth-2.0.1
Fijaros que no están algunos programas GNU que podrían considerar “básicos” como el emacs. No lo cuento aunque es muy usado para desarrollo, incluido el Linux.
Resumen de los resultados (GNU, Linux)
Números de líneas de código:
GNU: 6.157.885 líneas de código.
Linux: 4.280.803 líneas de código.
El coste estimado de desarrollo COCOMO (en dólares americanos):
GNU: $ 235.788.936.
Linux: $ 175.688.416.
O sea, desde un punto estrictamente técnico –número de líneas de código– y económico, el sistema tiene más de GNU que de Linux. Me parece que sólo eso justifica que se llame al sistema Ñu Linux y no sólo Linux. No es una obligación, cada uno puede llamarle como quiera, pero aquí desmonto cualquier razón técnica que justifique que lo “correcto” sea sólo Linux.
Alguno podrían argumentar que se hace muy largo, pero güindous equis pe o güindous dos mil son más largos y la gente los usa. Parece que si lo dice el marketing está bien, si lo dice RMS es un fanatismo.
Y si el argumento es la mayor comodidad, desde un punto de vista de números fríos es más correcto llamarle Ñu a secas, pero nadie lo ha pedido, aunque lo opuesto es pan de cada día.
PS: podría argumentarse que debería entonces agregarse Gnome (aunque es –o comenzó– un proyecto GNU) o KDE al nombre. Si sus desarrolladores lo pidieses quizás lo intente, pero no son esenciales para el funcionamiento del sistema, también dependen de las herramientas GNU, son reconocidos y tienen entidad propia. En general cualquier usuario de GNU/Linux sabe si usa KDE o Gnome y lo dice, pero muy pocos saben que usan GNU, ni las motivaciones.
Jo m’he acostumat a dur a terme una pràctica bastant peculiar li podem dir. Quan me demanen que uso, si el paio amb qui xerro sé que no sap de que va el tema, li contest “prorgamari lliure”. Així sempre me demanen que punyetes és i tinc la oportunitat d’explicar-lis.
Per que després qualque professor cabron me digui “evangelista”…
Comment by Pau Rul·lan Ferragut — Friday 22/4/2005 @ 21:42
Tienes razón, y aunque mi pereza me ha podido en anteriores ocasiones, intentaré aplicarme para recordar que hay que utilizar el término GNU/Linux. Eso ha servido para recordarmelo otra vez.
Comment by alidhaey — Saturday 23/4/2005 @ 1:26
jejeje no veas la cara que se le queda al personal cuando les dices que usas “ñulínux” ^_^
Comment by Debianerorociero — Saturday 23/4/2005 @ 2:33
eps, GNOME no necesita ser GNU/GNOME
GNOME -> GNU Network Object Model Environment
Por otro lado, creo recordar haber leído en algún sitio (barrapunto posiblemente), que a RMS no le gusta que pronunciemos ñu (creo que el prefería algo como geneu o pronunciar gnu igual que decimos gnomo). Cuestiones bizantinas, vamos.
Comment by ramonono — Saturday 23/4/2005 @ 3:22
Aix!
Això de les xifres és massa fred… preferesc (supos que tu també) pensar en les motivacions ètiques.
La propòsta d’en Pau m’ha captivat!
Me pareix encertada mentre no sigui l’habitual a tots els desktops. Després cadascú ja li dirà nyu (Llegeixi’s `GNU`) o bsd o el que sigui [depenen del que empri, clar!!]
Mentres tant, depenent de qui ho demani, jo contestaré:
- Programari Lliure
- NYU
- NYU/Linux
- Programari de qualitat, no com tu, pobre imbècil, que t’amargues la vida amb el puta hase. (insult!¡ , insult!¡)
El nom que si li dona a les coses és una cosa important, avui en parlava amb una persona (res relacionat amb soft lliure). És com els periodistes que si llegeixes varis titulars de la noticia a un diu que un és un crimilal, l’altre un delinqüent, etc. Les paraules son el reflexe del que es pensa i del que es vol expresar. Cal ser acurat, en segons quins hàmbits. La comunitat de desenvolupadors i usuaris de programari lliure es sustenta únicament gràcies a aquest fet, a que és lliure, per tan, cal cuidar la llibertat.
xDD
Comment by FrIkI — Saturday 23/4/2005 @ 5:06
Al #4: No decía que haya que llamar GNU/Gnome, sino que no hace falta llamar Gnome/Gnu/Linux, de hecho dije que comenzó como un proyecto GNU (no sé si los desarrolladores lo siguen manteniendo). Eso de que a RMS no le gusta “Ñu” es mentira, lo dice explícitamente que en castellano es más fácil y claro que en inglés.
Al #5: sí, prefiero el tema ético, pero los que no quieren saber nada de eso te ponen otras excusas falsas, y sólo muestro que desde ese punto de vista también es justo que sea Ñu.
Comment by gallir — Saturday 23/4/2005 @ 11:48
Al #4 y #6: En una entrevista canal 33 Stallman dice que el animal es un “ñu” y que así se pronuncia. Si todas las discusiones fuesen así de sencillas…
Yo procuro decir Software Libre (y últimamente mucho, debido a que le estoy allanando el terreno al inminente “Lliurex”). “¿Te refieres a Linux?”, “Si, linux, los programas GNU y algunos otros, pero lo que vamos a usar es software libre”. Y si se dejan les explico en que consiste, que ya les he colado el openoffice y el qcad y cuales son las razones para cambiar totalmente.
Comment by Perexat — Saturday 23/4/2005 @ 13:07
Sobre cómo debe pronunciarse GNU, creo en una (flojilla) biografía sobre RMS que estuve hojeando, se habla de cómo debería pronunciarse:
Me extranyaría que un tipo tan consecuente como RMS haya dado varias indicaciones distintas en distintos momentos, pero según ésto, “GNU” debería pronunciarse como en genuflexión
Por otra parte, la costumbre de pronunciar el nombre o el acrónimo de los programas de una manera no evidente, no deja de antojárseme algo caprichosa, como alejando a los entendidos del resto de los mortales usuarios; como ejemplos basta citar LaTeX, o Nvu (que, al parecer, debe pronunciarse como “in view”). De hecho, en muchos FAQ se aborda éste tema…
Ésa divertida práctica, ¿aleja o acerca el software libre a la mayoría de las personas? Yo creo que no ayuda…
Comment by marc — Sunday 24/4/2005 @ 13:16
Como mi inglés deja mucho que desear, y lo mio es el castellano y el catalán, yo voy a decir Ñu o nyu en catalán.
Si la gente dice linux, pq GNU/Linux es muy largo (parece ser el único argumento serio), pues yo digo Ñu, porque linux es muy largo.
Comment by davidcg — Sunday 24/4/2005 @ 15:40
Marc, #8. Conozco a varios cientos de personas que dijeron “yo por los acrónimos no me acercaré al software libre”. Y se alejaron diciendo scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk scandisk.
Comment by Cucafera — Sunday 24/4/2005 @ 16:50
GNU/Linux vs. Linux
Uno de los eternos y recurrentes debates en el mundo del Software Libre: si se debe decir Linux o GNU/Linux
A mi esto de Linux vs. GNU
Trackback by jotarp.org — Monday 25/4/2005 @ 9:52
El punto es que puedes prescindir de casi la totalidad de paquetes que mencionas (alguien dijo herramientas BSD?), por ejemplo tengo una Redhat e instalo todo desde rpms (chau compilador y agregados), por otro lado solo estas considerando las líneas de código del kernel, probablemente podrías contar algunas líneas correspondientes a los scripts de inicialización.
Nadie le quita mérito a RMS y el proyecto GNU, es más, le estamos eternamente agradecidos, pero… de allí a rasgarse las vestiduras porque no se dice “GNU/Linux” me parece una tontería.
Por cierto, ten cuidado, dijiste “Cogí mi Debian Sid” te falto el GNU
Comment by Slayer_X — Monday 25/4/2005 @ 17:22
¿Entonces como habrán hecho el rpm y el núcleo sin compilador? ¿de dónde te crees que salen los ejecutables que usas? ¿De una cigüeña que lo trae de Paris? Tu visión es demasiado estrecha.
Por otro lado, no me rasgo ninguna vestidura, simplemente explico lo que me parece.
Comment by gallir — Monday 25/4/2005 @ 18:05
Estoy con Slayer_X. Hay muchísimo software libre básico que no es GNU. Por esa regla de tres, mi Gentoo sería Gentoo/Apache/Mozilla/BSD/GNU/Linux. El kernel HURD de GNU sigue siendo vaporware.
Comment by djsucre — Monday 25/4/2005 @ 23:41
AL #14: Gentoo sólo empaqueta, Apache no es sistema operativo, Mozilla tampoco, casi no hay código BSD en un GNU/Linux… de todas formas ya va bien que los menciones. Pero así sí es muy largo
¿Has leído el artículo? Especialmente donde se define un sistema operativo y qué programas son esenciales. Parece que muchos escribís sin leer, porque no criticáis cosas concretas (por ej. “qué es un SO” o el método de contar las líneas de código), sino que soltáis *slogans* sin ningún tipo de coherencia, a pesar de los “números fríos” que presento.
Comment by gallir — Tuesday 26/4/2005 @ 0:00
lo que sucede es que en ninguna parte encuentro el codigo en C del kernel de linux y lo necesito……..si es posible que me lo faciliten les agradesco…………..de todas formas la informacion que he tomado de aqui me ha sido muy util
Comment by diana carolina rodriguez — Thursday 28/4/2005 @ 16:55
No has buscado demasiado
: kernel.org.
Comment by gallir — Thursday 28/4/2005 @ 17:17
Entonces ahora os llamareis BUG/LMA ? o pasareis de GNU…
Comment by Pirx — Saturday 30/4/2005 @ 0:41
Bulma != Ricardo Galli (afortunadamente para ambos
)
Comment by gallir — Saturday 30/4/2005 @ 0:54
Sólo era un chiste malo y provocador… Acepten mis disculpas.
Comment by Pirx — Saturday 30/4/2005 @ 22:13
Ricardo, crees que deberías renombrar la categoría linux como gnu/linux
Comment by Pepe — Saturday 23/7/2005 @ 9:07
Ricardo, ¿Leiste este post?
http://ferdy.bitacoras.com/archivos/2005/04/25/como-enganar-con-numeros/#comments
Comment by Pepe — Saturday 23/7/2005 @ 9:15
> Ricardo, crees que deberías renombrar la categoría linux como gnu/linux
No, en Linux sólo hablo del núcleo de GNU/Linux
(es verdad).Ricardo, crees que deberías renombrar la categoría linux como gnu/linux
> Ricardo, ¿Leiste este post?
Sí, y son más que contradictorios y negando realidades.
Comment by gallir — Saturday 23/7/2005 @ 19:15