Windows NT

Windows NT

Windows NT (Nueva Tecnología) es una familia de sistemas operativos producidos por Microsoft, de la cual la primera versión fue liberada en julio de 1993. Al principio fue diseñado para ser un sistema operativo multiusuario, basado en lenguaje de alto nivel, independiente del procesador, con rasgos similares a Unix. Su intención fue la de complementar las versiones para PC de los Windows que estaban basados en MS-DOS. Windows NT fue la primera versión totalmente en 32 bits de Windows, mientras que los demás productos Windows orientados a PC, Windows 3.1x y Windows 9x, eran híbridos de entre 16 y 32 bits. Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows 10 y Windows Server 2016 están basados en el sistema de Windows NT

Pantalla de carga de Windows 3.1 NT

Previamente a la aparición del famoso Windows 95, Microsoft concibió una nueva línea de sistemas operativos orientados a estaciones de trabajo y servidores de red. Un sistema operativo con interfaz gráfica propia, estable y con características similares a los sistemas de red UNIX. Las versiones publicadas con este sistema eran: 3.1, 3.5, 3.51 y 4.0. Además, Windows NT se distribuía en dos versiones, dependiendo de la utilidad que se le fuera a dar: Workstation para ser utilizado como estación de trabajo y Server para ser utilizado como servidor

Cuando el desarrollo comenzó en noviembre de 1988, Windows NT (usando modo protegido) fue conocido como OS/2 3.0, la tercera versión del sistema operativo desarrollado en conjunto entre Microsoft e IBM. Adicionalmente al trabajo de las tres versiones de OS/2, Microsoft continuó desarrollando paralelamente un entorno Windows basado en MS-DOS y con menos demanda de recursos (usando modo real). Cuando Windows 3.0 fue publicado en Mayo de 1990, tuvo tanto éxito que Microsoft decidió cambiar la API por la todavía no liberada NT OS/2 (como era conocida) de una API de OS/2 a una API extendida de Windows. Esta decisión causó tensión entre Microsoft e IBM, y la colaboración se vino abajo. IBM continuó el desarrollo de OS/2 por su cuenta, mientras Microsoft continuó trabajando en el recientemente renombrado como Windows NT

Para desarrollar Windows NT reclutaron a Dave Cutler, uno de los jefes analistas de VMS en Digital Equipment Corporation (hoy parte de Compaq, que fue comprada en 2005 por HP) para convertir NT en un sistema más competitivo

Cutler había estado desarrollando un sucesor del VMS en DEC (Digital Equipment Corporation) llamado Mica, y cuando DEC abandonó el proyecto se llevó sus conocimientos y algunos ingenieros a Microsoft. DEC también creyó que se llevaba el código de Mica a Microsoft y entabló una demanda. Microsoft finalmente pagó 150 millones de dólares y acordó dar soporte al microprocesador Alpha de DEC en NT

Fue diseñado para correr en múltiples arquitecturas, con el kernel separado del hardware por una capa de abstracción de hardware. Las APIs fueron implementadas como subsistemas por encima de la indocumentada API Nativa; esto permitió la futura adopción de la Windows API. Originalmente sólo fue diseñado un microkernel, versiones posteriores integraron más funciones para mejorar el rendimiento del kernel. Windows NT fue el primer sistema operativo en usar Unicode internamente

Siendo un sistema operativo completamente nuevo, Windows NT sufrió problemas de compatibilidad con el hardware y el software existentes. También necesitaba gran cantidad de recursos y éstos estaban solamente disponibles en equipos grandes y caros. Debido a ello, muchos usuarios no pudieron pasarse a Windows NT. La interfaz gráfica de NT todavía estaba basada en la de Windows 3.1 que era inferior a la Workplace Shell de OS/2

Windows NT 3.1 (la estrategia de marketing de Microsoft fue que Windows NT pareciera una mejora de Windows 3.1) apareció en su versión beta para desarrolladores en la Conferencia de Desarrolladores Profesionales de Julio de 1992 en San Francisco. Microsoft anunció en la conferencia su intención de desarrollar un sucesor para Windows NT y Chicago (que aún no había sido lanzada). Este sucesor unificaría ambos sistemas en uno sólo y su nombre clave sería Cairo. (Cairo fue un proyecto más difícil de lo que Microsoft había previsto, como resultado NT y Chicago no fueron unificados hasta la aparición de Windows XP)

Las versiones antiguas de Windows NT se distribuían en disquetes y requerían elevados recursos de hardware (además de ser compatible con poco hardware) por lo que no tuvo mucha difusión hasta la llegada de Windows NT 4.0 y sobre todo de Windows 2000, que por primera vez daban soporte para el sistema de ficheros NTFS

Cabe destacar que la interfaz gráfica de Windows NT 3.5 y de Windows 3.51 era la misma que la de sus predecesores, Windows NT 3.1 y Windows 3.1, con el Administrador de Programas. Por otra parte, Microsoft distribuyó un añadido llamado NewShell, cuyo nombre completo era Shell Technology Preview Update, una versión Beta de la nueva interfaz gráfica de Windows 95 y NT 4.0, con el botón menú inicio, pero para Windows NT 3.5x. Su función principal era que los usuarios de Windows evaluaran el nuevo interfaz gráfico, que iba a ser presentado en Windows 95 y NT 4.0, dotando a Windows NT 3.5x de la nueva interfaz gráfica

Windows NT 4.0 presentó varios componentes tecnológicos de vanguardia y soporte para diferentes plataformas como MIPS, ALPHA, Intel, etc. Las diferentes versiones como Workstation, Server, Terminal server, Advanced server, permitían poder adaptarlo a distintas necesidades. El uso de componentes como tarjetas de sonido, módems, etc, tuvieron que ser rediseñados específicamente para este sistema operativo

Aplicaciones de Windows 3.1 NT

Arquitectura

La arquitectura de la familia de sistemas operativos de Windows NT se basa en dos capas, (modo usuario y modo núcleo), con distintos módulos dentro de estas capas

La familia de los sistemas operativos Windows NT de Microsoft está constituida por las distintas versiones de Windows NT, Windows 2000, Windows Server 2003, Windows XP, Windows Vista, Windows 7, Windows 8 y Windows 10. Todos tienen multitarea apropiativa y son sistemas operativos que han sido diseñados para trabajar tanto con ordenadores con un único procesador como con múltiples procesadores (Symmetrical Multi Processor: SMP)

