miércoles, 23 de febrero de 2011

Mac OS X

Mac OS X es un sistema operativo desarrollado y comercializado por Apple Inc. que ha sido incluido en su gama de computadoras Macintosh desde 2002.[7] [8] Es el sucesor del Mac OS 9 (la versión final del Mac OS Classic), el sistema operativo de Apple desde 1984.[9] Está basado en UNIX, y se construyó sobre las tecnologías desarrolladas en NeXT entre la segunda mitad de los 80's y finales de 1996, cuando Apple adquirió esta compañía.[10] [11] Desde la versión Mac OS X 10.5 Leopard para procesadores Intel, el sistema tiene la certificación UNIX 03.[12]

La primera versión del sistema fue Mac OS X Server 1.0 en 1999, y en cuanto al escritorio, fue Mac OS X v10.0 «Cheetah» (liberada el 24 de marzo de 2001).[13] Para dispositivos empotrados Apple produce versiones específicas: el iOS para el iPhone, el iPod Touch,[14] el iPad y el Apple TV.[15] Los nombres de las versiones de Mac OS X tienen nombre de grandes felinos, por ejemplo: Mac OS X v10.6 es denominado «Snow Leopard». En Mac OS X, la X denota el 10 en número romano y se constituye en parte prominente de la identidad de la marca.[16]

La variante para servidores, Mac OS X Server, es arquitectónicamente idéntica a su contraparte para escritorio, además de incluir herramientas para administrar grupos de trabajo y proveer acceso a los servicios de red. Estas herramientas incluyen un servidor de correo, un servidor Samba, un servidor LDAP y un servidor de dominio entre otros. Viene preinstalada en Apple Xserve, aunque puede ser utilizado en la gran mayoría de computadores actualmente distribuidos por el fabricante.

Mac OS X está basado en el núcleo Mach.[17] Ciertas partes de las implementaciones de UNIX por parte de FreeBSD y NetBSD fueron incorporadas en NEXTSTEP, en el que se basó Mac OS X. Nextstep fue el sistema operativo orientado a objetos desarrollado por Steve Jobs en NeXT después de dejar Apple en 1985.[18] Mientras Jobs estaba afuera de Apple, la compañía intentó crear un sistema de «próxima generación» a través de los proyectos Taligent, Copland y Gershwin, con poco éxito.[19]

Eventualmente, el sistema de NeXT (en ese entonces denominado OPENSTEP) fue seleccionado para ser la base del próximo sistema operativo de Apple, por lo cual la compañía de Cupertino adquirió NeXT en su totalidad.[20] Steve Jobs regreso a Apple como CEO interino, y luego asumió el cargo de lleno, acompañando la transformación de OPENSTEP en un sistema que sería adoptado para el mercado primario de Apple, los usuarios de hogar y los profesionales multimedia. El proyecto fue conocido inicialmente como Rhapsody y luego adoptó el nombre de Mac OS X

Aplicaciones

Mac OS X v10.5 introdujo soporte seguro para aplicaciones y procesos firmados. Las aplicaciones y procesos firmados incluyen una firma digital, la cual es usada por el sistema para verificar la autenticidad y la integridad del software y sus recursos.[31] El código es verificado tanto en el disco como cuando se está ejecutando. De este modo, si alguna parte del código de la aplicación o el proceso es inapropiadamente cambiado cuando está activo, el sistema automáticamente lo desactiva. La autenticación de código es usado por los llaveros, la aplicación de firewall personal, las preferencias de Control Parental y la configuración del gestor de clientes para verificar las aplicaciones después de modificaciones.

Leopard también introdujo el servicio de aplicaciones en cuarentena, el cual muestra una advertencia cuando el usuario intenta abrir una aplicación descargada de una fuente externa.[31] Esto da al usuario la oportunidad de verificar que desea abrir una nueva aplicación, o cancelar la apertura si se sospecha sobre la seguridad de la misma. Mac OS X v10.6 refuerza aún más esta característica con el mantenimiento de una lista de programas maliciosos conocidos. Si intenta abrir cualquier software en esta lista, el sistema presentará un cuadro de diálogo de advertencia que sugiere que tal archivo debe ser suprimido.

[editar] Estructura de permisos

Mac OS X distingue entre los usuarios (user), el administrador de sistema root (admin) y el superusuario (superuser). El usuario no puede realizar cambios en el sistema y solo puede instalar software en su carpeta personal. Las aplicaciones que ejecuten estos usuarios lo harán con los permisos propios de este tipo de usuario. Los usuarios administradores tienen más permisos, aunque no pueden realizar modificaciones a la configuración general del sistema, instalar software o tener acceso a varios directorios del sistema sin autenticarse.

