Aunque he leído el post hace días, no he encontrado el momento hasta ahora para ofrecer un pequeño y humilde punto de vista.
Solo pido que se tenga en cuenta para ser publicado en RetroWiki Magazine. Con la venia.
AVISO, esto es
Puedo estar de acuerdo en unas cosas y en otras no, y os preguntaréis, ¿ porqué ? , pues a eso voy , a los matices, que en esta causa, justa para unos y muy injusta para otros, son importantisimos y han de conocerse de una forma u otra.
El fondo histórico:No voy a entrar a decir que Ken Thomson, desarrollador de MULTICS junto a Brian Kernighan, el otro padre del UNIX y compañero de Thomson, lo llamó irónicamente UNICS. Más adelante lo que hicieron Thomson, Kernighan y Dennis Ritchie fue reescribir UNIX en C, rompiendo la tradición de sistemas operativos escritos en lenguaje ensamblador (1973). Esto aumentaba la portabilidad del sistema hacia otras máquinas.
Quedaros con este concepto, aunque os parezca abstracto, en realidad, UNIX trata a casi todo como si fuera un archivo y una vez que se aprende a manejar los archivos, se puede manejar todos los objetos del sistema.
El concepto de comercialización de Kildall:En aquellos tiempos las máquinas y los ordenadores eran muy costosos, pero hubo un tipo llamado Gary Kildall que aprovechando que se comenzaban a comercializar los primeros micros con procesadores 8080 ( hacia 1974 - 75 ) , revolucionó todo lo conocido con un sistema operativo llamado CP/M. Frente a un ordenador de decenas de miles de dolares, las personas y las empresas podían adquirir equipos por 1000 ó 2000 dolares y Kildall fue quien puso en marcha la entrega de un sistema operativo con un ordenador comprado. Es decir, al comprar el ordenador también estabas pagando la licencia del sistema operativo. Era posible comprar el ordenador por un lado y el sistema operativo por el otro, ante todo libertad.
Adquirir un ordenador que pudiera ejecutar UNIX solo se lo podían permitir las grandes universidades y las agencias estatales, aparte de unas pocas compañías de grandes dimensiones. Iba a ser imposible que el usuario final, al igual que lo conocemos desde la llegada del CP/M se diera con el UNIX. Gracias a las ideas de Kildall esto fue posible y gracias a ese impulso el UNIX terminó en los ordenadores de muchos usuarios. A día de hoy da igual que sea Linux, o Mac OS ( que es un UNIX puro y duro ), ambos son en concepto y forma lo mismo, pero difieren en sus entrañas.
El debate de marras: Muchos años después y ante la evidencia que UNIX era desde el punto de vista de los sistemas lo más decente, práctico y funcional se quiso por parte de la comunidad educativa llevar el UNIX en forma de clon o de concepto a todos los lugares y ordenadores. Recordad que ni MINIX ni LINUX son UNIX, son clones compatibles.
El debate entre Tanenbaum y Torvalds es para algunos un tema ya viejo y ferrullento, porque en su día posicionó a unos de una parte y a otros de la otra. Aquí es donde el componente histórico se pierde definitivamente en la búsqueda de un futuro. Lejos quedaba el legado de Kildall porque es un ejemplo que por desgracia fue obviado por ambas partes.
Linux más o menos a día de hoy es prácticamente un estándar y lo conocen hasta perry y su gato, a excepción de aquellos que no saben, no pueden o no ven más allá de la bazofia de güindous.
Para empezar el kernel de Linux está basado e inspirado en Minix. Por tanto hay que saber que es Minix.
MINIX es un clon del sistema operativo UNIX diseñado para ser altamente fiable, flexible y seguro y para ser ejecutado en ordenadores personales con procesadores como el 8086/88 y el M68000.
Tanenbaun desarrolló MINIX para formar a sus alumnos en el diseño de sistemas operativos en la Vrije Universiteit de Ámsterdam. Las principales razones o motivos que le llevaron a este desafío eran las que hacía que UNIX, propiedad de AT&T y Bell Laboratories en aquellos momentos requiriesen plataformas exclusivas y complejas de hardware muy caras para ejecutarse, algo que chocaba frontalmente con el plano educativo.
No voy a entrar mucho más en detalles técnicos porque sino el post se va a enladrillar y lo que quiero es opinar, si luego se tercia ya nos remangamos y damos rienda suelta a las emociones. Prefiero primero entrar al concepto y luego ya veremos, de cualquier manera, es simplemente opinión, con lo que habrá a quien guste y a quién no, afortunada o desgraciadamente me gano la vida con el UNIX y algo he leído sobre el tema, lo cual no significa que lleve ninguna razón en lo que digo.
Las primeras versiones de MINIX ( 1.0 ) datan de 1987, este fue diseñado como antes dije para ejecutarse sobre IBM PC / AT y compatibles, que eran los cacharros de 16/32 bit más comunes en las universidades en aquellos años, aunque salieron versiones ( y bastante sólidas ) para Atari ST y Commodore Amiga ( M68000 ) y versiones preliminares para los procesadores Sparc de Sun Microsystems.
MINIX es extremadamente pequeño, la parte que se ejecuta en modo de kernel tiene menos de 4000 líneas de código ejecutable. Las partes que se ejecutan en modo de usuario están divididas en pequeños módulos que están aislados uno de otro. Por ejemplo, cada manejador de dispositivo se ejecuta como un proceso en modo de usuario separado, entonces un error en un manejador ( la fuente más grande de errores en cualquier sistema operativo ), no puede detener el sistema operativo completo. De hecho, la mayor parte del tiempo cuando un manejador falla, este es reemplazado automáticamente sin necesidad de intervención del usuario. Estas características, la pequeña cantidad de código del kernel y otros aspectos mejoran en gran forma la fiabilidad del sistema.
Una vez explicado que es MINIX, el debate de marras se produjo en el grupo de discusión de Usenet: comp.os.minix. ( que tiempos aquellos )
Tanenbaum explicaba que los sistemas operativos de tipo micronúcleo ( como Minix ) son mejores que los de tipo monolíticos ( como Linux )
y aparece Tolvards con su Linux :GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a UNIX denominado Linux con el sistema GNU ( que no es más que otro clon de UNIX sin Kernel ) . Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL.
El nombre GNU, GNUs Not UNIX (GNU no es UNIX), viene de las herramientas básicas de sistema operativo creadas por el proyecto GNU, iniciado por Richard Stallman en 1983 y mantenido por la FSF. El nombre Linux viene del núcleo Linux, inicialmente escrito por Linus Torvalds en 1991
El proyecto GNU, que se inició en 1983 por Stallman tenía como objetivo el desarrollo de un sistema operativo UNIX compatible, completo y compuesto enteramente de software libre. La historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds comenzó a trabajar en un reemplazo no comercial para MINIX 1.2 que más adelante acabaría siendo Linux.
Cuando Torvalds liberó la primera versión de Linux en 1992, el proyecto GNU ya contaba con muchas de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intérprete de comandos( shell ), una biblioteca C y un compilador, aunque el proyecto contaba con una infraestructura para crear su propio núcleo ( o kernel ) llamado HURD, todavía no estaba lo suficientemente evolucionado y desarrollado para usarse seriamente, como sustituto, comenzaron a usar a el kernel de Tolvards ( Linux ) como sustituto para continuar desarrollando el proyecto GNU, siguiendo la tradicional filosofía de mantener cooperatividad entre desarrolladores. El día que se estime que HURD es suficiente maduro y estable, será llamado a reemplazar a Linux.
Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando la carrera de Ingeniería Informática en la Universidad de Helsinki, llenó el "espacio" final que había en el sistema operativo de GNU.
MicroNucleo y Monoliticos, ¿ pero qué coño era eso ?:Y ahora diréis pero WTF es eso, micronúcleo y monolítico... me suena a chino. Pues lo explico, no hay problema. Aquí venimos a hablar de informática y esto es informática en puro estado hecha por personas que no pertenecen a ninguna empresa ni buscan monetizar su trabajo, sino que se trata de autenticas joyas que han permitido que la informática avance de una manera vertiginosa.
Por tanto, antes de continuar dejadme comentar unos temas: UNIX es propietario, está licenciado y es comercial ( de pago ) , Minix se distribuye con licencia BSD porque consideran que la licencia GPL es demasiado restrictiva y Linux es código libre y se distribuye bajo filosofías GNU / GPL, sin ánimo de lucro ( gratis ). Esta es la gran y enorme diferencia. Ya lo comprenderéis.
Y un detalle más, UNIX es un sistema operativo portable, multitarea y multiusuario, lo que en su definición constituyó un sistema operativo de propósito general, multiusuario, e interactivo, es una colección de programas que ejecutan otros programas en un ordenador. El mayor énfasis de UNIX se basa en construir código que sea corto, simple, claro, modular y extensible, que pueda ser mantenido y reutilizado con otros propósitos por otros desarrolladores que no sean los creadores originales.
La gente que inventó UNIX no intentaba enseñar a usar los ordenadores en la manera en la que los entendemos hoy. Estaban educando a profesionales para operar equipos sumamente costosos. La producción en masa y el abaratamiento de la tecnología han cambiado casi completamente la manera en que usamos ordenadores, pero algunas ideas fundamentales acerca del software permanecen iguales 40 años después.
Ya pero... ¿ y las diferencias del micronúcleo y el monolítico ?La diferencia principal entre los sistemas operativos micronúcleo y monolíticos, es que los primeros implementan las funcionalidades del núcleo con llamadas de sistema que se ejecutan como procesos servidores en espacio de usuario. Por lo tanto, las distintas funcionalidades son separadas y son estos servidores los que las proveen cuando son solicitadas. En cambio, un núcleo monolítico implementa todas estas funcionalidades por si mismo, por lo que su complejidad se ve incrementada.
El fondo de la historia, ¿ dónde se monta el pollo ?MINIX apareció en 1987 como un clon pequeño y fácil de entender de UNIX para ser utilizado en cursos de sistemas operativos. Linus Torvalds, entonces un estudiante en la Universidad de Helsinki, estudiaba MINIX en un curso de sistemas operativos y quedó lo suficientemente impresionado como para comprar un PC para poder ejecutarlo, y eso que antes había usado Commodore VIC20 y posteriormente un Sinclair QL (
con reminiscencias UNIX en el QDOS, que cosas ). Luego utilizó MINIX como plataforma, guía y fuente de inspiración para desarrollar un clon de MINIX, llamado Linux, el cual liberó públicamente en 1991.
Linus fue acusado de robar código de MINIX para utilizarlo en Linux. ¿ Es esto cierto ? ... pero es que no acaba ahí. Santa Cruz Operation ( SCO ) y ahora Novell que es la propietaria de la licencia de UNIX lleva años litigando y amenazando a los linuxeros, de hecho han demandado en varias ocasiones a todo lo que se les ha puesto por delante. Así que no es cierto. La respuesta es que NO. Absolutamente NO.
Recordemos que los UNIX propietarios que quedan hoy en día son: AIX de IBM, HP-UX de HP, Solaris ( antes de Sun Microsystems ) de Oracle, IRIX de SGI, Tru-64 de HP y el conocido SCO UNIXWare y SCO OpenServer de Santa Cruz Operation... de eso ya he escrito hace tiempo, ¿ os acordáis del XENIX ? , ¿ ya os imagináis quien estaba detrás, verdad ?
El resultado final fue que SCO perdió todas las demandas judiciales. La cosa quedó así más o menos:
The SCO Group expresó públicamente ser el propietario de Unix en varias ocasiones. Novell aseguró que es falso que SCO Group posea Unix. Después que Novell registrara derechos de autor sobre los componentes esenciales de Unix, SCO denunció a Novell, afirmando usurpación de propiedad. La querella fue rechazada por razones técnicas pero SCO Group introdujo una versión corregida. Sin embargo, el juez de la causa expresó dudas de que la compra de activos incluyera los derechos de autor relevantes. Finalmente, en agosto de 2007, el juzgado concluyó que Novell es propietario de Unix y UnixWare.
Y el GiliPuertas a meter baza y a enmierdar, por si fuera poco otro ladrón acusando a otros de robar... manda cojones. Aquí es donde me cabreo, echo la mirada al principio del post y veo otra víctima llamada Gary Kildall, ¿ a donde hemos llegado ?
Ken Brown, de la Institución Alexis de Tocqueville escribió un informe, financiado en gran parte por Micro$oft, en cual alegaba que Linus había robado el código de MINIX para usarlo en Linux.
La conclusión de Brown fue que las compañías no debían utilizar Linux porque la posesión legal de los derechos de propiedad intelectual no estaba clara. Joder, esto no es más que un montón de mierda y de basura.
Como el fiasco de 1981, M$ quería tener UNIX y lo que tuvo fue HUMO !!! menuda la que se montó con SCO y M$, si es que al final acabo en un caldero, digo... Caldera.
Es prácticamente improbable que un estudiante de 21 años hubiera sido capaz de escribir su propio sistema operativo sin tener disponible el código fuente completo de un sistema operativo similar para estudiarlo, usarlo y modificarlo, Linus escribió él mismo la primera versión del código de Linux. SI, Se inspiró y se basó en MINIX, pero es que tiene que quedar claro que el núcleo de MINIX es Micronúcleo y el de LINUX es monolítico, que parte de esa diferencia no ha entendido GiliPuertas que nunca supo hacer sistemas operativos y los que hizo ( mejor dicho le hicieron ) son una PUTA MIERDA y que lo tuvo que robar para decir que tenía uno.
Volviendo al debate :Tanenbaum afirmaba que los sistemas operativos monolíticos eran un paso atrás en la computación; aumentaban la complejidad y disminuían su portabilidad, y que Linux estaba demasiado orientado a la arquitectura x86. Linux reconoció que la arquitectura micronúcleo era teóricamente superior. No obstante, argumentó que Minix tenía errores básicos para un sistema operativo y que, debido a la interfaz de aplicaciones de Linux, su sistema operativo era más portable que Minix.
La respuesta de Tanenbaum fue que, debido a su carácter educativo, su sistema contaba con las funcionalidades de los ordenadores que en ese momento podían ser adquiridos por estudiantes. Y que la poca portabilidad de Linux sería un problema en el futuro, independientemente de que Minix no fuera muy portable. La discusión no llegó más allá, ya que Linus intentó zanjarla; hemos de recordar que en ese momento, era algo que él desarrollaba en su tiempo libre, y que estaba enfocada a propósito en esta arquitectura.
¿ y como acaba la historia ?Al final de todo, el tiempo parece haber dado la razón a Linus pero tambien a Tanenbaun, ya que x86 sigue siendo con una amplia mayoría la arquitectura más usada en ordenadores personales, el monopolio de intel sin duda. Además, en la actualidad Linux ha sido portado a muchas otras arquitecturas como MIPS, ARM, SPARC o PowerPC. Pero en su día el MINIX se portó a Motorola 68000 y a SPARC y otro días hablaremos del Berkeley Software Distribution ( BSD ) y sus flavorus, NetBSD, OpenBSD, FreeBSD que son los que en realidad se parecen más al UNIX original.
Tened en cuenta que a ojos de gente con conocimientos el debate se encendió porque había partes interesadas en liarla y otras en denostarlo. AL final fue una guerra de soflamas puras y duras.
En 2006 el debate se reabrió de nuevo y volvieron a la carga, ya que Tanenbaum publicó un artículo en Computer Magazine llamado: ¿Podemos hacer más seguros y confiables a los sistemas operativos? del que se dice que Tanenbaum no fue realmente quien lo hizo. Al parecer Tanenbaum siempre ha renunciado a la autoría del mismo, de hecho ha repetido en varias ocasiones que en ningún caso escribiría nada semejante para reabrir el debate sobre el diseño del nucleo ( kernel ), que es de lo que va esta parrafada.
¿ Tiene moraleja o moralina ? , pues una poca...Si enfocamos el problema desde otro punto de vista, ¿ es un núcleo monolítico lo más adecuado para un Sistema Operativo ? En la actualidad, Linux se compone de más de 15 millones de líneas de código, frente a las 4000 del MINIX. El Kernel se ha vuelto una pieza de software extremadamente compleja y que además va a continuar creciendo y añadiendo nuevas características y mayor portabilidad con nuevos dispositivos y arquitectura.
Por ello deberíamos preguntarnos ¿ la viabilidad de Linux se verá comprometida en un futuro no muy lejano por su diseño monolítico ?
A día de hoy Torvalds y Tanenbaum mantienen una buena relación; Torvalds siempre ha dejado claro que no guarda ningún rencor contra Tanenbaum, y este último remarca que los desacuerdos acerca de cuestiones técnicas no deberían considerarse como disputas personales.
A mi opinión ambos tenían y tienen razón, el único que no le tiene es el GiliPuertas que no es más que un jeta.