Para procesar las peticiones de entrada/salida (Input/Output: I/O) se acude a una dirección de paquetes de E/S que utiliza peticiones (IRP) y E/S asíncrona. A partir de Windows 2000 Advanced Server, Microsoft comenzó a desarrollar sistemas operativos que soportaban 64-bits. Los sistemas operativos anteriores de esta familia estaban basados en un modelo de 32-bits

La arquitectura de Windows NT es altamente modular y se basa en dos capas principales:

  • Modo usuario: Cuyos programas y subsistemas están limitados a los recursos del sistema a los que tienen acceso
  • Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un micronúcleo. La arquitectura dentro del modo núcleo se compone de lo siguiente:
    • Un núcleo híbrido
    • Una capa de abstracción de hardware (Hardware Abstraction Layer: HAL)
    • Controladores O también llamados drivers
    • Executive Sobre el cual son implementados todos los servicios de alto nivel
    • Librerías dinámicas Para su correcto funcionamiento, como ntoskrnl.exe

El modo núcleo de la línea de Windows NT está compuesto por subsistemas capaces de pasar peticiones de E/S a los controladores apropiados usando el gestor de E/S. Dos subsistemas crean la capa del modo usuario de Windows 2000: el subsistema de Entorno (ejecuta aplicaciones escritas para distintos tipos de sistemas operativos), y el subsistema Integral (maneja funciones específicas de sistema por parte del subsistema de Entorno). El modo núcleo en Windows 2000 tiene acceso total al hardware y a los recursos del sistema del ordenador. El modo núcleo impide a los servicios del modo usuario y las aplicaciones acceder a áreas críticas del sistema operativo a las que no deberían tener acceso

El Executive se relaciona con todos los subsistemas del modo usuario. Se ocupa de la entrada/salida, la gestión de objetos, la seguridad y la gestión de procesos. El núcleo se sitúa entre la capa de abstracción de hardware y el Executive para proporcionar sincronización multiprocesador, hilos y programación y envío de interrupciones, y envío de excepciones

El núcleo también es responsable de la carga de los controladores de dispositivos al arrancar. Hay tres niveles de controladores en el modo núcleo:

  • Controladores de alto nivel
  • Controladores intermedios
    El modelo de controladores de Windows (Windows Driver Model: WDM) se encuentra en esta capa y fue diseñado principalmente para mantener la compatibilidad en binario y en código fuente entre Windows 98 y Windows 2000.
  • Controladores de bajo nivel
    Son un legado de los controladores de dispositivos de Windows NT que controlan directamente un dispositivo o puede ser un bus hardware PnP

Modo usuario

El modo usuario está formado por subsistemas que pueden pasar peticiones de E/S a los controladores apropiados del modo núcleo a través del gestor de E/S (que se encuentra en el modo núcleo). Dos subsistemas forman la capa del modo usuario de Windows 2000: el subsistema de Entorno y el subsistema Integral

El subsistema de entorno fue diseñado para ejecutar aplicaciones escritas para distintos tipos de sistemas operativos. Ninguno de los subsistemas de entorno puede acceder directamente al hardware, y deben solicitar el acceso a los recursos de memoria a través del Gestor de Memoria Virtual que se ejecuta en modo núcleo. Además, las aplicaciones se ejecutan a menor prioridad que los procesos del núcleo. Actualmente hay tres subsistemas de entorno principales:

  • Subsistema Win32
    Puede ejecutar aplicaciones Windows de 32-bits. Contiene la consola además de soporte para ventanas de texto, apagado y manejo de errores graves para todos los demás subsistemas de entorno. También soporta Máquinas Virtuales de DOS (Virtual DOS Machine: VDM), lo que permite ejecutar en Windows aplicaciones de MS-DOS y aplicaciones de 16-bits de Windows 3.x (Win16). Hay una VDM específica que se ejecuta en su propio espacio de memoria y que emula un Intel 80486 ejecutando MS-DOS 5. Los programas Win16, sin embargo, se ejecutan en una VDM Win16

    Cada programa, por defecto, se ejecuta en el mismo proceso, así que usa el mismo espacio de direcciones, y el VDM de Win16 proporciona a cada programa su propio hilo de ejecución para ejecutarse. Sin embargo, Windows 2000 permite a los usuarios ejecutar programas Win16 en una VDM de Win16 separada, lo que permite al programa ser una multitarea prioritaria cuando Windows 2000 ejecute el proceso VDM completo, que contiene únicamente una aplicación en ejecución

  • Subsistema OS/2
    Soporta aplicaciones de 16-bits basadas en caracteres y emula OS/2 1.x, pero no permite ejecutar aplicaciones de 32-bits o con entorno gráfico como se hace en OS/2 2.x y posteriores
  • Subsistema POSIX
    Sólo soporta aplicaciones que cumplan estrictamente el estándar POSIX.1 o los estándares de ISO/IEC asociados

El subsistema integral se encarga de funciones específicas del sistema operativo de parte del subsistema de entorno. Se compone de un subsistema de seguridad, un servicio de terminal y un servicio de servidor. El subsistema de seguridad se ocupa de los recibos de seguridad, permite o deniega acceso a las cuentas de usuario basándose en los permisos de los recursos, gestiona las peticiones de comienzo de sesión e inicia la autenticación, y determina qué recursos de sistema necesitan ser auditados por Windows 2000. También se encarga del Directorio Activo (Active Directory). El servicio de terminal es una API al redirector de red, que proporciona el acceso a la red al ordenador. El servicio de servidor es una API que permite al ordenador proporcionar servicios de red

Modo núcleo

El modo núcleo de Windows 2000 tiene un acceso completo al hardware y a los recursos del sistema del ordenador y ejecuta su código en un área de memoria protegida. Controla el acceso a la planificación, priorización de hilos, gestión de memoria y la interacción con el hardware. El modo núcleo impide que los servicios y las aplicaciones del modo usuario accedan a áreas críticas del sistema operativo a las que no se deberían tener acceso, delegando en el núcleo la tarea de realizar esas operaciones en su nombre

El modo núcleo está formado por servicios executive, que 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

Executive

