El Kernel o Núcleo es un componente fundamental de cualquier sistema operativo. Es el encargado de que el software y el hardware de cualquier ordenador puedan trabajar juntos en un mismo sistema, para lo cual administra la memoria de los programas y procesos ejecutados, el tiempo de procesador que utilizan los programas, o se encarga de permitir el acceso y el correcto funcionamiento de periféricos y otros elementos físicos del equipo.
Los usuarios de GNU/Linux estamos acostumbrados a hablar y oír hablar sobre su Kernel, el cual puede actualizarse y manipularse en cualquier distribución. Sin embargo, en un sistema operativo tan centrado en el usuario y la sencillez como Windows, su kernel es un gran desconocido. Por eso hoy vamos a hablar sobre él para contaros cómo se desarrolla y cuales son las diferencias fundamentales con respecto al de Linux.
Y vamos a intentar hacerlo de una manera que todo el mundo pueda entender. Tratando de no perdernos demasiado en tecnicismos para que cualquier usuario sin demasiados conocimientos pueda saber por dónde van los tiros.
Windows NT, un Kernel para más de dos década

En la década de los noventa Microsoft estaba basando sus sistemas operativos en los kernel Windows 9x, donde el código básico tenía muchas similitudes con MS-DOS. De hecho necesitaba recurrir a él para poder operar. Paralelamente, Microsoft también estaba desarrollando otra versión de su sistema dirigido a los servidores llamada Windows NT, que nació el 26 de julio de 1993.
Ambas versiones de Windows fueron desarrollándose por separado. Windows NT era más bien una jugada a largo plazo, una tecnología que ir desarrollando para los Windows del mañana, y en el año 2000 dieron un nuevo paso en esa dirección. A la versión 5.0 de NT la llamaron Windows 2000, y se convirtió en un interesante participante en el sector empresarial.
Tras ver la buena acogida que tuvo, Microsoft decidió llevar NT al resto de usuarios para que ambas ramificaciones convergieran. Lo hicieron en octubre del 2001 con la versión 5.1 de Windows NT, que llegó al mercado con el nombre de Windows XP. Por lo tanto, esta versión marcó un antes y un después no sólo por su gran impacto en el mercado, sino porque era el principio de la aventura del Kernel Windows NT en el mundo de los usuarios de a pie.
Desde ese día, todas las versiones de Windows han estado basadas en este Kernel con más de 20 añós de edad. La versión 5.1.2600 fue Windows XP, la 6.0.6002 fue Windows Vista, y la 6.1.7601 Windows 7. Antes hubo otros Windows Server 2008 y 2003, y después llegaron las versiones de NT 6.2.9200 llamada Windows 8, la 6.3.9600 o Windows 8, y finalmente la NT 10.0, también conocida como Windows 10.

La principal característica del Kernel de Windows NT es que es bastante modular, y está basada en dos capas principales, la de usuario y la de kernel. El sistema utiliza cada una para diferentes tipos de programa. Por ejemplo, las aplicaciones se ejecutan en el modo usuario, y los componentes principales del sistema operativo en el modo kernel. Mientras, la mayoría de los drivers suelen usar el modo kernel, aunque con excepciones.
Es por eso que se refieren a él como Kernel híbrido, pero sobre todo también porque permite tener subsistemas en el espacio del usuario que se comunicaban con el kernel a través de un mecanismo de IPC.
Cuando ejecutas una aplicación, esta accede al modo usuario, donde Windows crea un proceso específico para la aplicación. Cada aplicación tiene su dirección virtual privada, ninguna puede alterar los datos que pertenecen a otra y tampoco acceder al espacio virtual del propio sistema operativo. Es por lo tanto el modo que menos privilegios otorga, incluso el acceso al hardware está limitado, y para pedir los servicios del sistema las aplicaciones tienen que recurrir a la API de Windows.
El modo núcleo en cambio es ese en el que el código que se ejecuta en él tiene acceso directo a todo el hardware y toda la memoria del equipo. Aquí todo el código comparte un mismo espacio virtual, y puede incluso acceder a los espacios de dirección de todos los procesos del modo usuario. Esto es peligroso, ya que si un driver en el modo kernel toca lo que no debe podría afectar al funcionamiento de todo el sistema operativo.
Este modo núcleo está formado por servicios executive, como el controlador de caché, el gestor de comunicación, gestor de E/S, las llamadas de procedimientos locales, o los gestores de energía y memoria entre otros. Estos a su vez están formados por varios módulos que realizan tareas específicas, controladores de núcleo, un núcleo y una Capa de Abstracción del Hardware o HAL
Diferencias entre los Kernel de Linux y Windows

