UNA PEQUEÑA INTRODUCCION A WINDOWS XP
--------------------------------------------------------------
Bien, lo primero es definir qué es y por qué existe Windows XP. Desde hace
años, Microsoft intentaba unificar las dos grandes vertientes de Windows. La
serie W9X y la serie NT. Recordemos primero un poquito estas dos series
totalmente diferentes de Windows, el porqué nacieron y la necesidad actual
de converger ambos sistemas. Hagamos un poco historia...
El primer sistema operativo de Microsoft surgió en el año 82 cuando surgió
el primer ordenador de sobremesa: el IBM PC. Dicho sistema operativo era el
MS-DOS. IBM, como gigante de la informática empresarial (grandes mainframes)
decidió embarcarse en la tarea de definir un ordenador personal aprovechando
que Intel acababa de desarrollar el procesador 8088. Definió un bus: el bus
PC, que en poco tiempo pasó a ser el bus AT, con lo cual quedaba plasmada la
arquitectura física de los ordenadores personales... y de cuya herencia
todavía no hemos podido escaparnos.
La evolución posterior del 8088 fue el 8086, 80286, 80386. De esta última
arquitectura (la 386) son herederos el resto de procesadores de Intel: el
80486 (el 486) y la familia Pentium al completo, de tal manera que el juego
de instrucciones ensambladoras de la CPU se conserve íntegro desde la
familia 386 (con una sola nueva instrucción) y que posteriormente se
implementó dentro del procesador el coprocesador matemático y los juegos de
instrucción MMX, orientados a la multimedia.
Volviendo al tema de la visión de futuro que tenía IBM, este propuso al
mercado la creación de un sistema operativo. Digital (que en aquel entonces
tenía el sistema operativo CPM para otro tipo de ordenadores, llamémosles
también personales, y que eran predecesores del 8088) decidió avanzar en el
desarrollo de dos alternativas:
* el CCPM (Concurrent CPM)
* una versión orientada a DOS (Disk Operating System).
Al final, Digital se decidió por el CCPM. Recordemos que los ingenieros de
software de Digital, son los únicos en el mundo del software que tiene
derechos de autor como personas físicas. En el resto de empresas de
software, los derechos son de la empresa y no de los que lo han
desarrollado. Si un ingeniero de Digital se va de la empresa, se va
perfectamente con sus desarrollos.
Este fue el caso de un Ingeniero (el que había empezado a desarrollar el
DOS) que se fue, unos dicen que despechado y otras lenguas dicen que
"comprado" por la incipiente Microsoft. Recordemos que Microsoft acababa de
fundarse con un capital de 500$. Dicho ingeniero en la actualidad es
vicepresidente de Microsoft.
Independientemente de que lo anterior sea toda la verdad o esté desfigurada
por los años, lo que sí es cierto es que el primer DOS fue proyecto de
Digital y que lo retomó Microsoft.
A IBM le urgía el tener un sistema operativo (el que fuese) para la fecha de
lanzamiento de su primer PC. Bill Gates, desde luego como gran negociante,
firmó el acuerdo con IBM ya que se comprometió a tener dicho DOS seis meses
antes de las previsiones que Digital tenía para su CCPM. Igualmente IBM
cometió un error garrafal: no supo valorar el software. En aquellos años, el
software no se valoraba: era mucho más importante el hardware. Por ello,
Bill Gates consiguió un contrato en el cual Microsoft seguía teniendo todos
los derechos sobre el sistema operativo. Este fue el gran fallo de IBM.
Con ello, y en las fechas previstas, se lanzo el MS-DOS 1.0. Evidentemente 6
meses mas tarde salió el CCPM 86. Pero salió tarde. Y a pesar de ser
infinitamente mejor que el MS-DOS 1.0 no llegó a cuajar. Recordemos que CCPM
96, en su primera versión, ya admitía multitarea (el MSDOS nunca lo
soportó). La primera version del CCPM ya soportaba 4 tareas simultáneas.
Posteriormente el MS-DOS continuó su evolucion hasta la version 6.22.
En las versiones 4 (y superiores) del MS-DOS, ya se implementó un soporte
para hacerle reentrante, lo cual es requisito previo para la multitarea. Las
famosas funciones no documentadas del MS-DOS que permitían el uso de la DOS
Swappable Data Area.
Con este soporte, empezó a desarrollarse por parte de Microsoft un sistema
operativo grafico (o mejor, llamémosle, interfaz gráfica sobre dicho MS-DOS)
que se denominó Windows. Fueron surgiendo las versiones 1 y 2 (practicamente
de pruebas)... hasta que Microsoft lanzó su gran primera version: Windows 3
que rapidamente evolucionó a Windows 3.1
WINDOWS NT
----------------------
Llegado al punto de la existencia de WIndows 3.1, Microsoft ya tenía
definido el API (conjunto de funciones) de programación de Windows
prácticamente al completo y bastante depurado. Únicamente existían dos
"pequeños" problemas: todo el subsistema era de 16 bits y además se apoyaba
sobre MS-DOS. Realmente no era más que una interfaz (potente) sobre MS-DOS.
La multitarea no era real sino que los programas debían ceder el control al
sistema operativo y este, una vez que tomaba el control, daba paso a la
siguiente tarea que tenía encolada. Todo esto se realizaba muchas veces por
segundo si las aplicaciones cedían control dando la sensación de multitarea
real.
En este punto, el hardware (procesadores 386) ya estaba en el mercado pero
totalmente infrautilizado. Recordemos que el procesador 386 es un "señor"
procesador. Ya soportaba paginación por hardware, switcheo de tareas via
hardware, etc.... y Windows 3.1, evidentemente al ser de 16 bits, no
utilizaba la potencia que le podía suministrar el procesador.
Por ello, Microsoft se planteó el realizar un verdadero sistema operativo.
32 bits y además utilizando las "features" que le daban los nuevos
procesadores de Intel. Microsofot estaba pensando ya en Windows NT.
Y curiosamente, otro Ingeniero de Digital "desertó" de la empresa y contrató
con Microsoft. Este ingeniero, al igual que el anterior (padre del MS-DOS),
se llevo sus "patentes" de Digital.
Si nos fijamos con detalle en el kernel de NT, podemos ver que el sistema de
archivos nativo ya deja de ser FAT y aparece un nuevo sistema de archivos:
el NTFS. Este sistema es "idéntico" al que utilizan los ordenadores de
tamaño medio-grande de Digital: los VAX (de aquel entonces). La MFT y el
sistema de protección de archivos (las ACL) son idénticas. Es decir, ese
Ingeniero "aportó" a Microsoft la tecnología que le faltaba. Esto no solo
fue a nivel del sistema de archivos sino también a nivel de la ejecución de
tareas siendo ya multitarea real basada en prioridades (idéntica a la que
tienen los sistemas VMS de Digital).
Con esto estaba ya constituido el nucleo. Simplemente quedaba implementar el
API de 16 bits de Windows 3.1 y convertirlo en 32 bits. Así salió al mercado
el primer Windows NT, el NT 3.1 que rapidamente evolucionó al 3.5 y con unas
modificaciones en el nucleo para darle velocidad (y perdida de estabilidad
como comentaremos más adelante) evolucionó al Windows NT4.
Vamos a comentar un poco el porqué de la perdida de estabilidad. Recordemos
que los procesadores 386 y superiores, ejecutan las tareas en distintos
niveles de privilegio. Exactamente en cuatro niveles de privilegio: 0, 1, 2
y 3 como si fuesen capas de cebolla concéntricas siendo el nivel cero el
nivel más inferior. El nivel 0, es también llamado nivel Kernel. En este
nivel, un proceso puede realizar todo: tiene acceso al hardware, etc. En
este nivel se ejecuta el núcleo del sistema operativo. Evidentemente el
fallo de un programa en nivel cero, tiene por consecuencia la caída
inexorable de la máquina.
Los niveles 1 y 2 no se utilizan. Teóricamente, el nivel 1 es donde se
ejecutarían los drivers del sistema, pero Microsoft optó por ejecutarlo a
nivel Kernel (nivel 0).
El último nivel, (nivel 2) es el modo "user". Allí se ejecutan los programas
de usuario que realmente... no pueden hacer casi nada. Cualquier acceso al
hardware o a los recursos del sistema, se debe hacer a través de los niveles
anteriores. En este caso a través del nivel 0.
Estas transiciones de nivel, sólo pueden hacerse a traves de puertas de
tarea asignadas por el núcleo del sistema. Ningún proceso tiene acceso
directo al hardware con lo cual se evitan caídas del sistema por errores de
programación.
Un error de programa en este nivel, no implica nada. El sistema operativo
toma control, informa del error y limpia totalmente la tarea y restos de
ella.
Este sistema es el ideal por razones obvias (los grandes mainframes de IBM y
resto de ordenadores de la industria y sistemas operativos, utilizan la
misma filosofía)
Pero.... y siempre hay un pero..... las transiciones de nivel entre nivel 2
y niveles inferiores, son muy "caras". Utilizan muchos ciclos de reloj. Por
tanto, la manera de optimizarlo es intentar realizar las menos transiciones
posibles.
Para optimizar NT y sacar NT 4, Microsoft sacrificó una parte importante:
todo el subsistema gráfico que se estaba ejecutando en modo usuario y por
tanto no podía matar al sistema, se bajó a modo kernel para evitar
transiciones de estado. Esto aumenta drásticamente las prestaciones de
Windows, el cual está basado todo en el subsistema gráfico. Por contra,
disminuye la estabilidad, ya que un error de programación en este
subsistema, tirará irremediablemente el equipo.
WINDOWS 95 Y POSTERIORES
-----------------------------------------------
Paralelamente a los primeros desarrollos de Windows NT 3.1, Microsoft empezó
a intuir el gran potencial que podía tener Internet y el aumento progresivo
de usuarios tanto domésticos como corporativos que no tenían necesidad de un
Windows NT, pero para los cuales la actual solución de Windows 3.1 se
quedaba escasa.
Microsoft empezó a experimentar con la versión de Windows 3.11 (para trabajo
en grupo), la conectividad de red y el soporte en redes así como los
primeros pasos para algunos subsistemas de 32 bits dentro del propio Windows
(como por ejemplo, acceso a disco en 32 bits y poco más). Igualmente, creo
una capa API de 32 que era capaz de instalarse sobre Windows 3.1 o 3.11 y
daba soporte a programas de 32 bits. Este subsistema no era un subsistema
independiente, sino que estaba "montado" por encima del de 16 bits cediendo
control a él cuando era necesario. Es decir, era un recubirmiento del API de
16 bits.
Con las experiencias anteriores, Microsoft ya tenía en la mano la
posibilidad de hacer evolucionar Windows.
Así surgió el primer Windows de la serie 9X. Windows 95. Realmente no sigue
siendo más que una interfaz gráfica sobre MS-DOS, pero con las siguientes
mejoras:
* Subsistema de drivers de 32 bits. No están normalizados ya que el sistema
basado en VxD (estáticas y dinámicas) posteriormente ha sido abandonado por
Microsoft, pero en su día la idea fue realmente buena.
* API de 32 bits totalmente integrada.
* Incluye el TCP/IP como transporte nativo de red por primera vez en la
historia de Microsoft.
* Interfaz gráfica mejorada y mucho más amigable que la de versiones
anteriores.
Como un paso posterior a W95, Microsoft sacó el OSR1. Esta variante
implementaba un minikernel de NT el cual daba soporte al nuevo bus USB.
Igualmente en este minikernel, se habrían posibilidades para la
implementación de otros tipos de drivers.
Por contraprestación, no todo iba a ser perfecto: el núcleo real de
ejecución de W95 (y posteriores: W98, SE y ME) es el subsistema de 16 bits:
USER, GDI y KERNEL reales de ejecución son los de 16 bits, y sus homónimos
de 32: USER32, GDI32 y KRNL32, no son más que capas de cebolla de
recubrimiento de los anteriores. Cualquier llamada al subsistema de 32 bits,
implica la llamada a la función real de 16 bits, y además, por desgracia,
estas llamadas se "serializan" utilizando un semáforo de entrada única.
Esta última imposición fue debida a que el código de 16 bits utilizado
(realmente el mismo de Windows 3.1), no era reentrante y no existía la
posibilidad de hacerlo reentrante.
La evolucion de W95, fue Windows 98. Como novedad en él, fue la
implementacion de la nueva tecnología de drivers WDM (Windows Driver Model).
Los fabricantes que optasen por utilizar esta tecnología se podían hacer
independientes del sistema operativo, ya que los drivers desarrollados con
WDM, si estaban correctamente desarrollados, funcionarían también en los
otros windos (NT).
Podemos decir que prácticamente, la serie W9X murió en W98. Tanto W98 SE
como ME, no aportan nada nuevo, excepto en ME donde la única novedad
aportada fue la utilidad System Restore y dicha utilidad fue la prueba que
posteriormente serviría para implemetarlo correctamente en el XP.
Una vez sacado el mercado W98 SE, Microsoft se planteó por primera vez la
evolución de todos los Windows a una serie única. En este momento, empezó a
estudiarse el sistema operativo que más tarde se denominó W2000.
Windows 2000 surgió en un principio con la idea de refundir todos los
Windows. Posteriormente se desestimó, haciendo evolucionar únicamente el NT
4 a un sistema más estable y totalmente PnP que fue Windows 2000 tal y como
veremos a continuación.
En este momento, fue cuando Microsoft decidió sacar el último Windows de la
serie 9X: el Windows ME. Realmente, bajo mi punto de vista, Windows ME no ha
sido más que un experimento de diversas técnicas nuevas de cara a la
implementación real de la convergencia de los Windows: Windows XP.
WINDOWS 2000
------------------------
Una vez probadas por Microsoft las nuevas características de Plug and Play
en la serie W9X, y una vez probada la estabilidad de núcleo de Windows NT,
Microsoft considera que ha llegado el momento de integrar todo en un único
sistema operativo.
Inicialmente, Windows 2000 se gestó como el sucesor y el integrador de todos
los Windows. La idea original pasaba por incorporar en Windows 2000 las
'features' de PnP y resto de subsistemas probados y experimentados en la
serie de Windows al consumo (9X). A lo largo de la fase beta de W2000,
Microsoft se replanteó la posicion anterior, entiendo que correctamente, ya
que el mercado no estaba preparado todavía para una transición completa a
núcleo NT, y por tanto, el producto final que salió al mercado, siguió
siendo un NT puro (mejorado en muchísimas características).
En este impass, fué cuando Microsoft desarrolló simultaneamente Windows ME
como sucesor último de la serie de 16 bits. De paso, sirvió para probar
tecnologías (System Restore, soporte básico a nuevos dispositivos como por
ejemplo uPnP y USB 2.0) las cuales deberían integrarse en los próximos
sistemas operativos.
Por su parte, Windows 2000, no solo integró las nuevas tecnologías de
soporte a hardware (PnP) realmente completo, sino que además integró y
mejoró las funcionalidades definidas por las normas ACPI.
Las características ACPI no son de Microsoft, sino que es un estandar de
mercado en cuya definición, participaron entre otros Compaq, Intel y
Microsoft, y a las cuales los fabricantes de placas madre, llegaron al
acuerdo de poner como fecha el 1 de Diciembre de 1998 para que todas sus
nuevas placas madre se ajustasen a dicha normativa. La experiencia nos ha
demostrado posteriormente que esto no ha sido verdad y que muchas de las
actuales placas madre, dejan mucho que desear con respecto al cumplimiento
de dicha norma. Pero en la actualidad, al menos los grandes fabricantes, se
ajustan bastante bien a las características ACPI.
Otra de las grandes innovaciones en Windows 2000 fue el desarrollo del
Active Directory. Realmente, la idea tampoco fue de Microsoft, sino que fue
una implantación mejorada del servicio de Directorio de Novel.
Los servicios basados en la nueva filosofía del Directorio Activo, se
ajustan más de cara al mundo real a la estrucutra de una organización. Bajo
mi punto de vista, la implementación no fue del todo completa (quizá las
prisas por sacar el producto al mercado). Dicha implementación ha sido
corregida (y mejorada) en las versiones de Windows .NET que están en la
actualidad en fase de pruebas.
En este punto de la historia, es cuando ya es necesario abandonar
definitivamente los desarrollos en 16 bits y plantearse seriamente la
integración en un único sistema operativo. Las tecnologías básicas ya
estaban probadas y funcionando, por lo que Microsoft se embarcó en el
proyecto que originalmente fue llamado Whistler.
WINDOWS XP y WINDOWS .NET
-------------------------------------------------
La evolución final de W2000 y la integración con algunos de los subsistemas
probados con éxito en Windows ME, así como la corrección de errores de
W2000, ha sido Windows XP.
Evidentemente, Microsoft, para hacer que el gran público de consumo aceptase
este sistema operativo, debía ofrecer un producto de características
extraordinarias ya que algo se iba a perder: parte (poca) del software
antiguo que accedía directamente al hardware, no podía funcionar en un
sistema operativo con nucleo NT.
La apuesta de cambio, pasó por el desarrollo de una nueva "imagen".
Realmente al principio, dicha imagen "choca". Pero el cambio se asume
rápidamente y la imagen del escritorio, así como sus nuevos efectos visuales
se aceptan pronto. Igualmente, había que dar nuevas funcionalidades que
hiciesen que el usuario domestico se sintiese más a gusto con Windows XP.
Entre ellas, una mejora de la capacidad multimedia, capacidad de grabación
básica de CD's, cortafuegos personal, soporte de voz (para versiones USA) y
otras decenas de funcionalidades que hiciesen a XP un producto apetecible.
Pero no todo van a ser alabanzas. Hay una cosa que por el momento no me
gusta. El desarrollo de Whistler ha desembocado en dos versiones con el
mismo nucleo: la serie XP y la serie .NET.
Esta última, está todavía en fase de desarrollo y corresponde a las
versiones servidoras de XP (es decir, la evolución de W2000 Server, Advanced
Server y Datacenter, en cuatro versiones .NET: Server Web, Standard Web,
Enterprise Web y Datacenter).
Por tanto, aparentemente, Microsoft ha decidido desintegrar de nuevo su
aparente integración de Windows al sacar al mercado dos caminos totalmente
diferentes del sistema operativo. Aunque es verdad que están orientados a
segmentos diferentes del mercado, a nivel personal no me gusta la idea de
esta separación. Evidentemente, y sirva esto como crítica constructiva,
espero que Microsoft no utilice este nuevo software del sistema (Windows XP)
para experimentar las posteriores implementaciones en la rama alta del
mercado (.NET).
Recemos para que esta vez no sea así.......
--
Jose Manuel Tella Llop
MS MVP - DTS
jmtella@compuserve.com
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)