El Executive se relaciona con todos los subsistemas del modo usuario. Se encarga de la Entrada/Salida, la gestión de objetos, la seguridad y la gestión de procesos. Está dividido informalmente en varios subsistemas, entre los que se encuentran el Gestor de Caché, el Gestor de Configuración, el Gestor de Entrada/Salida, las Llamadas a Procedimientos Locales, el Gestor de Memoria, el Gestor de Objetos, la Estructura de Procesos, y el Monitor de Referencias de Seguridad. Todos juntos, los componentes pueden ser llamados Servicios Executive (nombre interno Ex). Los Servicios del Sistema (nombre interno Nt), por ejemplo las llamadas al sistema, se implementan en este nivel también, excepto unas pocas que son llamadas directamente dentro de la capa del núcleo para obtener un mejor rendimiento

El Gestor de Objetos (nombre interno Ob) es un subsistema especial del Executive por el cual todos los otros subsistemas del Executive, especialmente las llamadas al sistema, deben pasar para obtener acceso a los recursos de Windows 2000. Esto hace que sea esencialmente un servicio de infraestructuras de gestión de recursos

El gestor de objetos se usa para evitar la duplicación de la funcionalidad de la gestión de objetos de recursos en los otros subsistemas del executive, que potencialmente podría llevar a errores y complicar el diseño de Windows 2000. Para el gestor de objetos, cada recurso es un objeto, independientemente de si el recurso es un recurso físico (como un sistema de archivos o un periférico) o un recurso lógico (como un archivo). Cada objeto tiene una estructura o tipo de objeto que el gestor de objetos debe conocer

La creación de objetos es un proceso realizado en dos fases, creación e inserción. La creación provoca la asignación de un objeto vacío y la reserva de los recursos necesarios por el gestor de objetos, como por ejemplo un nombre (opcional) en el espacio de nombres. Si la creación se realiza correctamente, el subsistema responsable de la creación rellena los datos del objeto. Finalmente, si el subsistema considera que la inicialización fue correcta, avisa al gestor de objetos para que inserte el objeto, que hace que sea accesible a través de su nombre (opcional) o una cookie llamada puntero. Desde ese momento, la vida del objeto es controlada por el gestor de objetos, y es obligación del subsistema mantener el objeto en funcionamiento hasta que sea marcado por el gestor de objetos para su liberación

El propósito de los punteros es similar al de los descriptores de archivo de UNIX, en los que cada uno representa una referencia a un recurso del núcleo a través de un valor oscuro. De forma similar, abrir un objeto a partir de su nombre está sujeto a comprobaciones de seguridad, pero trabajar a través de uno ya existente sólo está limitado al nivel de acceso necesario cuando el objeto fue abierto o creado. De manera diferente a los descriptores de archivo de UNIX, múltiples punteros de Windows pueden referenciar al mismo objeto (mientras que los descriptores de archivo pueden ser duplicados, los duplicados referencian al mismo nodo de archivo, pero a una única descripción de archivo)

Los tipos de objeto definen los procedimientos de los mismos y sus datos específicos. De esta forma, el gestor de objetos permite a Windows 2000 ser un sistema operativo orientado a objetos, ya que los tipos de objetos pueden ser considerados como clases polimórficas que definen objetos. Sin embargo, la mayoría de los subsistemas, confían en la implementación por defecto para todos los tipos de objeto de los procedimientos

Cada uno de los objetos que se crean guardan su nombre, los parámetros que se pasan a la función de creación del objeto, los atributos de seguridad y un puntero a su tipo de objeto. El objeto también contiene un procedimiento para cerrarlo y un contador de referencias para indicar al gestor de objetos cuántos objetos lo referencian. De esta forma, el gestor de objetos, determina si el objeto puede ser destruido cuando se le envía una petición para borrar el objeto. Todos los objetos nombrados se encuentran en el objeto jerárquico del espacio de nombres