La principal diferencia entre el Kernel de los sistemas operativos Windows y el de Linux está en su filosofía. El desarrollado por el equipo de Linus Torvalds es de código abierto y cualquiera puede cogerlo y modificarlo, algo que le sirve para estar presente en múltiples sistemas operativos o distros GNU/Linux. El de Microsoft en cambio es bastante más cerrado, y está hecho por y para el sistema operativo Windows.
En esencia, en Linux cogieron los principios de modularidad de Unix y decidieron abrir el código y las discusiones técnicas. Gracias a ello, Linux ha creado una comunidad meritocrática de desarrolladores, una en la que todos pueden colaborar y en la que cada cambio que se sugiere se debate con dureza para desechar las peores ideas y quedarse con las mejores. También se halaga a quienes consiguen mejorar las funcionalidades más veteranas.
Mientras, en Windows la cosa no funciona así. Tal y como explicaba en un artículo un antiguo colaborador del Kernel, los responsables del Kernel no ven con buenos ojos que se hagan propuestas que se desvíen del plan de trabajo, y asegura que hay pocos incentivos para mejorar las funcionalidades existentes que no sean prioritarias.
Esto hace, a ojos de ese antiguo desarrollador, que al dársele mayor importancia a cumplir planes que a aceptar cambios que mejoren la calidad del producto, o al no tener tantos programadores sin experiencia, el Kernel de Windows NT siempre esté un paso por detrás en estabilidad y funcionalidades.
Microsoft tiene menos problemas con controladores como los de las tarjetas gráficas.
Sin embargo, al ser Microsoft una empresa y su sistema operativo el que domina el escritorio, le cuesta menos que se asocien para trabajar con ellos implementando controladores. Eso hace, por ejemplo, que en temas de compatibilidad de hardware Windows vaya siempre un poco por delante, por lo menos en aspectos clave como el de los drivers de las tarjetas gráficas.
A nivel técnico existen similitudes entre ambos. Los dos núcleos controlan el software del sistema de bajo nivel y las interacciones con el hardware del ordenador a través de la capa de abstracción de hardware (HAL). El HAL es un elemento del sistema que funciona como interfaz entre software y hardware, y como las API, permite que las aplicaciones sean independientes del hardware.
Los dos están escritos principalmente en C, y son capaces de manejar el almacenamiento en caché, los controladores de dispositivos, la memoria virtual, los sistemas de archivos, los protocolos de red y las llamadas de sistema. Vamos, que en esencia sus funcionalidades son las mismas, aunque la manera de llevarlas a cabo es diferente.
Así como el Kernel de Windows tiene dos modos,y por lo tanto se le considera híbrido, la gran diferencia es que el de Linux sólo tiene una capa, o sea que es un núcleo monolítico. Eso sí, pese a ser más sencillo en este aspecto, para funcionar correctamente tiene su núcleo dividido en tres subcapas diferentes.
Ambos gestionan los problemas de memoria de forma parecida. Tienen sistemas de "swapping" para mover un proceso o parte de él temporalmente de la memoria principal a una secundaria de almacenamiento en el caso de que en la principal haya poco espacio. Windows lo hace en los ficheros pagefile.sys y swapfile.sys, mientras que Linux lo suele hacer en una partición, aunque también lo puede hacer en uno o varios ficheros o deshabilitarlo. Vamos que tiene más opciones.
En cuanto a qué tipo de estructura es mejor, aquí siempre hay debate. Los defensores del kernel monolítico siempre apuntan que son muchos más sencillos para depurar errores. Quizá por eso, muchos consideran que el de Windows NT está tendiendo cada vez más a uno monolítico, ya que herramientas como Windows Nano Server no tienen en absoluto el administrador de ventanas, todo se hace mediante consola, y es una de las variedades de WinServer 2016.
En cualquier caso, otros consideran esta última afirmación muy atrevida, y de hecho consideran que el Kernel Híbrido es una de las grandes ventajas de Windows. Ante la falta de rendimiento de los microkernels y la de seguridad frente a fallos internos de los monolíticos, Windows sabe aprovechar los aspectos buenos de cada uno de ellos para compensar los malos del otro.
Para que todo el mundo lo pueda entender hemos intentado no profundizar demasiado en el aspecto técnico. Por eso, si buscas más detalles técnicos de los núcleos de diferentes sistemas operativos, en esta gráfica puedes encontrarlos absolutamente todos, tanto los de Windows NT y Linux como los de Amiga, FreeBSD o GNU.
Por lo tanto, podemos decir que la principal diferencia entre ambos es la manera que se desarrolla cada uno. Además, el Kernel de Linux es mucho más sencillo, lo cual es bueno para los desarrolladores. Mientras, el de Windows intenta poner una capa de protección en su modo usuario para que los usuarios con menos conocimientos tengan menos posibilidades de dañar el sistema, y su estructura lo hace más estable frente, por ejemplo a fallos del driver gráfico.
Imágenes | Technozed, gpolydoros y hupstream
En Xataka | ¿Cómo ha logrado Microsoft que la consola Linux funcione en Windows 10?
Ver 80 comentarios
80 comentarios
elusuarioadministrador
Felicidades por este tipo de artículos, Yubal.
Si me permites decir algunas cosas:
Haces una cita a un comentario de un comentarista que asegura que el Kernel de Windows cada vez es menos híbrido y más monolítico. Una de las argumentaciones que da es que el Window Manager forma parte del kérnel.
Es un hecho que eso no es cierto, desde Windows Server 2008 Microsoft da la opción de instalar el sistema sin interfaz gráfica, pero la mejor prueba de ello no es Windows Server, ya que incluso en Core (aunque se puede quitar usando powershell) se sigue usando el administrador de ventanas. La mejor prueba de ello es Windows Nano Server, que es absolutamente headless, no tiene en absoluto el administrador de ventanas, todo se hace mediante consola, y es una de las variedades de WinServer 2016 (la imagen ocupa como un 5% de lo que ocupa Windows).
Con lo cual el único argumento de la cita no es válido y no sustenta la afirmación. De hecho es una afirmación bastante atrevida que voy a intentar contraargumentar:
- El Kernel NT usa intefaces para pasar datos y acceder a las estructuras de datos, claramente una característica de los microkérnels. Esto hace que se puedan reemplazar módulos enteros sin afectar a los restantes.
- La API de Windows (y muchos otros componentes con los que interactúa el software) están ejecutándose en el espacio de usuario, y además usando procesos separados, nuevamente otra característica de los microkernels.
- Sin embargo, los componentes del kernel no están en el mismo espacio de direcciones, lo cual es una característica de los Kernels monolíticos (como el de Linux).
Pero por si acaso alguien podría pensar que el sistema es monolítico los controladores y el HAL se ejecutan en modo kérnel pero todo lo demás está en modo usuario, hasta la mayor parte de los drivers gráficos se ejecutan en modo usuario, algo inconcebible en un sistema monolítico. El Session manager, que es quien inicia los subsistemas durante el inicio y el Local Security Authority System, quien se encarga de la seguridad, se inician en modo usuario ya, por lo que en ningún caso el Kernel puede ser monolítico. Esto es así en Windows 10.
Para mí no es concebible que alguien diga el kernel es monolítico cuándo veo claramente elementos incompatibles con un Kernel monolítico. ¡Me gustaría ver algún argumento!
Por otra parte - y sin cambiar de tema - creo que esta es una de las mayores ventajas del Kernel de Windows, ya que el principal problema de los microkernels (y más en sistemas de uso general) es la falta de rendimiento y el problema de los monolíticos es la falta de 'seguridad' (Cuándo hablo de seguridad no hablo de que te entren virus, si no de la posibilidad de que cuándo falle se te lleve toda la máquina por delante). Windows sabe aprovechar los aspectos buenos de cada uno de ellos para compensar los malos del otro. Me explico con un ejemplo:
En Linux, los drivers gráficos se ejecutan en modo kérnel. Si el driver gráfico crashea, adiós sistema. Kernel Panic y a empezar de nuevo reiniciando. En Windows nos encontramos con la segunda versión de los Windows Display Driver Model, cuyos drivers están formados por dos partes, una parte muy pequeña en modo kérnel y una muy grande en comparación en modo usuario. Así, nos encontramos que cuando falla la parte del driver en modo usuario, hay un sistema que se llama TDR que se encarga de determinar si este driver ha fallado y si - por lo tanto - debe reiniciarse el driver y el componente. Se le dice al driver que deje de acceder a los recursos del sistema y se reinicia el estado de la GPU para cargar nuevamente el driver. El driver ha fallado, sin embargo, el sistema se ha recuperado del fallo y todo sigue como si nada (El usuario únicamente percibe dos segundos de pantalla negra). Windows muestra un mensaje que dice "El driver gráfico ha dejado de responder y ha sido recuperado", que algunos pocos habréis visto. En Linux esto supone un adiós y a reiniciar, sin posibilidad alguna de recuperar el sistema.
- Para finalizar, un par de citas del artículo de Yubal:
"El Kernel de Windows NT siempre esté un paso por detrás en estabilidad y funcionalidades":
- En ejemplo arriba puesto está por delante que el Kérnel de Linux (y en muchas otras cosas). Evidentemente en otras está por detrás.
"Además, el Kernel de Linux es mucho más sencillo, lo cual es bueno para los usuarios"
- En el ejemplo arriba puesto, dónde el funcionamiento del kérnel de Windows es más complejo y el de Linux más sencillo es más bueno (o conveniente, como me gusta decir) para el usuario la complejidad del de Windows, ya que cuando falla el driver gráfico se puede continuar trabajando sin reiniciar la máquina.
Lo que quiero decir con esto, es que mucha gente piensa que los ingenieros de Microsoft son tontos o inútiles y hace afirmaciones tan frescas como esta, sustentadas sobre nada, y estos ingenieros - no digo que sean los mejores del mundo - son al menos tan válidos como los de otros sistemas operativos.
Saludos.
aplatanado
Me ha encantado el intento de comparar ambos sistemas. Gracias por el esfuerzo. Sin embargo considero que el artículo tiene errores importantes y me preocupa porque mucha gente va a leer este artículo y va a terminar convencido de que las cosas son como dice. Y no es así. De hecho, si supone que esto no es un mero artículo de opinión (en cuyo caso puedes decir lo que quieras) sino un artículo técnico / científico, te animo a que lo corrijas o que escribas otros corrigiéndolo.
Por cierto, no digo todo esto a la ligera. Soy profesor de Sistemas Operativos desde hace 12 años. Es tema que siempre me ha apasionado. Además tuve la fortuna de crecen con MS-DOS, Windows NT y Linux. Así que conozco bastante bien la historia y mucho de como son las cosas por dentro.
Primero, tanto Windows como Linux tienen dos modos de operación. Hoy en día, a menos que hablemos de sistemas diminutos, cuando el HW lo soporta, no se concibe tener un sistema sin modo de operación dual.
En Linux el núcleo y los controladores se ejecutan en modo privilegiado mientras que los servicios y las aplicaciones corren en modo usuario. Exactamente como en Windows. La única diferencia en Windows es que desde el principio se diseñó para crear para los procesos un entorno de ejecución con características particulares. Microsoft no tenía claro que API triunfaría, de tal forma que así su sistema podía ejecutar aplicaciones POSIX, OS/2 o Win32. Al triunfar Win32 (el API de Microsoft) fue retirando los otros subsistemas.
En todo caso lo de los subsistemas no lo convierte en híbrido ni en microkernel. No tiene nada que ver. En Windows el núcleo facilita crear subsistemas para emular otros sistemas, mientras que en Linux el que quiera emular otro sistema tiene que buscarse la vida (y no es imposible, véase el caso de Wine)
En realidad el término de núcleo híbrido es puro marketing. Un microkernel es aquel núcleo donde en modo privilegiado solo corren funciones básicas. Por lo general, algo de control de tareas / procesos, algo de gestión de la memoria y un mecanismo de paso de mensajes. Todo lo demás funciona en el espacio de usuario. Todo lo que cumple con esa definición es microkernel. Lo que no, es monolítico (con sus variantes).
El problema es que todos tenemos claro que los sistemas microkernel tienen características positivas: seguridad, fiabilidad, portabilidad, etc. Así que no vende un sistema que es microkernel y se convierte en monolítico, por lo que nos inventamos la palabra híbrido para indicar que está en medio.
Windows se diseño inicialmente como un microkernel en capas (en capas es un tipo de estructura de kernel). Pero con el tiempo fueron añadiendo más y más funcionalidades. Especialmente por rendimiento. Así se llegó a meter el sistema gráfico al completo (incluido el gestor de ventanas; una barbaridad por la que el directorio original del proyecto se fue en 1995) o algunas funciones del servidor web IIS.
Obviamente queda feo decir que ahora eres monolítico como cualquier otro sistema. Así que mejor decir que estás a medio camino. Eres hibrido.
Linux no es microkernel porque implementa muchas cosas en el núcleo pero es obvio que Windows tampoco. Como al diagrama que compartes le faltan unas cuantas cosas dejo otro de Windows XP:
http://image.slidesharecdn.com/ch22-090420020129-phpapp02/95/chapter-22-windows-xp-9-728.jpg?cb=1240192942
Es cierto que Microsoft desde Windows XP ha hecho buen trabajo trasladando algunos controladores al espacio de usuario. Pero ni mucho menos son todos. Solo lo ha hecho con algunos mini-drivers, donde este movimiento no afecta de forma importante al rendimiento (USB, por ejemplo) la máquina de estados de DirectX y el intérprete HLSL. También parece que ya han sacado lo que tenían del IIS.
Pese a todo siguen muy lejos de la definición de microkernel. Un microkernel no tendría en el núcleo el IO Manager y todo lo que contiene, toda la gestión de procesos, toda la gestión de memoria, toda la gestión de objetos, etc. De hecho, se me ocurren pocas cosas que vengan en un núcleo Linux por defecto y que no estén también un núcleo Windows. Entonces ¿por qué Windows es híbrido y Linux no? Un sistema Windows XP tenía 280 llamadas al sistema, a lo que se sumaban entorno a 650 del subsistema gráfico. ¿No parece mucha interfaz para tener solo funciones básicas en el modo privilegiado? ¿No suena mucho a monolítico?
Al hilo de esto quiero aclarar que la justificación de #31 de que "es que se puede quitar el Windows Manager" no se sostiene. En un microkernel el entorno gráfico no se ejecuta en modo privilegiado nunca. Si lo hace, ya ejecuta demasiado código en el núcleo y está mas cerca del monolítico que del microkernel. ¿Entonces lo llamamos híbrido? En Linux también se puede quitar todo el entorno gráfico pero aunque lo instales, nunca se ejecuta en modo privilegiado. Si embargo ¿no consideramos a Linux un núcleo híbrido por eso pero a Windows si?
Como he dicho, un núcleo Linux usa exactamente los mismos dos modos que Windows. Y como Windows, dentro del núcleo corren diversos componentes. La mayor parte de esos componentes o módulos se pueden cargar y descargar dinámicamente, pudiendo dejar el núcleo en mínimos (casi como un microkernel). Por eso ese esquema en 3 capas es una versión demasiado simplificada de la realidad. No es así. Linux no es un monolítico simple ni en capas. De hecho no se de donde sale lo de Kernel y Kernel de UNIX, cuando en Linux nunca se usa ese término. No son 3 capas, son decenas de módulos y todos pueden pedir servicios a todos. Linux es un núcleo modular, como el de cualquier sistema operativo moderno.
Obviamente Linux si usa SWAP. No destruye los procesos por gusto. Lo que hace Linux por defecto (se puede desactiva y de hecho se suele hacer en servidores) es que los procesos pueden reservar tanta memoria como quiera. No mira si la suma total de memoria reservada es superior a la RAM + SWAP. Simplemente permite la reserva. A eso se llama memory overcommit. El problema viene si realmente algún proceso empieza realmente la memoria que ha pedido y la suma de RAM + SWAP no es suficiente para respaldarla. Entonces empieza a matar procesos en función de diversos criterios. Pero como digo se puede desactivar ese comportamiento y obviamente lo primero siempre es usar la SWAP
Tanto Linux como Windows permiten cargar y descargar componentes del núcleo. Ambos juegan con el balance de cuánto poner en espacio de usuario y cuanto en espacio del núcleo para conseguir un buen equilibrio entre rendimiento y seguridad / fiabilidad. Windows no tiene una capa de protección más. Dudo mucho que Linux fuera la estrella en los servidores si tuviera menos protección. Ambos funcionan en modo dual. Linux sin duda es un kernel monolítico modular y yo considero que Windows es similar. Si lo quieren llamar híbrido porque suena mejor (como han hecho con MacOS) perfecto. Pero no veo cuales son las diferencias reales en cuanto es estructura como para considerar que son algo diferente.
atoi
Eso también aplica para Linux y cualquier kernel de sistemas operativos multipropósito. La razón por la que se refieren a NT como híbrido es porque permite tener subsistemas en el espacio del usuario que se comunicaban con el kernel a través de un mecanismo de IPC. Hasta donde sé, actualmente sólo el sistema de emulación y algunos drivers permanecen en modo usuario; razón por la cual muchos autores lo consideran también monolítico.
Ahora bien, en Linux los drivers también pueden tener un componente en el espacio del usuario, pero la comunicación con el kernel se hace a través de ioctl o realizando llamadas al sistema.
Manuel
Muy buen articulo Yubal.
Entiendo perfectamente la simplicidad que has querido otorgarle al artículo, por ello no aburriré con tecnicismos que no vienen a cuento (diferencias en la gestión de memoria, capas de seguridad, implementaciones de permisos, llamadas, semáforos, scheduler, swapping, etc).
Como aporte de curiosidad, os dejo una imagen con la estructura de un kernel Linux. Los colores representan las secciones del kernel y las lineas que se trazan de fondo, las llamadas entre los distintos componentes. Es una versión antigua del kernel del 2011, pero igual de válida.
http://i.imgur.com/4sftcoo.jpg
pablux
Una observación: Linux también "trampea" con la swap. De hecho ese término proviene del mundo Linux y Unix. Si no estoy mal en Windows se llama "memoria virtual".
En mi opinión, la gran diferencia en la gestión de memoria entre ambos SO, está en que Linux es más claro y abierto ya que te permite saber el uso exacto de memoria de todos los procesos y la cantidad real de swap usada. En cambio Windows reserva memoria (y mucha) para procesos ocultos que no son fáciles de identificar, y la memoria virtual no es una partición sino que se distribuye en archivos ocultos difíciles (o imposibles) de gestionar.
mitcoes16
Te ha faltado que el kernel NT surgió de una traición a IBM con la que co desarrollaba OS/2 para el paso a los 32bits (desde los 16 bits).
Y que siempre los kernels POSIX han sido mejores, por eso no ha funcionado en los móviles ni en los superordenadores, donde se nota mas, en la ferretería de baja potencia porque se queda parado y en la de alta porque se nota que es mucho mas lento.
Ya hace tiempo que la bolsa de Londres que apostó por MS para competir con al de Frankfurt tuvo que plegarse a usar Linux así como Nokia ha tenido que acabar usando Android con kernel Linux.
Apple mejoró enormemente su SO cuando migró a BSD (POSIX)
Y la alternativa GNU a Linux: Hurd, a pesar de ser añeja sigue siendo novedosa, y puede que algún día, y aprovechando el trabajo hecho en Linux prospere
Respecto de los controladores gráficos son para el sistema X de ventanas (X windows) que ahora está siendo sustituido por Wayland o Mir, pero que por ejemplo Android con kernel Linux usa otros distintos, y por tanto son dependientes del sistema gráfico que se use, y no del kernel, que es de lo que este artículo debería ir, y no va.
Solo copiando cualquier libro de texto sobre el tema hubiese sido mejor.
felipetiza
Muy buen artículo, muy completo y ameno de leer. Esperemos que en unos años el núcleo Hurd muestre avances significativos, ya es hora de tener un núcleo microkernel.
angelrell369
Interesante documental, lo guardare para futuras tareas informaticas de mis hijas....
jayjayjay_92
Bueno, eso lo puedes decir de casi cualquier kernel, de hecho lo puedes decir de unix system V de 1983...
Como??? todo lo contrario, lo que son es muchísimo más rápidos.
Frases diametralmente opuestas, windows te da muchas menos opciones y es menos parametrizable por lo que windows es mucho más sencillo.
debdeb
La verdad me pareció bastante pobre el artículo sobre todo por las imprecisiones... Tengo entendido que el Linux es un núcleo monolítico híbrido (es.wikipedia. org/wiki/Núcleo_Linux#Arquitecturas)
Otras observaciones sobre el artículo son mencionadas en comentarios anteriores...
datil.rupit
El articulo ignora un hecho muy importante.
Microsoft contrató a Dave Cutler para desarrollar Windows NT.
Cutler habia desarrollado VAX en DEC , y se considera a NT un sucesor de VAX .
aplatanado
Interesante respuesta en quora sobre qué piensan los desarrolladores del kernel de Windows sobre Lnux:
https://www.quora.com/What-do-the-Windows-Kernel-team-think-of-Linux/answer/Agron-Selimaj
El comentario:
"It took Microsoft almost 7 years to port Windows Kernel to IA64, yet they abandoned it with Windows Server 2008 R2"
Está dedicado a los que sostienen esa teoría de que el Kernel de Windows es más fácil de portar.
Prestamos
La gente rápidamente critica los sistemas operativos, y me refiero en gran medida al Windows, que es criticado por ser un sistema operativo malo, cuando no es verdad. A partir del Windows NT, el kernel no tiene que enviar al de Linux. La pantalla azul ha hecho mucho daño a Windows ;)
javiervazquezmarzo
Salu2s a todos, al igual que muchos de ustdes soy informático, llevo mucho tiempo trabajando con ambos sistemas tanto Windows como GNU/Linux, y tanto en lo gráfico como en la consola. Muy interesante toda la info sobre los núcleos, de hecho discusiones como esta tuve en la universidad en las que nos batíamos debatiendo si uno era monolítico y el otro no, muchas de estas razones que aquí se explican fueron debatidas, al final los defensores de lo fácil de hacer (Win2s) siempre negaron todo reconocimiento a GNU/Linux. La realidad es señores que al kernel linux y sus desarrolladores a lo largo del mundo se les debe gran parte del avance en la tecnología actual, no solo a Jobs con sus innovaciones o a las grandes industrias. Los problemas de compatibilidad en GNU/Linux a simple vista hoy se nota que es a causa de los fabricantes, tanto es así que desde que Google adquirió Android, este solo ha ido en ascenso, ningún otro sistema ha triunfado como lo ha hecho Android en los móviles, y esto se debe a la gran cantidad de empresas líderes en el mercado tecnológico que han querido trabajar para este sistema, si desde un principio hubiese sido así con las demás distros no me imagino el camino que abría tomado Linux en esos tiempos. A los amantes fieles y cerrados de Win2s permitanme decirles que de toda la vida Microsoft ha implementado códigos y filosofía importadas de Linux, tanto así que hace algunos años era inconsebible pensar en Microsoft trabajando con RedHat tan estrechamente como lo hacen desde algun tiempo,lo cual empezó por el mantenimiento de sus servidores que curiosamente usan Linux llegando actualmente a lo que ellos llaman Interoperabilidad entre Sistemas(para qué MS querría esa relación con Linux?), o en un Microsoft que criticaba el Open Source abriendo una empresa como CodePlex(un repositorio de software de código abierto de la propia Microsoft), solo por mencionar algunos ejemplos de los cuales hay más pero para no extenderme. Como también podría mencionar más de un ejemplo en Windows donde se encuentra GNU/Linux trabajando internamente, por mencionar uno les traigo el famoso convertidor de video Format Factory, en el cual el trabajo sucio lo hacen FFMPEG y MENCODER, portados netamente de Linux y los pueden buscar en cualquier repositorio.
A todo esto sumo un memo de Bill Gates a Brian Valentine, Paul Flessner, Mike Nash, Will Poole, Yuval Neeman y Dan Neault filtrado hace algunos años donde dice claro, entre otras cosas que su competidor más fuerte es Linux:
INGLES
***********
Exploring the reality behind exclusionary deals with Microsoft and their subtle (yet severe) implications
06.23.09
Bill Gates: "Our Most Potent Operating System Competitor is Linux"
Posted in Antitrust, Bill Gates, GNU/Linux, Microsoft, Servers, Windows at 6:35 am by Roy Schestowitz
Based on Comes vs Microsoft exhibits, we already know that the company from Redmond is most afraid of GNU/Linux. There is no point in denying it and it is always valuable to see what the company says internally. In today's exhibit, Exhibit PX08256 (2001) [PDF], a revealing memo from Gates is shown publicly, probably for the first time at least on the Web.
Jim Allchin distributes this in-progress memo from Bill Gates to Brian Valentine, Paul Flessner, Mike Nash, Will Poole, Yuval Neeman, and Dan Neault. Gates expresses concern about developers moving away from Windows:
Our strength comes from the singularity and popularity of the platform. even we can't afford multiple overlapping messages especially when developers are moving to Linux and Java.
Right now they try pulling developers to Windows, .NET, and Visual Studio, thanks to Novell's work on Mono.
Regarding quality, Gates concludes:
An ongoing jihad here is critical.
Jihad is a term that Bill Gates uses on occasions.
But here is the most interesting part:
Our most potent Operating System competitor is Linux and the phenomena around Open Source and free software. The same phenomena fuels competitors to all of our products. The ease of picking up Linux to learn it or to modify some piece of it is very attractive. The academic community, start up companies, foreign governments and many other constituencies are putting their best work into Linux.
Another drop of fear:
We need other creative ideas to allow Windows to match the viral nature of Linux.
According to Gates, GNU/Linux may be is easier than Windows (at least in areas that he mentions).
Provisioning and monitoring Windows systems needs to be far easier than Linux systems.
Microsoft understands that it needs to prevent GNU/Linux from becoming a commodity, which it is already becoming regardless of Microsoft's efforts to prevent it (even with FUD, intimidation, and lawsuits)
The strength of this platform and the innovation around it is the key element in preventing commodization by Linux, our installed base and Network Appliance vendors.
Wallclimber, who kindly extracted and provided the full text, adds: "One thing that struck me in this one is the mention of Gmail (it's mentioned under the heading "Asynch Communication"). Yet, the emails attached to the "Software Agenda" document are dated back in 2001." She is referring to the following part where Bill Gates states:
We will continue to charge for email capability which we need to enhance with Gmail capabilities as discussed in the subscription memo, Unclear is whether Workflow or Portal Servers are separate and what access is paid for by having an up-to-date Office license.
Walt Mossberg and Gates are not exactly as separate as the Wall Street Journal wants readers to believe and here is more potential proof:
The PC has to have all the advantages of being a simple dedicated appliance without giving up the ability to run many applications and support a variety of peripherals and update the system software. Walt Mossberg and our satisfaction data say we haven't done enough on this.
************
ESPAÑOL
*****
Bill Gates llama a la Jihad contínua contra el software libre, atemorizado por el avance del open source en el mercado del software mundial. "Nuestro competidor más potente entre los sistemas operativos es Linux"
El miedo de Microsoft y su principal mentor, Bill Gates, al software libre tiene inicios practicamente desde el comienzo de la era informática en el mundo, cuando Gates mandó su famosa carta al Club de Hackers a principios de los 80's.
Sin embargo, nunca antes se había publicado en la Web un memo de Gates que fuera tan explícito. Publicado en Boycott Novell, Jim Allchin distribuye un memo en progreso que Bill Gates envió a Brian Valentine, Paul Flessner, Mike Nash, Will Poole, Yuval Neeman, y Dan Neault.
En la misiva, Gates expresa su preocupación por la tendencia de los desarrolladores a migrar de Windows:
"Nuestra fuerza proviene de la singularidad y la popularidad de la plataforma. incluso no podemos permitirnos la superposición de múltiples mensajes, especialmente cuando los desarrolladores se están moviendo a Linux y Java".
Ahora intentan empujar a los desarrolladores de Windows,. NET y Visual Studio, gracias a la labor de Novell en Mono. En cuanto a la calidad, Gates concluye: "Es crítico ahora hacer una jihad contínua" Jihad es un término que Bill Gates utiliza en ocasiones y que se refiere a dar batalla hasta el final.
"Nuestro competidor más potente entre los sistemas operativos es Linux y los fenómenos en torno a Open Source y el software libre.
El mismo fenómeno que moviliza a todos los competidores de nuestros productos. La facilidad de captación de Linux para aprender o para modificar alguna pieza es muy atractiva. La comunidad académica, empresas pujantes, gobiernos extranjeros y muchos otros grupos están poniendo su mejor trabajo en Linux". Otra gota de miedo: "Necesitamos otras ideas creativas para permitir a Windows que coincida con la naturaleza viral de Linux".
Según Gates, GNU / Linux puede ser es más fácil que Windows (por lo menos en las zonas que menciona). "El aprovisionamiento y los sistemas de seguimiento de Windows tienen que ser mucho más fáciles que los sistemas Linux".
Microsoft entiende que es necesario prevenir que GNU/Linux se convierta en un objeto de consumo, ya que lo es cada vez, independientemente de los esfuerzos de Microsoft para evitarlo (incluso con intimidaciones y demandas)
Linux cuenta con apenas poco más del 2% del mercado de sistemas operativos, pero su avance lento y contínuo de esta opción lo vuelven un potencial riesgo para el software propietario.
**********
Siguiendo el tema los exhorto a buscar sobre la campaña IS BETTER WITH WINDOWS que hizo Microsoft para desviar la atención de Linux en ese tiempo, además de las diversas campañas en contra de los gráficos de KDE con lo que alegaban que eran copiados de WIndows 7, cuando ya hacía mucho más tiempo KDE trabajaba con COMPIZ-FUSION y los efectos OpenGL, sin recordar la historia de como Microsoft triunfó traicionando a Apple, a Steve Jobs, programando un sistema operativo a escondidas de este al que llamó Windows, con los gráficos que Jobs le compró a Xerox Parc Research (PARC user interface ) incluido el mouse, por lo cual es recomendable leer sobre el Proyecto Athena para entender esto, y aunque no se puede negar que Bill era un cerebro de la informática, en la historia no se ve como innovador sino más bien un hombre de negocios escepcional, de otra forma en vez de comprar el DOS en una ganga de precio lo hubiese programado el mismo, recordemos que ya Apple habia triunfado cuando Bill se unió a Jobs con la idea del Office, y recordemos que cuando salió el kernel NT fue causa de burla de toda la comunidad hacker del momento, llamandolo Nice Try pu
DJuan
+1000 y favoritos troesma, un muy buen articulo para pasar la tarde.