Mac OS X v10.5 - Cuentas de usuario[32]

< Administrador: un administrador puede crear y eliminar cuentas, instalar software, modificar los ajustes del sistema y cambiar la configuración de otros usuarios.

< Estándar: una cuenta de usuario típica. Un usuario estándar sólo puede instalar software para la cuenta de usuario y no puede modificar las preferencias de sistema bloqueadas ni crear cuentas.

< Supervisada con controles parentales: una cuenta que tiene privilegios limitados, gestionados mediante Controles parentales.

< Sólo compartidos: sólo puede acceder a los archivos de una ubicación específica. No puede modificar los archivos del ordenador ni iniciar sesión en la ventana de inicio de sesión.

< Grupo: una cuenta compuesta por los usuarios seleccionados.

Comparación con otras plataformas

Orígenes

Mac OS X es un sistema BSD, motivo por el cual guarda especial relación con Linux. Esta relación se basa en el cumplimiento de estándares, aunque el código de ambos es completamente distinto. Linux es un sistema tipo-UNIX, mientras que Mac OS X es un sistema UNIX certificado. La relación Mac OS X-Linux es tan estrecha, que es posible portar fácilmente un programa de Linux a Mac OS X y ejecutarlo en el subsistema X11. Un ejemplo claro de esto es OpenOffice.org, el cual durante sus versiones iniciales para Mac OS X funcionó en X11 hasta que pasó a ser una aplicación nativa. Por su parte, Windows no guarda relación alguna con Mac OS X o Linux. En noviembre de 2009, un ejecutivo de Microsoft admitió que Windows 7 había sido inspirado en Mac OS X.[96] [97]

Market Share y demografía del usuario

De acuerdo con Apple, los usuarios de Mac OS X eran casi 10 millones a principios de 2004,[98] habiendo un incremento en la cuota de mercado del 2,06% al 2,88% con respecto al 2003.[99] En octubre de 2006, las firmas IDC y Gartner reportaron que la cuota de mercado de Apple en los Estados Unidos se había incrementado en un 6%.[100] Las cifras de diciembre de 2006, muestran una cuota de mercado de alrededor de un 6% (IDC) y un 6,1% (Gartner). Estas se basan en un incremento de más del 30 por ciento en la venta de unidades desde 2005 a 2006. A marzo de 2010, Mac OS X ostenta una participación en el mercado global del 5.02%, mientras que en Microsoft Windows y Linux es del 92.12% y 0.98% respectivamente.[101] El 24 de noviembre de 2009 ComputerWorld informó que Windows 7 había superado a Mac OS X en número de usuarios.[102] [103]

Existen tres formas de tomar muestras en el mercado de los sistemas operativos: 1. accesos del navegador 2. las ventas 3. equipos en operación. Si se mide mediante el navegador, el mercado de los Mac se ha incrementado substancialmente desde 2007.[104] Sin embargo, los resultados de la cuota de mercado medido como porcentaje de las ventas actuales proporciona resultados diferentes a los que se obtienen midiendo los equipos en funcionamiento. La cantidad de computadores Mac en uso es difícil de determinar, con números que van entre el 5% (2009) y el 16% (2005).[105] [106] La cuota del Mac OS X en el mercado de los sistemas operativos se incrementó de un 7.32% en diciembre de 2007 a un 9.63% en diciembre de 2008, lo que implica un incremento en la cuota de mercado del 32% durante el 2008, comparado con un incremento del 22% en 2007.

Expertos de la industria a menudo han llamado la atención sobre la cuota de mercado relativamente pequeña de Mac para predecir la muerte inminente de Apple, en particular en la década de 1990, cuando el futuro de la empresa parecía más sombrío. Otros argumentan que la cuota de mercado es una forma equivocada para medir el éxito del Mac. Apple ha posicionado el Mac como un computador personal de alto rendimiento, de modo que sería erróneo compararlo con un PC de bajo coste.[107] Debido a que el mercado global para los computadores personales ha crecido rápidamente, los incrementos en las ventas de los Mac se ven opacados al compararse con sus competidores. Entonces, la pequeña cuota de mercado de Apple da una falsa impresión en cuanto a que hay menos personas usando Macs que anteriormente.[108] Otros tratan de hacer hincapié en la cuota de mercado, alegando que rara vez se ve tal contexto en otras industrias.[109] Independientemente de la cuota de mercado del Mac, Apple se ha mantenido rentable desde el retorno de Steve Jobs y la posterior reorganización de la empresa.[110] Notablemente, un reporte publicado en el primer cuarto del 2008 encontró que Apple tenía un 14% de share en el mercado de los computadores personales en Estados Unidos, incluyendo el 66% de los equipos cuyo valor supera los 1.000 doláres.[111] Las investigaciones de mercado indican que la mayor parte de su base de clientes proviene de personas con altos ingresos.[112]