Otros subsistemas executive son los siguientes:

  • Controlador de Caché (Cache Controller, nombre interno Cc):
    Está estrechamente relacionado con el Gestor de Memoria, el Gestor de Entrada/Salida y los controladores de Entrada/Salida para proporcionar una caché común para archivos frecuentes de E/S. El Gestor de Caché de Windows opera únicamente con bloques de archivo (más que con bloques de dispositivo), para realizar operaciones consistentes entre archivos locales y remotos, y asegurar un cierto grado de coherencia con las páginas en memoria de los archivos, ya que los bloques de caché son un caso especial de las páginas en memoria y los fallos caché son un caso especial de los fallos de página

    Un tema pendiente, desde hace tiempo, sobre la implementación existente es, por qué no libera explícitamente los bloques que no han sido utilizados durante mucho tiempo, dependiendo, en cambio, del algoritmo de asignación de páginas del gestor de memoria para que las descarte finalmente de la memoria física. Como efecto secundario, algunas veces la caché crece indiscriminadamente, obligando a otra memoria a ser paginada, reemplazando al proceso que comenzó la E/S, terminando por gastar la mayor parte de su tiempo de ejecución atendiendo los fallos de página que provoca. Esto es especialmente patente, cuando se copian archivos grandes

  • Gestor de Configuración (Configuration Manager, nombre interno Cm): Implementa el registro de Windows
  • Gestor de E/S (I/O Manager, nombre interno Io):
    Permite a los dispositivos comunicarse con los subsistemas del modo usuario. Se ocupa de traducir los comandos de lectura y escritura del modo usuario a IRP de lectura o escritura que envía a los controladores de los dispositivos. También acepta peticiones de E/S del sistema de archivos y las traduce en llamadas específicas a los dispositivos, puede incorporar controladores de dispositivo de bajo nivel que manipulan directamente el hardware para leer la entrada o escribir una salida. También incluye un gestor de caché para mejorar el rendimiento del disco guardando las peticiones de lectura y escribiendo a disco en segundo plano
  • Llamada a Procedimientos Locales (Procedure Call (LPC), nombre interno Lpc):
    Proporciona comunicación entre procesos a través de puertos con conexión semántica. Los puertos LPC son usados por los subsistemas del modo usuario para comunicarse con sus clientes, por los subsistemas Executive para comunicarse con los subsistemas del modo usuario, y como base para el transporte local para MSRPC
  • Gestor de Memoria (Memory Manager, nombre interno Mm):
    Gestiona la memoria virtual, controlando la protección de memoria y el paginado de memoria física al almacenamiento secundario, e implementa un gestor de memoria física de propósito general. También implementa un parser de Ejecutables Portables (Portable Executable: PE) que permite a un ejecutable ser mapeado o liberado en un paso único y atómico

    Comenzando en Windows NT Server 4.0, Terminal Server Edition, el gestor de memoria implementa el llamado espacio de sesión, un rango de la memoria del modo núcleo que es utilizada para cambio de contexto igual que la memoria del modo usuario. Esto permite que varias instancias del subsistema Win32 y controladores GDI se ejecuten conjuntamente, a pesar de algunos defectos de su diseño inicial. Cada espacio de sesión es compartido por varios procesos, denominado conjuntamente como «sesión»

    Para asegurar el nivel de aislamiento entre sesiones sin introducir un nuevo tipo de objeto, el aislamiento entre procesos y sesiones es gestionado por el Monitor de Referencias de Seguridad, como un atributo de un objeto de seguridad (testigo), y sólo puede ser cambiado si se tienen privilegios especiales

    La naturaleza relativamente poco sofisticada y ad-hoc de las sesiones es debida al hecho de que no fueron parte del diseño inicial, y tuvieron que ser desarrolladas, con mínima interrupción a la línea principal, por un tercer grupo (Citrix) como requisito para su producto de terminal server para Windows NT, llamado WinFrame. Comenzando con Windows Vista, las sesiones finalmente se convirtieron en un aspecto propio de la arquitectura de Windows. A partir de entonces, un gestor de memoria que furtivamente entra en modo usuario a través de Win32, era expandido en una abstracción dominante afectando a la mayoría de los subsistemas Executive. En realidad, el uso habitual de Windows Vista siempre daba como consecuencia un entorno multi-sesión

  • Estructura de Procesos (Process Structure, nombre interno Ps):
    Gestiona la creación y finalización de procesos e hilos, e implementa el concepto de trabajo (job), un grupo de procesos que pueden ser finalizados como un conjunto, o pueden ser puestos bajo restricciones compartidas (como un máximo de memoria asignada, o tiempo de CPU)
  • Gestor de PnP (PnP Manager, nombre interno Pnp):
    Gestiona el servicio de Plug and Play, mantiene la detección de dispositivos y la instalación en el momento del arranque. También tiene la responsabilidad de parar y arrancar dispositivos bajo demanda, esto puede suceder cuando un bus (como un USB o FireWire) detecta un nuevo dispositivo y necesita tener cargado un controlador para acceder a él. Su mayor parte está implementada en modo usuario, en el Servicio Plug and Play, que gestiona las tareas, a menudo complejas, de instalación de los controladores apropiados, avisando a los servicios y aplicaciones de la llegada de nuevos servicios, y mostrando el GUI al usuario
  • Gestor de Energía (Power Manager, nombre interno Po):
    Se ocupa de los eventos de energía (apagado, modo en espera, hibernación, etc) y notifica a los controladores afectados con IRP especiales (IRP de Energía)
  • Monitor de Referencias de Seguridad (Security Reference Monitor (SRM), nombre interno Se):
    Es la autoridad principal para hacer cumplir las reglas del subsistema de seguridad integral. Determina cuándo un objeto o recurso puede ser accedido, a través del uso de listas de control de acceso (Access Control List: ACL), que están formadas por entradas de control de acceso (Access Control Entries: ACE). Los ACEs contienen un identificador de seguridad (Security Identifier: SID) y una lista de operaciones que el ACE proporciona a un grupo de confianza — una cuenta de usuario, una cuenta de grupo, o comienzo de sesión — permiso (permitir, denegar, o auditar) a ese recurso

Núcleo

El núcleo del sistema operativo se encuentra entre el HAL y el Executive y proporciona sincronización multiprocesador, hilos y envío y planificación de interrupciones, gestión de interrupciones y envío de excepciones, también es responsable de la inicialización de controladores de dispositivos que son necesarios en el arranque para mantener el sistema operativo funcionando. El núcleo realiza casi todas las tareas de un micronúcleo tradicional, la distinción estricta entre el Executive y el núcleo son los mayores restos en este último del diseño original del micronúcleo, y que la documentación histórica del diseño se refiere al componente del núcleo como «el micronúcleo»

El núcleo a menudo interactúa con el gestor de procesos. El nivel de abstracción es tal que el núcleo nunca llama al gestor de procesos, únicamente se permite al revés (salvo para un puñado de casos, sin llegar aún hasta el punto de una dependencia funcional)

Controladores del modo Núcleo

Windows 2000 utiliza los controladores de dispositivo del modo núcleo para permitirle interactuar con los dispositivos hardware. Cada uno de los controladores tienen rutinas de sistema bien definidas y rutinas internas que exporta al resto de sistemas operativos. Todos los dispositivos son vistos por el modo usuario como un objeto archivo en el gestor de Entrada/Salida, a través del gestor de E/S mismo, los dispositivos son vistos como objetos de dispositivo, que él define tanto como objetos archivo, dispositivo o controlador. Los controladores del modo núcleo se encuentran en tres niveles:

  • Controladores de alto nivel
    Como los controladores de sistemas de archivos para FAT y NTFS, dependen de los controladores intermedios
  • Controladores intermedios
    Se componen de funciones controladores — o controladores principales para un dispositivo — que opcionalmente son intercalados entre filtros de controladores de bajo y alto nivel. Las funciones controlador dependen de un controlador de bus — o un controlador que sirve a un controlador de bus, adaptador o puente — que puede tener un filtro controlador de bus opcional que se encuentra entre él mismo y la función controlador. El modelo de controladores de Windows (Windows Driver Model, WDM) se encuentra en la capa intermedia
  • Controladores de bajo nivel
    Son herencia de los controladores de dispositivo de Windows NT que controlan un dispositivo directamente o que pueden ser un bus hardware PnP. Esos controladores de bajo nivel controlan directamente el hardware y no se basan en otros

Capa de abstracción de hardware

La capa de abstracción de hardware, o HAL (Hardware Abstraction Layer), es una capa que se encuentra entre el hardware físico del ordenador y el resto del sistema operativo. Fue diseñado para ocultar las diferencias de hardware y por tanto proporciona una plataforma consistente en la cual las aplicaciones pueden ejecutarse. La HAL incluye código dependiente del hardware que controla los interfaces de E/S, controladores de interrupciones y múltiples procesadores

