20140204

El Kernel de Linux cuesta 2200 millones de euros

El Kernel de Linux cuesta 2200 millones de euros

A los haters de Linux les presento un cómputo aproximado de lo que costaría reprogramar hoy en día el Kernel de Linux. Les recuerdo que Kernel es el núcleo mismo, cualquier distribución Linux media son muchos componentes adicionales como la interfaz gráfica y las cientos de aplicaciones embebidas también útiles.

En 2008 el kernel constaba de 6 772 902 líneas de código. Ahora consta de aproximadamente 12 000 000:
C 97%, Ensamblador 2%, Perl 0,1%, C++ 0,05%
En 2008 el kernel hubiera costado en ser desarrollado unos 14 años, ahora costaría en torno a los 17 años.
El coste total en 2008 era de aproximadamente mil millones de leuros en la UE con un salario medio. El coste actual está en torno a los 2 mil millones de leuros.
Y hablamos sólo de escribir líneas.

El coste de desarrollo de una distribución completa como Fedora 9 en 2008, una versión ya antiquísima costaría unos 10 000 000 000 de leuros.

El testeo, investigación y demás no quiero ni saber cuánto costaría. Habida cuenta de que hay que tener muchísimo material para testar el producto en las diferentes infraestructuras. Y partiendo de la base de que el Kenel soporta otras diferentes de la Intel-AMD x86 (la de su PC tradicional). Ahora veamos el soporte de arquitecturas, en rojo las que soporta Windows, todas las de la lista las soporta Linux:
  • Intel-AMD x86 | Windows la soporta!
  • IA-64
  • PowerPC-64
  • SPARC64
  • ARM
  • PA-RISC
  • Cell
  • AVR32
  • Blackfin
  • Cray
  • z/Architecture
  • H8
  • SH - SuperH
  • SH64
  • V850
  • [...]
  • Motorola (m68k y m66k)
  • Wii (Nintendo)
  • Xbox 360 y 360| Windows la soporta!
  • Playstation 3
  • Playstation 2
  • Gamecube


¿Cuál será el coste adicional de testar el SO en todas estas arquitecturas? Quién sabe. Ahora veamos el soporte de Cpus
Windows permite actualmente un máximo de 2 CPUS (eso sí, sin límite de núcleos, el límite lo impone el fabricante, suele ser como mucho 4)
Linux permite un máximo de entre 32 y 1024, aunque bajo arquitecturas de 64 bits permite más de 1024. Las versiones básicas de Win7 y 8 permiten un máximo de dos.
Ahora veamos cuán preparado está cada uno para el futuro en cuanto a soporte de RAM. Ya saben, esta cosa que nos permite ver porno mientras tenemos burbuja abierta mientras hablamos por el skype y diseñamos con autocad a la vez que montamos una ani con el 3dsmax.

En 32 bits ambos admiten lo mismo, ya que la infraestructura es la infraestructura. Pero los informatas sabrán que existe PAE que extiende la memoria mediante un sistema de paginación, blablá. Pues bien:
Linux 32bits con PAE admite hasta 64GB, Windows unos 4GB
Windows se luce en 64 bits, admite hasta 128 GB Ah no, espera, que Linux en 64 bits admite hasta 8589934592 GB
Cuando nosotros transferimos un conjunto de datos estos se transfieren en bloques. Veamos los límites del tamaño de cada uno de estos bloques, que supongo pueden interferir en la eficiencia:
En 32 bits Linux admite un máximo de 16 TB, igual que con Windows
En 64 bits Windows admite la friolera de 256 TB por bloque, ah no, Linux admite 3145728 TB por bloque.

Saben que cuando abren una tarjeta SD o conectan el disco duro los datos están organizados virtualmente en él mediante lo que se denomina el sistema de archivos. Por supuesto, Linux tiene soporte NATIVO de todos estos tipos aunque ya ni se usen. El resumen es que Linux no sólo admite los suyos propios sino los de guindows. Guindows admite los propios y también algunillo como lso de CD, menos mal! imaginen que ni leyera CDs:
  • ZFS
  • Tux3
  • Ext3 y 4 (es el propio de linux)
  • ReiserFS
  • XFS
  • NTFS (windows lo admite !)
  • JFS
  • UFS2
  • FAT16 y 32 (windows lo admite !)
  • UDF (windows lo admite !)
  • CDFS (windows lo admite !)
  • JFFS2
  • WinFS (windows lo admite !)
    [...]

Linux también supera a Guindows en cuestiones de redes. Por ejemplo, Linux admite todos estos algoritmos de prevención de congestión en redes TCP
  • BIC
  • CTCP (windows lo admite!)
  • CUBIC
  • YeAH
  • HS
  • Illinois
  • Low Priority
  • Reno
  • New Reno (windows lo admite!)
  • Scalable
  • Tahoe
  • Vegas
  • Veno
  • Westwood

Pero todo esto implica que el Kernel de linux está saturado de basura y los requisitos mínimos serán mayores?
Windows requiere un mínimo de 1 KHz y 1 Gb de Ram
Linux-Ubuntu requiere un mínimo de 0,7 KHz y 0,3 Gb de Ram