Seguridad

Mac OS X, Microsoft Windows y Linux incluyen de fábrica utilidades de seguridad muy similares, como cortafuegos y antispyware. Si bien ningún sistema operativo está exento de ser atacado o infectado por un virus, Mac OS X está basado en UNIX y la cantidad de virus que lo afectan es reducida. Los pocos virus que se han detectado para Mac OS X, son de aquellos que causan molestar cambiando el fondo de pantalla del usuario, modificando la ubicación de sus archivos, pero ninguno que afecte al sistema.[113]

Cerca del 99.2% del malware tiene por objetivo Microsoft Windows.[114] Pese a la reducida cantidad de malware destinada para el sistema de Apple, el Mac OS X fue denominado por IBM como el sistema operativo más inseguro.[115] En ese mismo estudio, IBM califica su sistema AIX, como el más seguro. Es importante recalcar, que tanto Mac OS X como AIX son sistemas UNIX.

Tanto Mac OS X como Microsoft Windows incluyen utilidades integradas para el cifrado de archivos. La de Mac OS X se denomina FileVault, mientras que la de Microsoft Windows es BitLocker.[116] [117] Linux en la gran mayoría de distribuciones no incluye un software de cifrado, aunque están disponibles un buen número de aplicaciones libres para tal fin, como TrueCrypt o GnuPG.[118] [119

martes, 22 de febrero de 2011

UNIX

Unix (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy.[1] [2]

«Después de treinta años de su creación, UNIX sigue siendo un fenómeno»

Hasta 2009, el propietario de la marca UNIX® fue The Open Group, un consorcio de normalización industrial. A partir de marzo de 2010 y tras una larga batalla legal, esta ha pasado nuevamente a ser propiedad de Novell, Inc. Sólo los sistemas totalmente compatibles y que se encuentran certificados por la especificación Single UNIX Specification pueden ser denominados "UNIX®" (otros reciben la denominación "similar a un sistema Unix" o "similar a Unix"). En ocasiones, suele usarse el término "Unix tradicional" para referirse a Unix o a un sistema operativo que cuenta con las características de UNIX Versión 7 o UNIX System V.

A finales de 1960, el Instituto Tecnológico de Massachusetts, los Laboratorios Bell de AT&T y General Electric trabajaban en un sistema operativo experimental llamado Multics (Multiplexed Information and Computing Service),[4] desarrollado para ejecutarse en una computadora central (mainframe) modelo GE-645. El objetivo del proyecto era desarrollar un gran sistema operativo interactivo que contase con muchas innovaciones, entre ellas mejoras en las políticas de seguridad. El proyecto consiguió dar a luz versiones para producción, pero las primeras versiones contaban con un pobre rendimiento. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos.

Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora GE-635[5] y escribió un juego llamado Space Travel,[6] [7] (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric y resultaba realmente caro, algo así como 75 dólares de EE.UU. por cada partida.

De este modo, Thompson escribió nuevamente el programa, con ayuda de Dennis Ritchie, en lenguaje ensamblador, para que se ejecutase en una computadora DEC PDP-7. Esta experiencia, junto al trabajo que desarrolló para el proyecto Multics, condujo a Thompson a iniciar la creación de un nuevo sistema operativo para la DEC PDP-7.[8] Thompson y Ritchie lideraron un grupo de programadores, entre ellos a Rudd Canaday, en los laboratorios Bell, para desarrollar tanto el sistema de ficheros como el sistema operativo multitarea en sí. A lo anterior, agregaron un intérprete de órdenes (o intérprete de comandos) y un pequeño conjunto de programas. El proyecto fue bautizado UNICS, como acrónimo Uniplexed Information and Computing System, pues sólo prestaba servicios a dos usuarios (de acuerdo con Andrew Tanenbaum, era sólo a un usuario[9] ). La autoría de esta sigla se le atribuye a Brian Kernighan, ya que era un hack de Multics. Dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un sistema MULTICS castrado (pues eunuchs, en inglés, es un homófono de UNICS), se cambió el nombre a UNIX, dando origen al legado que llega hasta nuestros días.[10]

Hasta ese instante, no había existido apoyo económico por parte de los laboratorios Bell, pero eso cambió cuando el Grupo de Investigación en Ciencias de la Computación decidió utilizar UNIX en una máquina superior a la PDP-7. Thompson y Ritchie lograron cumplir con la solicitud de agregar herramientas que permitieran el procesamiento de textos a UNIX en una máquina PDP-11/20, y como consecuencia de ello consiguieron el apoyo económico de los laboratorios Bell. Fue así como por vez primera, en 1970, se habla oficialmente del sistema operativo UNIX[11] ejecutado en una PDP-11/20. Se incluía en él un programa para dar formato a textos (runoff) y un editor de texto. Tanto el sistema operativo como los programas fueron escritos en el lenguaje ensamblador de la PDP-11/20. Este "sistema de procesamiento de texto" inicial, compuesto tanto por el sistema operativo como de runoff y el editor de texto, fue utilizado en los laboratorios Bell para procesar las solicitudes de patentes que ellos recibían. Pronto, runoff evolucionó hasta convertirse en troff, el primer programa de edición electrónica que permitía realizar composición tipográfica. El 3 de noviembre de 1971 Thomson y Ritchie publicaron un manual de programación de UNIX (título original en inglés: "UNIX Programmer's Manual").[12]

En 1972 se tomó la decisión de escribir nuevamente UNIX, pero esta vez en el lenguaje de programación C.[13] Este cambio significaba que UNIX podría ser fácilmente modificado para funcionar en otras computadoras (de esta manera, se volvía portable) y así otras variaciones podían ser desarrolladas por otros programadores. Ahora, el código era más conciso y compacto, lo que se tradujo en un aumento en la velocidad de desarrollo de UNIX. AT&T puso a UNIX a disposición de universidades y compañías, también al gobierno de los Estados Unidos, a través de licencias.[14] Una de estas licencias fue otorgada al Departamento de Computación de la Universidad de California, con sede en Berkeley.[14] En 1975 esta institución desarrolló y publicó su propio sucedáneo de UNIX, conocida como Berkeley Software Distribution (BSD), que se convirtió en una fuerte competencia para la familia UNIX de AT&T.

Mientras tanto, AT&T creó una división comercial denominada Unix Systems Laboratories para la explotación comercial del sistema operativo. El desarrollo prosiguió, con la entrega de las versiones 4, 5 y 6[15] en el transcurso de 1975. Estas versiones incluían los pipes o tuberías, lo que permitió dar al desarrollo una orientación modular respecto a la base del código, consiguiendo aumentar aún más la velocidad de desarrollo. Ya en 1978, cerca de 600 o más máquinas estaban ejecutándose con alguna de las distintas encarnaciones de UNIX.

La versión 7,[15] la última versión del UNIX original con amplia distribución, entró en circulación en 1979. Las versiones 8, 9 y 10[15] se desarrollaron durante la década de 1980, pero su circulación se limitó a unas cuantas universidades, a pesar de que se publicaron los informes que describían el nuevo trabajo. Los resultados de esta investigación sirvieron de base para la creación de Plan 9 from Bell Labs, un nuevo sistema operativo portable y distribuido, diseñado para ser el sucesor de UNIX en investigación por los Laboratorios Bell.

Éste sería el aspecto de UNIX sobre los fines de la década de 1980 utilizando X Window System creado por el MIT

AT&T entonces inició el desarrollo de UNIX System III, basado en la versión 7, como una variante de tinte comercial y así vendía el producto de manera directa. La primera versión se lanzó en 1981.[15] A pesar de lo anterior, la empresa subsidiaria Western Electric seguía vendiendo versiones antiguas de Unix basadas en las distintas versiones hasta la séptima. Para finalizar con la confusión con todas las versiones divergentes, AT&T decidió combinar varias versiones desarrolladas en distintas universidades y empresas, dando origen en 1983 al Unix System V Release 1.[15] Esta versión presentó características tales como el editor Vi y la biblioteca curses, desarrolladas por Berkeley Software Distribution en la Universidad de California, Berkeley. También contaba con compatibilidad con las máquinas VAX de la compañía DEC.

En 1993, la compañía Novell adquirió la división Unix Systems Laboratories de AT&T junto con su propiedad intelectual.[16] Esto ocurrió en un momento delicado en el que Unix Systems Laboratories disputaba una demanda en los tribunales contra BSD por infracción de los derechos de copyright, revelación de secretos y violación de marca de mercado[cita requerida].

BSD no solamente ganó el juicio sino que cambiaron tornas descubriendo que grandes porciones del código de BSD habían sido copiadas ilegalmente en UNIX System V. En realidad, la propiedad intelectual de Novell (recién adquirida de Unix Systems Laboratories) se reducía a unos pocos ficheros fuente[cita requerida]. La correspondiente contra-demanda acabó en un acuerdo extrajudicial cuyos términos permanecen bajo secreto a petición de Novell.

Aproximadamente por esa misma fecha, un estudiante de ciencias de la computación llamado Linus Torvalds desarrolló un núcleo para computadoras con arquitectura de procesador Intel x86 que mimetizaba muchas de las funcionalidades de UNIX y lo lanzó en forma de código abierto en 1991, bajo el nombre de Linux. En 1992, el Proyecto GNU comenzó a utilizar el núcleo Linux junto a sus programas.

En 1995, Novell vendió su división UNIX comercial[16] (es decir, la antigua Unix Systems Laboratories) a Santa Cruz Operation (SCO) reservándose, aparentemente, algunos derechos de propiedad intelectual sobre el software.[17] SCO continúa la comercialización de System V en su producto UnixWare, que durante cierto tiempo pasó a denominarse OpenUnix, aunque ha retomado de nuevo el nombre de UnixWare.


Familias UNIX más significativas


Unix history-simple.svg


  • AT&T: la familia que tuvo su origen en el UNIX de AT&T. Considerada la familia UNIX "pura" y original. Sus sistemas operativos más significativos son UNIX System III y UNIX System V.
  • BSD: familia originada por el licenciamiento de UNIX a Berkely. BSD se reescribió para no incorporar propiedad intelectual originaria de AT&T en la versión 4. La primera implementación de los protocolos TCP/IP que dieron origen a Internet son la pila (stack) TCP/IP BSD.
  • AIX: Esta familia surge por el licenciamiento de UNIX System III a IBM.
  • Xenix: familia derivada de la adquisición de los derechos originales de AT&T primero por parte de Microsoft y de esta los vendió a SCO.
  • GNU: En 1983, Richard Stallman anunció el Proyecto GNU, un ambicioso esfuerzo para crear un sistema similar a Unix, que pudiese ser distribuido libremente. El software desarrollado por este proyecto -por ejemplo, GNU Emacs y GCC - también han sido parte fundamental de otros sistemas UNIX.
  • Linux: En 1991, cuando Linus Torvalds empezó a proponer el núcleo Linux y a reunir colaboradores, las herramientas GNU eran la elección perfecta. Al combinarse ambos elementos, conformaron la base del sistema operativo (basado en POSIX) que hoy se conoce como GNU/Linux. Las distribuciones basadas en el núcleo, el software GNU y otros agregados entre las que se pueden mencionar a Slackware Linux, Red Hat Linux y Debian GNU/Linux se han hecho populares tanto entre los aficionados a la computación como en el mundo empresarial. Obsérvese que Linux tiene un origen independiente, por lo que se considera un 'clónico' de UNIX y no un UNIX en el sentido histórico.

Las interrelaciones entre estas familias son las siguientes, aproximadamente en orden cronológico:

  • La familia BSD surge del licenciamiento del UNIX original de AT&T.
  • Xenix también surge por licenciamiento del UNIX original de AT&T, aunque aún no era propiedad de SCO.
  • AIX surge por licenciamiento de UNIX System III, pero también incorpora propiedad intelectual de BSD.
  • La familia original AT&T incorpora ilegalmente propiedad intelectual de BSD en UNIX System III r3.
  • La familia AIX vuelve a incorporar propiedad intelectual de la familia AT&T, esta vez procedente de UNIX System V.
  • Linux incorpora propiedad intelectual de BSD, gracias a que éste también se libera con una licencia de código abierto denominada Open-source BSD.
  • Según SCO Group, Linux incorpora propiedad intelectual procedente de AIX, gracias a la colaboración de IBM en la versión 2.4, más aún no está demostrado, hay un proceso judicial al respecto: Disputas de SCO sobre Linux.

[editar] La marca

UNIX es una marca registrada de The Open Group en Estados Unidos y otros países. Esta marca sólo se puede aplicar a los sistemas operativos que cumplen la "Single Unix Specification" de esta organización y han pagado las regalías establecidas.

En la práctica, el término UNIX se utiliza en su acepción de familia. Se aplica también a sistemas multiusuario basados en POSIX (tales como GNU/Linux, Mac OS X [el cual, en su versión 10.5 ya ha alcanzado la certificación UNIX], FreeBSD, NetBSD, OpenBSD), los cuales no buscan la certificación UNIX por resultar cara para productos destinados al consumidor final o que se distribuyen libremente en Internet. En estos casos, el término se suele escribir como "UN*X", "*NIX", o "*N?X".

[editar] Implementaciones más importantes

A lo largo de la historia ha surgido una gran multitud de implementaciones comerciales de UNIX. Sin embargo, un conjunto reducido de productos han consolidado el mercado y prevalecen gracias a un continuo esfuerzo de desarrollo por parte de sus fabricantes. Los más importantes son:

Solaris 10, un sistema operativo derivado de la rama BSD
  • Solaris de Sun Microsystems. Uno de los sistemas operativos Unix más difundidos en el entorno empresarial y conocido por su gran estabilidad. Parte del código fuente de Solaris se ha liberado con licencia de fuentes abiertas (OpenSolaris).
  • AIX de IBM. El UNIX "propietario" de IBM ha cumplido 20 años de vida en el 2006 y continúa en pleno desarrollo, con una perceptible herencia del mainframe en campos como la virtualización o la RAS de los servicios, heredada de sus "hermanos mayores".
  • HP-UX de Hewlett-Packard. Este sistema operativo también nació ligado a las computadoras departamentales de este fabricante. También es un sistema operativo estable que continua en desarrollo.
  • Mac OS X. Curiosamente sus propios usuarios suelen desconocer que se trata de un UNIX completo, aprobado por The Open Group. Su diferencia marcada es que posee una interfaz gráfica propietaria llamada Aqua, y es principalmente desarrollada en Objective-C en lugar de C o C++.

Existen sistemas operativos basados en el núcleo Linux, y el conjunto de aplicaciones GNU (también denominado GNU/Linux), entre las más utilizadas encontramos:

También son populares los sistemas operativos descendientes del 4.4BSD:

  • FreeBSD. Quizá el sistema operativo más popular de la familia, de propósito múltiple. Con una implementación SMP muy elaborada, es el sistema operativo utilizado por los servidores de Yahoo. Y base de muchos sistemas operativos entre ellos Mac OS X de Apple.
  • OpenBSD. Ampliamente reconocida por su seguridad proactiva y auditoría permanente del código fuente. Es utilizada en ambientes donde la seguridad prima sobre todo, es usual encontrarlo instalado en servidores que actúan como Firewall, VPN o Proxy.
  • NetBSD . Se le conoce por su portabilidad, a octubre de 2008: 53 arquitecturas soportadas. La NASA lo ha utilizado para la investigación en redes TCP/IP satelitales, al igual que para reciclar computadoras viejas con software moderno.

Las siguientes implementaciones de UNIX tienen importancia desde el punto de vista histórico, no obstante, actualmente están en desuso:

[editar] Órdenes clásicas de UNIX

Algunos comandos básicos de UNIX son:

Esta es una lista de los sesenta comandos de usuario de la sección 1 de la Primera Edición:

ar as b bas bcd boot cat chdir check chmod chown cmp cp date db dbppt dc df dsw dtf du ed find for form hup lbppt ld ln ls mail mesg mkdir mkfs mount mv nm od pr rew rkd rkf rkl rm rmdir roff sdate sh stat strip su sum tap tm tty type un wc who write

Otros comandos

[editar] Referencias

  1. Bell Labs. The Creation of the UNIX* Operating System. (en inglés)
  2. Bell Labs. THE UNIX ORAL HISTORY PROJECT. Edited and Transcribed by Michael S. Mahoney. Princeton University. Princeton, New Jersey. (en inglés)
  3. Bell Labs. It still remains a phenomenon The Creation of the UNIX* Operating System. (en inglés)
  4. Bell Labs. Before Multics there was chaos, and afterwards, too The Creation of the UNIX* Operating System. (en inglés)
  5. Bell Labs. The famous PDP-7 comes to the rescue The Creation of the UNIX* Operating System. (en inglés)
  6. Dennis M. Ritchie (September 1979) The Evolution of the Unix Time-sharing System Bell Labs. 1996.. Lucent Technologies Inc.(en inglés)
  7. Dennis M. Ritchie Thompson's Space Travel Game Bell Labs. 2001. Lucent Technologies Inc.(en inglés)
  8. Bell Labs. The UNIX system begins to take shape The Creation of the LINUX IS A YET* Operating System. (en inglés)
  9. Andrew S. Tanenbaum (20 May 2004) Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5 Departament of Computer Science, Vrije Universiteit, Amsterdam. (en inglés)
  10. Bell Labs. It looked like an operating system, almost The Creation of the UNIX* Operating System. (en inglés)
  11. Bell Labs. Porting UNIX for its first commercial application The Creation of the UNIX* Operating System. (en inglés)
  12. Dennis M. Ritchie Unix Programmer's Manual, First Edition (1971) Bell Labs. Lucent Technologies Inc.(en inglés)
  13. Bell Labs. From B language to NB to C The Creation of the UNIX* Operating System. (en inglés)
  14. a b Bell Labs. Sharing UNIX with the rest of the world The Creation of the UNIX* Operating System. (en inglés)
  15. a b c d e Bell Labs. Early versions of the UNIX* system The Creation of the UNIX* Operating System. (en inglés)
  16. a b Bell Labs. UNIX moves on The Creation of the UNIX* Operating System. (en inglés)
  17. Novell, Inc. Press Release (20 September 1995) HP, Novell and SCO To Deliver High-Volume UNIX OS With Advanced Network And Enterprise Services Novell, Inc. New York. (en inglés)

lunes, 21 de febrero de 2011

Microsoft NT

Windows NT es una familia de sistemas operativos producidos por Microsoft, de la cual la primera versión fue publicada en julio de 1993.

Previamente a la aparición del famoso Windows 95 la empresa 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 letras NT provienen de la designación del producto como "Nueva Tecnología" (New Technology).

Las versiones publicadas de este sistema son: 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.

Desarrollo

Cuando el desarrollo comenzó en noviembre de 1988, Windows NT (usando modo protegido) fue desarrollado a la vez que 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 ambiente Windows basado en DOS y con menos demanda de recursos (usando modo real). Cuando Windows 3.0 fue liberado en mayo de 1990, tuvo tanto exito 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 recién nombrado Windows NT.

Microsoft contrató a un grupo de desarrolladores de Digital Equipment Corporation liderados por Dave Cutler para desarrollar Windows NT, y muchos elementos que reflejan la experiencia de DEC con los VMS y RSX-11. El SO fue diseñado para correr en múltiples arquitecturas, con el núcleo 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 un micronúcleo fue diseñado, subsecuentes liberaciones han integrado más funciones para mejorar el rendimiento del núcleo. Windows NT fue el primer sistema operativo en usar Unicode internamente.

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 éstas capas.

La familia de los sistemas operativos Windows NT de Microsoft está constituida por versiones como Windows 7, Vista, XP, Windows Server 2003, Windows 2000 y Windows NT. Todos tienen multitarea apropiativa y son sistemas operativos que han sido diseñados para trabajar tanto con computadoras con un solo procesador como con múltiples procesadores que en inglés es el Symmetrical Multi Processor o SMP.

Para procesar las peticiones de entrada/salida (en inglés Input/Output, I/O) acude a una dirección de paquetes de E/S que utiliza peticiones (IRPs) y E/S asíncrona. A partir de Windows 2000 Advanced Server, Microsoft comenzó a desarrollar sistemas operativos que soportaban 64-bits. Antes sus sistemas operativos 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[1] se compone de lo siguiente:
  1. Un núcleo híbrido.
  2. Una capa de abstracción de hardware (en inglés Hardware Abstraction Layer o HAL).
  3. Controladores o también llamados drivers.
  4. Executive: Sobre el cual son implementados todos los servicios de alto nivel.
  5. 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 de parte del subsistema de Entorno). El modo núcleo en Windows 2000 tiene acceso total al hardware y a los recursos del sistema de la computadora. 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 inicialización de los controladores de dispositivos al arrancar. Hay tres niveles de controladores en el modo núcleo: controladores de alto nivel, controladores intermedios y controladores de bajo nivel. El modelo de controladores de Windows (en inglés Windows Driver Model, WDM) se encuentra en la capa intermedia y fue diseñado principalmente para mantener la compatibilidad en binario y en código fuente entre Windows 98 y Windows 2000. Los controladores de más bajo nivel también 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: un subsistema Win32, un subsistema OS/2 y un subsistema POSIX.

El subsistema de entorno 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 (en inglés, 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. El subsistema de entorno de 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. El subsistema de entorno de POSIX sólo soporta aplicaciones que cumplan estrictamente el estándard POSIX.1 o los estándards 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 (en inglés, Active Directory). El servicio de terminal es una API al redirector de red, que proporciona el acceso a la red a ls computadora. El servicio de servidor es una API que permite a la computadora 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 de la computadora 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 deberían tener acceso, deben pedir al núcleo que realice 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.[2] 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.[3] 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.[4] Todos los objetos nombrados se encuentran en el objeto jerárquico del espacio de nombres.

Otros subsistemas executive son los siguientes:

  • Controlador de Caché (en inglés 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, algunas veces la caché crece indiscriminadamente, obligando a otra memoria a ser paginada, muchas veces reemplazando al proceso que comenzó la E/S, que termina gastando la mayor parte de su tiempo de ejecución atendiendo fallos de página. Esto es más visible cuando se copian archivos grandes.
  • Gestor de Configuración (en inglés Configuration Manager, nombre interno Cm): implementa el registro de Windows.
  • Gestor de E/S (en inglé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 IRPs 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 (en inglés Local 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 (en inglés 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 (en inglés, 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 naturazela 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 ahora un gestor de memoria que furtivamente entra en modo usuario a través de Win32, eran expandidos en una abstracción dominante afectando a la mayoría de los subsistemas Executive. En realidad, el uso habitual de Windows Vista siempre da como consecuencia un entorno multi-sesión.[5]
  • Estructura de Procesos (en inglés 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 (en inglés 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 (en inglés 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 IRPs especiales (IRPs de Energía).
  • Monitor de Referencias de Seguridad (en inglés Security Reference Monitor (SRM), nombre interno Se): es la autoridad principal para hacer cumplir las reglas del subsistema de seguridad integral.[6] Determina cuándo un objeto o recurso puede ser accedido, a través del uso de listas de control de acceso (en inglés Access Control List, ACL), que están formadas por entradas de control de acceso (en inglés Access Control Entries, ACE). Los ACEs contienen un identificador de seguridad (en inglés, 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[7] — permiso (permitir, denegar, o auditar) a ese recurso.[8] [9]


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. Esto es, 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.[10] 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, controladores intermedios y controladores de bajo nivel. Los controladores de alto nivel, como controladores de sistemas de archivos para FAT y NTFS, dependen de controladores intermedios. Los 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 (en inglés Windows Driver Model, WDM) se encuentra en la capa intermedia. El nivel más bajo de controladores son también 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 (en inglés Hardware Abstraction Layer), es una capa que se encuentra entre el hardware físico de la computadora 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.

Versiones

Versiones de Windows NT
NT Ver. Nombre Ediciones Fecha lanzamiento Compilación
NT 3.1 Windows NT 3.1 Workstation, Advanced Server julio 1993 528
NT 3.5 Windows NT 3.5 Workstation, Server septiembre 1994 807
NT 3.51 Windows NT 3.51 Workstation, Server mayo 1995 1057
NT 4.0 Windows NT 4.0 Workstation, Server, Server Enterprise Edition, Terminal Server, Embedded julio 1996 1381
NT 5.0 Windows 2000 Professional, Server, Advanced Server, Datacenter Server febrero 2000 2195
NT 5.1 Windows XP Home, Professional, Media Center (2004 & 2005), Tablet PC, Starter, Embedded, N, 64 bit edition (IA-64 octubre 2001 2600
NT 5.2 Windows Server 2003 Standard, Enterprise, Datacenter, Web, XP Pro x64 abril 2003 3790
NT 5.1 Windows Fundamentals for Legacy PC Versión recortada de Windows XP con menos complementos, hecha especialmente para PCs con menores prestaciones. julio 2006 2600
NT 6.0 Windows Vista Starter, Home Basic, Home Premium, Business, Enterprise, Ultimate (la única versión que no está disponible para equipos de 64 bits es la versión Starter, ya que es una versión para equipos básicos) enero 2007 6000
NT 6.0 Windows Server 2008 Standard, Enterprise, Datacenter, Web, Storage, Small Business Server febrero 2008 6001
NT 6.1 Windows 7 Starter, Home Basic, Home Premium, Professional, Ultimate, Enterprise (al igual que en Vista, la versión Starter no dispone de soporte para 64 bits) octubre 2009 7600