En particular, la «abstracción hardware» no implica abstraer el conjunto de instrucciones, que generalmente se engloba bajo el concepto más amplio de portabilidad. La abstracción del conjunto de instrucciones, cuando es necesario (como para gestionar varias revisiones del conjunto de instrucciones del x86, o la emulación de un coprocesador matemático inexistente), es realizada por el núcleo

A pesar de su propósito y su posición dentro del diseño de la arquitectura, el HAL no es una capa que se encuentre completamente debajo del núcleo de la misma forma que el núcleo se encuentra debajo del Executive: todas las implementaciones conocidas del HAL dependen de alguna manera del núcleo, o incluso del Executive. En la práctica, esto significa que el núcleo y las variaciones del HAL se distribuyen conjuntamente, generados específicamente para trabajar juntos

Ediciones

Windows NT 3.1

Se lanzó el 27 de julio de 1993, tuvo dos ediciones: Workstation y Advanced Server. Su versión era la NT 3.1

Fue la primera versión de Windows NT de Microsoft. El número de versión se eligió para coincidir con la versión de Windows 3.1, la más reciente GUI basada en DOS de Microsoft en la misma época, ya que poseía la misma apariencia visual. Se podía ejecutar en microprocesadores Intel x86, DEC Alpha y MIPS R4000

Windows NT 3.5

Se lanzó el 21 de septiembre de 1994, tuvo dos ediciones: Workstation y Server. Su versión era la NT 3.5

Fue la primera versión de Windows NT en adoptar el nombre de Windows NT Workstation y Windows NT Server, en sus respectivas ediciones

Incluía una nueva pantalla de inicio. La interfaz se había actualizado para ser más compatible con la de Windows Workgroup 3.xx. También se mejoró el soporte Object Linking and Embedding (OLE) de la versión 1.0 a la 2.0 y era más eficiente – el rendimiento era mayor y requería menos memoria que Windows NT 3.1.

La Agencia Nacional de Seguridad evaluó en julio de 1995 el Service Pack 3 y dictaminó que cumplía los criterios de TCSEC C2

Windows NT 3.5 no se podía instalar en un procesador más reciente que los Pentium Originales (núcleo 5), aunque esto se corrigió en Windows NT 3.51. Sin embargo, era posible modificar los archivos del CD de instalación para permitir la instalación

Windows NT 3.51

Se lanzó el 30 de mayo de 1995, nueve meses después de Windows NT 3.5 y tres antes que Windows 95.
Tuvo dos ediciones: Workstation y Server. Su versión era la NT 3.51

Proporcionó dos notables mejoras:

  • Fue el primero en dar una efímera salida de Microsoft Windows en la arquitectura PowerPC
  • Daba soporta para las operaciones cliente / servidor con Windows 95

Microsoft siguió dándole soporte hasta el 31 de diciembre de 2001

Windows NT 4.0

Se lanzó en julio de 1996, tuvo cinco ediciones: Workstation, Server, Server Enterprise Edition, Terminal Server y Embedded. Su versión era la NT 4.0

A pesar de que su interfaz gráfica era similar a la de Windows 95, su estabilidad era mayor, aunque era menos flexible desde la perspectiva de un PC. Mucha de la estabilidad se consiguió gracias a la virtualización del Hardware y teniendo aplicaciones que accedían al sistema a través de las APIs en lugar de usar directamente el hardware como se hacía en MS-DOS, una práctica que continuó con Windows 95

El uso de las APIs en lugar de usar el hardware directamente requiere mucho más trabajo que debe ser realizado por el ordenador, y algunas aplicaciones, como los juegos, que hacían un uso importante del hardware, funcionaban más despacio. Mientras que la mayoría de los programas escritos para la API Win32 funcionaban por igual en Windows 95 y Windows NT. Por eso tenía un pobre soporte de DirectX, lo que provocaba que la mayoría de los juegos en 3D funcionarán más lentos que en Windows 95

Las ediciones para servidores de Windows NT 4.0 además incorporaban un Servidor Web, IIS 2.0. Además soportaban de forma nativa los plugins y extensiones de Microsoft Frontpage, una aplicación para la creación de sitios web y su mantenimiento. Otras característica importante eran las Microsoft Transaction Server para aplicaciones en red, y Microsoft Message Queue Server (MSMQ), una infraestructura de mensajería, que incluía, además, una herramienta de desarrollo para crear aplicaciones de mensajería

Windows 2000

Se lanzó el 17 de febrero de 2000, tuvo cuatro ediciones: Professional, Server, Advanced Server y Datacenter Server. Su versión era la NT 5.0

Se cambió su nomenclatura de Windows NT 5.0 pasó a llamarse Windows 2000. Fue sucedido por Windows XP para equipos de escritorio en octubre de 2001 y Windows Server 2003 para servidores en abril de 2003. Su creación representó un esfuerzo por la unificación de hasta ese momento dos sistemas operativos distintos, Windows 9x y Windows NT. Dos años antes de su salida se sabía que Windows NT 5.0 estaba en proyecto, pero Windows 2000 llegó por fin a unificar ambos sistemas

Windows 2000 era un sistema operativo dirigido a empresas y para ejecutar servidores de red o servidores de archivos. Dentro de las tareas que podía realizar se incluían: crear cuentas de usuarios, asignar recursos y privilegios, actuar como servidor web, FTP, servidor de impresión, DNS o resolución de nombres de dominio, servidor DHCP, entre otros servicios básicos

También tenía la posibilidad de usarlo como una estación de trabajo más de la red. Dicho sistema operativo era muy eficiente y su principal punto fuerte era el Active Directory (Directorio Activo), herramienta desde la cual se podía administrar toda la infraestructura de una organización

Se introdujeron algunas modificaciones respecto a sus predecesores como el sistema de archivos NTFS 5, con la capacidad de cifrar y comprimir archivos. Las mejoras en el sistema de componentes COM, introduciendo COM+ que unificó en un solo paquete de los servicios anexados y la tecnología COM y MTS de Windows NT4, con las nuevas ventajas en el ámbito empresarial

Windows XP

Se lanzó el 25 de octubre de 2001, tuvo ocho ediciones: Home, Professional, Media Center (2004 & 2005), Tablet PC, Starter, Embedded, N y 64 bit edition (IA-64). Su versión era la NT 5.1

Microsoft Windows XP (Windows Experience) estaba basado en Windows 2000 e incluía importantes mejoras con respecto a su predecesor. En agosto de 2012, tenía una cuota de mercado de 46,33%, y fue superado por Windows 7 que ya tenía un 46,60% de la cuota de mercado. En diciembre de 2013, tenía una cuota de mercado de 500 millones de ordenadores. Las letras «XP» provienen de la palabra eXPeriencia (eXPerience en inglés). Su nombre clave inicial fue Whistler

Se distribuyó en distintos soportes, incluyendo los PC domésticos o de negocios, además de equipos portátiles, «netbooks», «tabletas» y «centros multimedia». Sucesor de Windows 2000 junto con Windows ME, y antecesor de Windows Vista, es el primer sistema operativo de Microsoft orientado al consumidor que se construye con un núcleo y arquitectura de Windows NT disponible en versiones para plataformas de 32 y 64 bits

A diferencia de versiones anteriores de Windows, al estar basado en la arquitectura de Windows NT proveniente del código de Windows 2000, presenta mejoras en la estabilidad y el rendimiento. Tiene una interfaz gráfica de usuario (GUI) perceptiblemente reajustada (denominada Luna), la cual incluye características rediseñadas, algunas de las cuales se asemejan ligeramente a otras GUI de otros sistemas operativos, cambio promovido para un uso más fácil que en las versiones anteriores. Se introdujeron nuevas capacidades de gestión de software para evitar el «DLL Hell» (infierno de las DLLs) que plagó las anteriores versiones. Fue la primera versión de Windows que utilizó la activación del producto para reducir la piratería del software

Windows Server 2003

Se lanzó en abril de 2003, tuvo cinco ediciones: Standard, Enterprise, Datacenter, Web y XP Pro x64. Su versión era la NT 5.2

Era un Windows XP modificado para labores empresariales, no con menos funciones, sino que estas están deshabilitadas por defecto para obtener un mejor rendimiento y para centrar el uso de procesador en las características de servidor; por ejemplo, la interfaz gráfica denominada Luna de Windows XP viene desactivada por lo que sólo se utiliza la interfaz clásica de Windows

Windows Fundamentals for Legacy PC

Se lanzó en julio de 2006, es una versión reducida de Windows XP con menos complementos, hecha especialmente para PCs de bajos recursos como Pentium II con 64 de RAM y 16 de V-RAM. Su versión era la NT 5.1

Estaba diseñado para sistemas antiguos (como primeras versiones del Pentium). Estaba disponible para clientes empresariales que querían actualizarse a Windows XP por razones de seguridad, pero no podían comprar hardware nuevo. Las aplicaciones estaban orientadas a la ejecución en Escritorio Remoto

Windows Vista

Se lanzó el 30 de enero de 2007, tuvo seis ediciones: Starter, Home Basic, Home Premium, Business, Enterprise, Ultimate (la única versión que no estaba disponible para equipos de 64 bits es la versión Starter, ya que es una versión para equipos básicos). Su versión era la NT 6.0

Esta versión se enfocó para ser utilizada en equipos de escritorio en hogares y oficinas, equipos portátiles, tabletas y equipos media center

La aparición de Windows Vista se produjo más de cinco años después de la introducción de Windows XP, es decir, el tiempo más largo entre dos versiones consecutivas de Microsoft Windows. La campaña de lanzamiento fue incluso más costosa que la de Windows 95, ocurrida el 25 de agosto de 1995, debido a que ésta incluyó además otros productos como Microsoft Office 2007 y Exchange Server 2008. Windows Vista se sustituyó por Windows 7, que fue lanzado mundialmente el 22 de octubre de 2009

Windows Server 2008

Se lanzó en febrero de 2008, tuvo seis ediciones: Foundation, Standard, Enterprise, Datacenter, Web Server, HPC Server y para Procesadores Itanium. Su versión era la NT 6.0

Es el sucesor de Windows Server 2003, distribuido al público casi cinco años después. Al igual que Windows Vista, Windows Server 2008 se basa en el núcleo Windows NT 6.0 Service Pack 1. Entre las mejoras de esta edición, se destacan nuevas funcionalidades para el Active Directory, nuevas prestaciones de virtualización y administración de sistemas, la inclusión de IIS 7.5 y el soporte para más de 256 procesadores

Windows Server 2008 R2

Se lanzó el 7 de enero de 2009, se lanzó una versión preliminar (beta) de Windows Server 2008 R2 para suscriptores de los programas de Microsoft, TechNet y MSDN, así como también a participantes del programa Microsoft Connect sobre Windows 7. Dos días después, se lanzó al público general mediante el Centro de descargas de Microsoft

Tuvo seis ediciones: Foundation, Standard, Enterprise, Datacenter, Web Server, HPC Server y para Procesadores Itanium. Su versión era la NT 6.1

Microsoft introdujo Windows Server 2008 R2 en la Professional Developers Conference (PDC) del 2008 como una variante de servidor del nuevo sistema operativo Windows 7

Una guía preliminar publicada por la compañía describía sus muchas áreas de mejora, la inclusión de un número de nuevas características de virtualización incluyendo Live Migration y Cluster Shared Volumes, un reducido consumo de energía, un nuevo conjunto de herramientas de administración, nuevas características Active Directory como una «papelera de reciclaje» para objetos AD borrados, una nueva versión de IIS (la 7.5) que incluye un renovado servidor FTP, soporte para DNSSEC y el aumento del número de núcleos de procesamiento de 64 a 256. Los procesadores de 32-bits ya no estaban soportados

Algunas mejoras en la opción de instalación Server Core incluyen la remoción total del entorno gráfico del sistema operativo, y el soporte a .NET Framework, incluyendo aplicaciones ASP.NET y soporte para Windows PowerShell

Las mejoras en el rendimiento fueron un área de desarrollo importante en esta versión; Microsoft anunció que se habían realizado trabajos para disminuir el tiempo de arranque, mejorar la eficiencia de operaciones E/S a la vez que reducir potencia de procesamiento y mejoras generales de velocidad en dispositivos de almacenamiento, especialmente en iSCSI

La versión RTM (Release To Manufacturing) fue anunciada el 22 julio de 2009. Entre los cambios que incluía respecto a la edición anterior se incluían mejoras en las funcionalidades de virtualización, Active Directory y capacidades de seguridad

Windows 7

Se lanzó el 22 de octubre de 2009, tuvo seis ediciones: Starter, Home Basic, Home Premium, Professional, Ultimate y Enterprise (al igual que en Vista, la versión Starter no dispone de soporte para 64 bits). Su versión era la NT 6.1

Esta versión está diseñada para uso en PC, incluyendo equipos de escritorio en hogares y oficinas, equipos portátiles, tabletas, netbooks y equipos multimedia

A diferencia del gran salto arquitectónico y de características que sufrió su antecesor Windows Vista con respecto a Windows XP, Windows 7 fue concebido como una actualización incremental y focalizada de Vista y su núcleo NT 6.0, lo que permitió mantener cierto grado de compatibilidad con aplicaciones y hardware en los que éste ya era compatible. Sin embargo, entre las metas de desarrollo para Windows 7 se dio importancia a mejorar su interfaz para volverla más accesible al usuario e incluir nuevas características que permitieran hacer tareas de una manera más fácil y rápida, al mismo tiempo que se realizarían esfuerzos para lograr un sistema más ligero, estable y rápido

Diversas presentaciones ofrecidas por la compañía en 2008 se enfocaron en demostrar capacidades multitáctiles, una interfaz rediseñada junto con una nueva barra de tareas y un sistema de redes domésticas simplificado y fácil de usar denominado «Grupo en el hogar», además de importantes mejoras en el rendimiento general del sistema operativo

Windows 8

Se lanzó en Octubre de 2012, tiene cuatro ediciones: Windows 8, Windows 8 Pro, Windows RT(ARM), Windows Phone 8 (ARM). Su versión es la NT 6.2

Esta versión está diseñada para uso en PC, incluidos ordenadores de escritorio en casa y de negocios, ordenadores portátiles, netbooks, tabletas, servidores y centros multimedia. El principal cambio fue la polémica decisión de eliminar el Menú Inicio, existente desde Windows 95 como estándar de facto en cómo presentar aplicaciones en interfaces gráficas. El 2 de abril de 2014, Microsoft reconoció el error de la eliminación del menú de inicio y anunció que lo volverían a implementar en la siguiente versión de Windows, el cual llegó en 2015

Añade soporte para microprocesadores ARM, además de los microprocesadores tradicionales x86 de Intel y AMD. Su interfaz de usuario ha sido modificada para hacerla más adecuada para su uso con pantallas táctiles, además de los tradicionales ratón y teclado. El efecto Aero Glass de su predecesor Windows 7 no está presente en este sistema operativo, siendo reemplazado por nuevos efectos planos para ventanas y botones con un color simple

El 29 de julio de 2015, Microsoft presentó su sucesor, Windows 10, orientado a integrar de una mejor forma el sistema operativo en todos los dispositivos, desde ordenadores, tabletas y hasta teléfonos inteligentes, destacando el regreso de uno de sus elementos más característicos, el desaparecido Menú Inicio

Windows 8.1

Se lanzó en Octubre de 2012, tiene cuatro ediciones: Windows 8.1, Windows 8.1 Pro, Windows RT(ARM), Windows Phone 8.1 (ARM). Su versión es la NT 6.3

Era una actualización gratuita del sistema operativo Windows 8. Este proyecto era un cambio con respecto a la política tradicional de actualizaciones de Microsoft, que originalmente consistía en lanzamientos regulares de «Service Packs» cada 2 años aproximadamente, ya que era una actualización mayor que introduciría varias mejoras en todas las plataformas de Microsoft incluyendo Windows 8 y Windows Phone 8. Esta actualización solo estaba disponible para usuarios activos de Windows 8, a través de una descarga de la aplicación Tienda Windows

Se recuperó el botón del menú de Inicio. Se incluyeron más tamaños para las miniaturas: Uno pequeño y uno extra-grande. También incluía el nuevo Internet Explorer 11

Windows Server 2012

Se lanzó el 4 de Septiembre de 2012, tiene seis ediciones: Essentials, Standard, Datacenter, Multipoint Premium Server, Storage Server, Hyper-V Server. Su versión es la NT 6.3

Windows Server 2012 tenía el nombre de código «Windows Server 8», era la sexta versión de Windows Server. Era la versión de servidor de Windows 8 y era el sucesor de Windows Server 2008 R2

A diferencia de su predecesor, Windows Server 2012 no tenía soporte para equipos basados ​​en Itanium. Se agregaron o mejoraron características con respecto a Windows Server 2008 R2 (haciendo hincapié en el cloud computing), como una versión actualizada de Hyper-V, un rol de administración de direcciones IP, una nueva versión del Administrador de tareas de Windows y ReFS. un nuevo sistema de archivos

Windows Server 2012 recibió buenas críticas a pesar de haber incluido la controvertida interfaz de usuario basada en Metro vista que en Windows 8

El sucesor de Windows Server 2012, denominado Windows Server 2012 R2, se publicó junto con Windows 8.1 en octubre de 2013. Un Service Pack, denominado oficialmente Windows Server 2012 R2 Update, que se publicó en abril de 2014

Windows 10

Se lanzó el 29 de Julio de 2014, tiene siete ediciones: Windows 10 Home, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Education, Windows 10 IoT Core, Windows 10 Mobile (ARM), Windows 10 Mobile Enterprise (ARM). Su versión es la NT 10.0

Para animar su adopción, Microsoft anunció su disponibilidad gratuita por un año desde su fecha de lanzamiento, para los usuarios que contasen con copias genuinas de Windows 7 Service Pack 1 o Windows 8.1 Update. En junio de 2015, se habilitó una herramienta que permitía reservar esta actualización, dicha herramienta notificaba a cada usuario el momento en el que estaría lista la descarga de la actualización para su dispositivo para así instalar la compilación 10240, la primera versión estable liberada. Los participantes del programa Windows Insider podían recibir una licencia de Windows 10, pero con ciertas condiciones, entre ellas que su sistema operativo instalado (7, 8 u 8.1) fuese legítimo

Esta edición introdujo una arquitectura de aplicaciones «universales». Desarrolladas con la interfaz Continuum y, posteriormente, con la interfaz Fluent Design, estas aplicaciones pueden ser diseñadas para ejecutarse en todas las familias de productos de Microsoft con un código casi idéntico (incluyendo computadoras personales, tabletas, teléfonos inteligentes, sistemas embebidos, Xbox One, Surface Hub y HoloLens). La interfaz de usuario fue revisado para realizar transiciones entre una interfaz orientada al ratón y una interfaz orientada a la pantalla táctil basadas en dispositivos de entrada disponibles (particularmente en tablets). Ambas interfaces incluyen un menú Inicio actualizado que comprende un diseño similar a Windows 7 con las baldosas de Windows 8. También se introduce la Vista de Tareas, un sistema de escritorio virtual, el navegador web Microsoft Edge y otras aplicaciones nuevas o actualizadas, un soporte integrado para iniciar sesión a través de huella digital o reconocimiento facial llamado Windows Hello, nuevas características de seguridad para entornos empresariales, DirectX 12 y WDDM 2.0 para mejorar las capacidades gráficas del sistema operativo para los videojuegos

Microsoft describió a Windows 10 tanto un sistema operativo como un servicio que puede recibir actualizaciones en curso para sus características y funcionalidades, además con la habilidad en los entornos empresariales para recibir actualizaciones no críticas en un ritmo más lento, o un soporte a largo plazo que solo recibe actualizaciones críticas, tales como parches de seguridad, en el curso de vida de cinco años de soporte general. Terry Myerson, vicepresidente ejecutivo de Windows and Devices Group de Windows, demostró que las metas de este modelo fue reducir la fragmentación en toda la plataforma de Windows, como Microsoft pretendía tener Windows 10 instalado en al menos mil millones de dispositivos en los dos o tres años después de su lanzamiento

Windows 10 recibió reseñas generalmente positivas en el día de su lanzamiento. Los críticos elogiaron la decisión de Microsoft de retirar la interfaz de usuario introducido por Windows 8 (incluyendo las aplicaciones a pantalla completa y la pantalla Inicio) en un entorno no táctil para proporcionar una interfaz más orientado al escritorio en la misma línea de las versiones anteriores de Windows, aunque la interfaz de usuario de orientación táctil fue criticada por contener regresiones hacia la interfaz de Windows 8. Los críticos también elogiaron las mejoras para el software promocional de Windows 10 sobre 8.1, la integración de Xbox Live, así como la funcionalidad y capacidades de Cortana y la sustitución de Internet Explorer con Microsoft Edge (aunque el navegador fue criticado por encontrarse aún, en estado de desarrollo)

Windows 10 muestra publicidad en varias aplicaciones como el explorador de archivos y la pantalla de bloqueo, algo que mucha gente considera inaceptable

Windows Server 2016

Se lanzó en Septiembre de 2016, tiene siete ediciones: Essentials, Standard, Datacenter, Multipoint Premium Server, Storage Server, Hyper-V Server. Su versión es la NT 10.0

Windows Server 2016 (o Windows Server vNext) es la última versión de Microsoft Windows, la línea de sistemas operativos desarrollada por Microsoft para su uso en servidores. Su desarrollo se ha llevado a cabo simultáneamente junto a su homólogo Windows 10. Actualmente, se están desarrollando Windows Server 2016 R2

Satya Nadella ha reorganizado Microsoft unificando los equipos de Windows Server y System Center. Anteriormente, el equipo de la versión servidor estaba más estrechamente alineado con el equipo de la versión de cliente de Windows. El equipo de Azure también está trabajando estrechamente con el equipo de Windows Server

Windows Server 2019

Microsoft lo anunció el 20 de marzo de 2018, y la primera vista previa Windows Insider fue lanzada el mismo día

Se lanzó comercialmente el 2 de octubre de 2018

Al igual que su predecesor,​ Windows Server 2019 tiene solo dos versiones basadas en núcleo: Standard y Datacenter, siendo este último el que ofrece mayores prestaciones como SMB Direct o características que no están disponibles en Windows Server 2019 Standard3​ y Storage Spaces Direct,​ y también un mayor soporte a máquinas virtuales con Hyper-V, que está disponible en las dos versiones

También cuenta con una versión para servidores especializados llamada Essentials con límite de usuarios y dispositivos

El instalador ofrece la posibilidad de instalar en modo Core (interfaz de usuario mínima) para administración remota, o Experiencia de escritorio (interfaz de usuario completa) para administración local

Windows 11

Fue lanzado oficialmente el 5 de octubre de 2021, como una actualización gratuita a través de Windows Update de Windows 10, y estaba disponible para aquellos equipos que cumplían con ciertas especificaciones técnicas compatibles del nuevo sistema operativo

Microsoft afirmó que Windows 11 habría mejorado el rendimiento y la facilidad de uso sobre Windows 10

Contó con cambios importantes en el Shell de Windows influenciados por el cancelado Windows 10X, incluido un menú de Inicio rediseñado, el reemplazo de sus iconos dinámicos (Live Tiles) con un panel separado llamado «Widgets» con noticias e intereses, la capacidad de crear conjuntos de ventanas en mosaico que se pueden minimizar y restaurar desde la barra de tareas como grupo, y las nuevas tecnologías de juego heredadas de Xbox Series X y Series S, como Auto HDR y DirectStorage en hardware compatible

Internet Explorer fue completamente eliminado y reemplazado por el navegador Microsoft Edge; integrando parte de Microsoft Teams en el Shell de Windows en la barra de tareas

A través de actualizaciones, empezó a ofrecer soporte a las aplicaciones de Android, que se ejecutan en Windows 11, con soporte para Amazon Appstore y paquetes instalados manualmente

Citando nuevos mandatos de seguridad, Windows 11 tiene requisitos de hardware más estrictos que Windows 10, admitiendo compatibilidad sólo con dispositivos que usan una CPU Intel Core de octava generación o más reciente (con algunas mínimas excepciones), CPU AMD Ryzen basada en microarquitectura Zen + o más reciente, o Qualcomm Snapdragon 850 ARM sistema en chip o más reciente

También se requiere el arranque seguro UEFI y la compatibilidad con Trusted Platform Module (TPM) 2.0.

Además, Windows 11 es incompatible con la arquitectura x86 de 32 bits o los sistemas que usan firmware desde BIOS

Windows 11 complica el cambio de navegador por defecto para forzar al usuario a usar Edge

Debido a esas prácticas monopolísticas de Microsoft, la Unión Europea forzó a Microsoft a permitir a los usuarios eliminar Microsoft Edge, Microsoft Bing y los anuncios, para adecuarse al interés del público general