Академический Документы
Профессиональный Документы
Культура Документы
Bueno.... esto puede ser un tema inmenso y voy a intentar escribirlo. Con esto quiero decir que esto
promete ser una "saga" que ir escribiendo poco a poco y que intentar que no se haga "pesada" y
por tanto intentar no entrar en detalles tcnicos. Por ello, ruego a los "tcnicos" que me concedan
la licencia de intentar expresarlo de la manera mas sencilla, y con ejemplos que no "son" del todo
verdad tcnicamente, pero que se aproximan a lo que queremos explicar.
INTRODUCCION
Antes de ponernos en tarea, meditemos un poco sobre nuestros hijos, por ejemplo (quien los tenga).
Nuestro hijo, no ser quiz el mejor, el mas guapo, el mas listo y el mas atltico de su clase. Pero s
nuestro hijo y lo conocemos perfectamente. Sabemos de que pi cojea y sabemos como podemos
orientarlo...
Bien, nuestro PC debe ser algo similar (salvando las distancias). No tiene porqu ser el mejor del
mercado, pero es "nuestro" PC, y por tanto, debemos conocerlo, y sabremos como "manejarlo"
antes situaciones extraas. Debemos perderlo el miedo. Conocer todo sobre l. No hace falta ser un
tcnico (no hace falta ser un medico para saber sobre la salud de nuestro hijo), simplemente unos
conocimientos superficiales y perderle el miedo....
Acabamos de pulsar el botn de encendido. y que pasa?.. bien, nada mas encender el ordenador, se
empieza a ejecutar un programa que est grabado internamente en nuestro PC. La maquina lo que
hace es ir a una determinada posicin de la memoria, y lo que est all se lo da directamente al
procesador para que empiece a ejecutarlo.
Por tanto, nuestra "memoria" del PC, no est tan vaca como parece.... algo debe contener. Este
algo es un programa que reside en un chip de memoria llamado BIOS ROM y que al encender el
PC, ocupa un posicin FIJA de memoria en cualquier PC. Siempre la misma.
BIOS
Debemos pensar que realmente en el mundo, hay bastantes fabricantes de placas madre. Y muy
pocos fabricantes de BIOS. Los fabricantes de BIOS (Award, AMI, Phoenix, etc.) lo que tienen son
unos modelos de bios semi-estandard (por ejemplo la versin 4.51 PG de Award) y lo que hacen,
bajo pedido del fabricante de la placa madre, es adaptar "su" estndar de bios, a "esa" placa madre.
Por tanto, fijmonos que la versin 4.51 PG de Award, se ejecuta en muchas maquinas totalmente
diferentes, y resulta que la bios es totalmente diferente. Es especifica para "esa" placa madre (y de
cara al exterior, lo que pasa es que cumple la funcionalidad de la 4.51 PG - que ser una norma
interna fijada por el fabricante de la bios -).
Por eso, y por ser un programa, cuando hablamos de "actualizar" la bios, podemos efectivamente
"sustituirlo" por una versin superior. Pero, para ello, debemos buscar la "versin" de la bios 4.51
PG de Award para "nuestra" placa madre. Y nicamente, podremos buscarlo en el web del
fabricante de "nuestra" placa madre. S el fabricante es una marca "puntera" se preocupar de pedir
1
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
a Award revisiones y mejoras de sus bios. Si es una marcar "cutre", pues probablemente la placa
madre "muera" con la misma revisin de la bios que tenamos al adquirirla.
Y ahora una pregunta por qu se llama ROM? ROM quiere decir "Real Only Memory", es decir
"Memoria de Solo Lectura", y si es de solo lectura cmo podemos actualizar la bios?. Bueno,.... en
un principio, las ROM eran de solo lectura. Actualmente el termino ROM es un poco mas amplio:
se entiende por ROM aquella memoria que cuando se apaga de la corriente, no tiene perdida de
datos, y por tanto es susceptible adems de ser actualizable (memorias de tipo EPROM). Por tanto
con un programa especifico podremos actualizarlo.
Esto tiene un problema: s existen programas capaces de actualizarla, no podrn existir virus que
sean capaces de borrarla?.... Pues por desgracia: si. Y tiene muy malas soluciones el tema.
Pensemos que si nuestra bios est daada, bien por un virus, o bien porque hemos intentado
actualizarla y se ha ido la corriente en ese momento, o bien porque nos hemos equivocado y hemos
bajado del web un archivo de actualizacin que no es para nuestro "exacto" modelo de placa
madre... en ese caso, nuestro ordenador no volver a la vida. Es ms, ni se iluminar la pantalla, ni
har intento de arrancar de disco o desde disquete. Nada: muerto.
Las BIOS son configurables. Es decir podemos entrar en una serie de pantallas al iniciar el
ordenador para poner o quitar algunos parmetros que puede hacer que nuestra maquina responda
mejor ante un determinado hardware, o determinado sistema operativo. En muchas de las BIOS,
podemos entrar justo nada mas encender el ordenador, pulsando la tecla "DEL" (borrar) o la tecla
"ESC". Otras bios pueden requerir otra combinacin de teclas.
CONFIGURACION DE LA BIOS
Siempre es aconsejable, nada mas adquirir un ordenador, el entrar en la BIOS y apuntarnos TODO
lo que tienen las pantallas de definicin. En ciertas maquinas (y adems, con ciertas impresoras), la
tecla "Imprimir Pantalla" funciona. Pero no suele ser lo habitual, por lo que nos tendremos que
armar de paciencia, bolgrafo y papel, y a escribir....
En principio, no se debe andar toqueteando en la bios, pero es conveniente intentar dejarla lo mas
acorde con las necesidades de nuestro sistema operativo. Hay que recordar que el MSDOS y todas
las versiones de Windows (excepto el NT), se apoyan "excesivamente" en la bios.
Recordemos los parmetros que podemos tocar (sin apenas riesgo) y adems que es conveniente
tocarlos:
Puerto paralelo: se debe intentar definir (pongo las opciones de "mejor" a "peor")
EPP
SPP
2
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Esto no quiere decir que sea lo mejor para nuestro sistema. Depender de que dispositivos
tengamos en el puerto paralelo. Existen impresoras (pocas) que nicamente funcionan e modo EPP
puro (no sirve ECP+EPP), y existen algunos scanner que tambin les sucede lo mismo. Es solo
cuestin de probar cual se adapta mejor a nuestro sistema. Pero para ser un poco ordenados por
qu no probar por el orden que he dado antes?
Pantalla PnP:
Bien, esto puede ser un mundo. En principio, muchas BIOS preguntan como primera opcin:
Pues aunque parezca mentira, mi consejo es poner NO. (al menos con win98 en Espaol. Con
Win98 en Ingls da igual lo que pongamos, pero el Espaol, tiene un "bug" en este sentido. Bug
que no aparece en "todas" las placas madre, pero s en un numero alto de ellas, y sobre todo si
tenemos dispositivos PnP ISA - mas adelante hablaremos de ello-)
Y luego, en esta pantalla, casi todas las bios, nos permiten poner IRQ por IRQ, si en PnP, o PCI, o
Legacy ISA o simplemente ISA. Estas opciones depeneden de cada bios. En principio no tocarlo, y
posteriormente cuando veamos los "BUSES" y posibles conflictos de dispositivos, veremos para
que pueden servir.
Importantisimo: aqu tenemos que poner Power Management: "Enabled" y posteriormente todos los
timer (contadores de tiempo) para los distintos modos (suspender -suspend-, dormir -sleep-, etc...),
dejarlos a "cero" o "disabled". De esta manera, windows podr establecer sus propios contadores y
no entrar en posible conflicto con la bios.
Igualmente, hay ciertas bios que en dicha pantalla pregunta por ACPI (enabled/disabled). ACPI es
una caracterstica de control "avanzado" del sistema. Mi consejo, si vuestra lo bios lo pregunta es
que pongis activo "siempre" el modo ACPI. Mas adelante hablaremos tambin de l, en la
instalacin del sistema operativo.
** Con esto, ya hemos realizado una tarea "importante". La tarea, fijaros que no es configurar la
bios como he comentado antes. Sino ESCRIBIR como est la bios por defecto (al adquirir nuestro
PC) y que se supone, que mejor o pero, nuestro sistema operativo, al menos funciona.
Antes de ver que hace el programa de la bios hasta arrancar nuestro sistema operativo, debemos
conocer un poco de hardware. Que nos suenen un poco los temas.....
QUINCALLERIA (HARDWARE)
Bueno, al menos, ya nos suenan tres cosas: CPU, memoria (por la "pasta" que tenemos que pagar
por ella, aunque no est muy clara su funcin todava) y BIOS.
Pero que mas hay en la placa madre? Vamos a enumerar un poco, como si realmente existiesen
estos componentes por separado. Digo como si existiesen porque actualmente dichos componentes,
la mayora estn "embebidos" en algn chip multifuncion de la placa madre. Pero existir: existen.
Enumeremos un poco:
3
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
4) BUS USB
2) Chip de DMA.
Y luego otra serie de "cosas" de las que hemos odo hablar: puertos, IRQs, etc.....
DISPOSITIVOS
Vamos a definir los "dispositivos" como el resto del hardware independiente de la CPU y memoria
con los que la CPU interactua.
Vemos a empezar por la CPU y memoria y luego veremos con detalle el resto de "perifricos".
Recordemos que no nos queda ms remedio que ceirnos a la historia. Al ao 82.
CPU
La primera CPU con una arquitectura de 16 bits que triunf en el mercado (que conste que no era la
nica arquitectura existente en sus aos), fue el 8086 de Intel.
Su triunfo, al igual que el del Windows actual, fue una decisin de un gigante del hardware: IBM, y
un montn de suerte de una persona que empezaba en aquel momento: Billy Gates.
Hagamos historia. IBM hasta ese momento estaba dedicado a los grandes ordenadores
(mainframes) y bajo el supuesto de que empezaba a surgir un mercado potencial (la
microinformatica) decidi empezar a dedicarse a este mercado. Para ello encarg a Intel el diseo
(mejor dicho, la mejora de un antiguo 8008 - equivalente a un Z80) de un procesador de 16 bits. Y
abri publica subasta (por decirlo de alguna manera), sobre un futuro sistema operativo para dicha
arquitectura.
El propio IBM defini las caractersticas bsicas de las placas madre: el bus PC que rpidamente
evolucion al bus AT, y que por desgracia todava seguimos sufriendo.
4
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Con respecto al software, en aquellos aos existan unos sistemas operativos serios para los
ordenadores de 8 bits que empezaban a surgir. Decimos sistemas operativos "serios" porque
realmente lo eran para su poca. Estamos hablando del CPM cuya propiedad intelectual era de
Digital.
En la propia Digital, una vez abierta la "subasta" (y la apuesta) por parte de IBM para el futuro
sistema operativo de 16 bits, empezaron a desarrollarse dos proyectos: el CPM 86 (o "concurrent"
CPM) y un sistema basado en DOS.
En las fases finales del desarrollo, Digital "apost" por el CCPM (o CMP 86, o Concurrent CPM,
como queramos llamarlo), y abandon el proyecto basado en el DOS.
Pero Digital era (y sigue siendo) una Empresa "curiosa" con sus ingenieros de Software. El
ingeniero de Software tiene la "patente" de lo que desarrolle dentro de la Empresa (esta
caracterstica la hace nica en el mundo del software), y una vez implementado un producto de
ingeniera, el equipo, o la persona que lo ha desarrollado percibe "royaltis" por cada venta, al igual
que la propia empresa. Y si esta persona se va de la Empresa, se va con su "patente" o su "parte de
la patente" o sus derechos, y sobre todo si el producto ha sido desechado por la propia empresa se
lleva completamente "su" desarrollo y "su" propiedad intelectual.
Y este fue el caso. El ingeniero de Digital encargado del proyecto DOS se fue (o bien "cabreado", o
bien por una oferta que le hizo nuestro avispado Gates). Y nuestro avispado Gates, hizo una carrera
contra-reloj para tener finalizado su primer MsDOS (versin 1.0) seis meses antes de que Digital
finalizase su CCPM.
IBM tenia prisa por sacar el producto al mercado. Y form alianza con la incipiente Microsoft para
empezar a implementar el MsDOS (PCDOS) en sus ordenadores.
Fue una decisin acertada?. Personalmente creo que no. Pensemos que el incipiente CCPM ya era
capaz de soportar multitarea (hasta 4 tareas) en modo consola (no exista todava interfaz grfica) -
Por cierto, todava lo tengo y funciona!!!-.
Fue una triple decisin de IBM, que nos condiciona hasta el momento actual:
1. Se defini una arquitectura (bus PC que evolucion inmediatamente hasta el bus AT. Este bus
AT bsicamente se sigue conservando en nuestros actuales PCs y condiciona un montn de
cosas que iremos viendo en estos captulos)
Y de all surge la todava frase hecha: "ordenador COMPATIBLE". Pero compatible con que?
pues compatible IBM. Con los aos se ha perdido la palabra IBM.
Y surge la frase CPU compatible. con qu? pues con la arquitectura X86 de Intel.
** Bien, repasemos un poco dicha CPU. Como todas las CPUs tiene un montn de "patitas", ests
se agrupan lgicamente en las siguientes funcionalidades:
a. "patitas" de DATOS
5
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
b. de DIRECCIONES
c. de CONTROL
Es decir, los buses que salen directamente de la CPU, son de "datos" de "direcciones" y de
"control". Para escribir un dato en memoria, es necesario enviar el dato y "adems" enviar su
direccin. Y el bus de "control", es para comunicarse con el resto "del mundo", con los perifricos,
con la circuiteria externa, etc....
Esta primera CPU, tenia nicamente 20 "patitas" de direcciones. Y adems los registros generales
(todas las CPUs tienen una serie de registros generales internos con los que saben hacer ciertas
operaciones) eran de 16 bits.
Por tanto con 16 bits en principio, solo se podan direccionar 2 elevado a la 16 direcciones. Es decir
64 Kbs de memoria.
Intel, introdujo en esa CPU, el concepto de "segmentacin" (concepto por el que todava seguimos
pagando "muy caro", muchas, demasiadas "malas herencias").
El concepto de "segmentacin, consiste en utilizar 2 registros generales para formar una direccin
fsica. Un registro llamado "segmento" (o base) y un registro llamado "desplazamiento" (offset).
Bien, recordemos que 16 bits, son realmente 16 unos y ceros puestos a continuacin. Agrupmoslos
en grupos de 4 bits. Esto forma 4 grupos de 4 bits. Cada grupo de 4 bits, puede tener los valores:
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
6
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
1110 E
1111 F
En total 16 valores. Por abreviar, podemos representar cada grupo de 4 bites, con el numero o la
letra que he puesto a continuacin. Esta es la representacin hexadecimal (base 16).
Recordemos que hay 4 grupos de 4 bits, es decir, puesto entonces en representacin hexadecimal un
registro, puede tener el contenido 01A5 o bien 23EF, etc. Es decir desde el 0000 hasta el FFFF (en
total desde el numero cero al numero 2 elevado a 16 (menos 1 del cero), es decir 65535 o lo que es
lo mismo 64 Kbs.
En Espaa, utilizamos la palabra "octeto" en lugar de byte por una mala traduccin del francs que
fue quien implement esta palabra. Al igual, la palabra "ordenador" proviene de "ordinateur"
(francs). Y la palabra "cuarteto" como la mitad de un "octeto" (byte).
Pero como estamos limitados a 20 lineas de direcciones, tal y como comentabamos antes, se
defini, que la manera de "sumar" esos dos registros fuese, poniendo uno a continuzacion del otro y
desplazando el codigo de segmento un "cuarteto" (o "nible") aadiendolo un cero. Por tanto, por
ejemplo: (segmento A012, offset 2312)
Segmento: A0120
Offset 2312
Direccion A2432
Cinco "cuartetos" es decir 20 bits, por tanto se podian direccionar 10 elevado a 20 posiciones de
memoria: todo un "mega". Imposible pensar en un mega en aquel entonces !!!!
Curiosamente hay que fijarse que la manera de construir esto 20 bites, no es unica. Es deir, la
misma solucion, nos podra haber dado por ejemplo:
Segmento A0000
Offset 2432
Direccion A2432
(esto ya nos puede empezar a dar los problemas de que con dos direcciones de segmento diferentes,
se "alcanzan" posiciones de memoria iguales. Por tanto puedo "machacar" desde una direccion de
segmento, otra direccion que "teoricamente" pertenece a "otro" segmento.... malo de cara a
programacion no?)
A este modo de funcionamiento, es lo que ahora llamamos modo "real" del procesador y a ese
mega, es lo que llamamos memoria "real" del procesador.
7
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Y ademas por definicion, cualquier "compatible" (y los actuales lo sn), su CPU, arranca siempre
en modo REAL. Es decir, al encender un ordenador actual (PIII por ejemplo), su funcionamiento es
"exactamente" igual al funcionamiento del 8086 primitivo. Pero *EXACTAMENTE* igual.
Las CPUs actuales, no han sido ms que una evolucion de esta primitiva. Poco despues de nacer el
8086, surgi ya el 80286 capaz de direccionar 16 megas de memoria. Dur muy poco, ya que fu
una transicin al 80386. El famoso 386 con el cual se conserva actualmente compatibilidad
absoluta (excepto una y solo una nueva instruccion en el Pentium). Por tanto la arquitectura actual
se la llama tambien arquitectura 386. El 386, tena (tiene) un nuevo modo de funcionamiento. El
modo "protegido", ademas del modo "real" y otro modo hibrido entre ellos, que es el modo "Virtual
8086".
Sepamos simplemente que por compatibilidad hacia abajo, el modo real sigue limitado al famoso
"mega" inicial, y el modo protegido ya es capaz de ver toda la memoria.
Igualmente recordemos que los registros generales de la CPU, pasan a ser de 32 bits. (excepto los
de segmento que siguen en 16).
Por tanto con una direccion de 32 bits, podemos direccionar 4 gigas de memoria (2 elevado a la
32).
Por compatibilidad, la parte inferior de los 32 bits (los 16 bits inferiores) de cada registro,
corresponden a los antiguos registros del 8086.
Los registros generales, podian haberse numerado por ejemplo R0, R1, R2...., tal y como sucede en
otras arquitecturas. Pero Intel decidi ponerles "nombre" y ademas, que en ciertas operaciones
aritmeticas, fuese obligatorio realizarlos unicamente con ciertos registros y no con todos. Los
nombres, fueron tambien tan "raritos" como AX, BX, CX, DX, SI, DI, SP, CS, IP, ES, SS, DS. Y
estos son los unicos registros con los que se puede operar.
El Pentium, solo se distingue de sus predecesores en que tiene una instruccion "ms". una sola: el
"cpmexchg" es decir: compara dos registros y en funcion de la comparacin, los intercambia entre
s. Por compatibilidad hacia abajo, "tampoco" la utilizan los sistemas operativos, ya que si no,
tampoco funcionaria dicho sistema en una CPU anterior.
Posterirmente surgi, el Pentium Pro, que basicamente es un pentium optimizado para ejecutar
codigo "puro" de 32 bits, pero que se queda ridiculo cuando se le mete codigo de 16. Para solventar
esto, naci el PII, que basicamente es un Pentium Pro mejorado para codigo de 16 bits y que
ademas se le incorpora de base la tecnologia MMX.
8
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Y por ultimo estamos en el PIII. La unica diferencia es que se amplia el juego de instrucciones
MMX a las llamadas MMX avanzadas.
** Internamente existen muchas diferencias para "acelerar" la CPU. En las primeras CPUs, una
instruccion maquina, por ejemplo ADD AX,3 (suma 3 al registro general AX), representaba 3
ciclos de reloj. Tengamos presente que un procesador a 25 MHz (de los 386 primitivos), tena 25
millones de ciclos de reloj por segundo).
Segun han ido evoluvionando, en los Pentium, esta instruccion utiliza un solo ciclo de reloj (y
encima los pentium, pueden llegar ya a 500 millones de cilos de reloj por segundo), y ademas, en el
pentium, en "ese" ciclo de reloj, se est utilizando tecnica de "pipeline" (como las fotocopiadoras),
es decir aunque este procesando una instruccion, est preparando otra - en total hasta 5
simultaneamente. (en una fotocopiadora, mientras se est haciendo una fotocopia, el papel de la
siguiente fotocopia, ya est entrando en la maquina para acelerar el proceso. Esto es la tecnica de
"pipeline").
Ademas, para acelerar las CPUs, se ha incrementado su memoria cach de primer nivel, y ademas
se ha creado un "predictor de saltos" optimizado.
Pensemos que cada vez que un programa efectua un "salto", es decir, realiza una operacion del tipo:
"S esta fecha es mayor que 80, ejecuta la rutina tal y tal...". Bien, este condicional, es un "salto" en
las direcciones de memoria de programa. Cada vez que se ejecuta un salto, lo que hay en la cach
de primer nivel, no sirve para nada. Es necesario vaciarla y cargarla con el nuevo codigo de
programa que empieza en donde apunta dicho "salto".
Por tanto, es necesario "invalidar" la cach y cargar desde la direccion que apunta el "salto" otra
vez en la cach. Esto es una operacion "costosa".
Solucion: y que tal, si tenemos un circuito inteligente dentro de la CPU que sea capaz de
"predecir" un salto, y por tanto se vaya encargando de invalidar la cach y cargarlo con lo que ha
"predicho"?. Pues genial, la unica condicion es que acierte lo mas posible. Si no, la CPU se nos
viene abajo.
Bueno, pues ahora, Intel tiene un juicio pendiente con la tecnologia ALPHA de Digital, por
"piratear" su predictor de saltos en la arquitectura "Alpha". (Aprentemente le juicio no va a
realizarse ya que Intel "ha comprado" toda la fabrica de desarrollo de los chips Alpha y su
tecnologia hace unos meses.... curioso, tambien no?)
Y otra cosa: fijaros que este predictor de saltos, es importantisimo. Esto es lo que realmente
"acelera" una CPU (aparte de la tecnologia "pipeline").
Y la pregunta del milln: la competencia de Intel, tiene suficientemente desarrollada este tipo de
tecnologia?. Personalmente opino que n. No existe ningun indice de velocidad que sea capaz de
medirnos esto, y esto, precisamente es lo que sucede en un programa real.
MEMORIA
Poco podemos contar de ella. Es donde se guardan los datos. La evolucion de ella, ha sido
unicamente respecto a la velocidad, y poco ms. Variantes:
9
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
EDO, DIMM, etc..... pero informaticamente, excepto la compatibilidad con nuestra placa madre, y
su velocidad, poco mas puede interesarnos.
Bien, llegado a este punto, y debido a las con-notaciones que tiene actualmente, es necesario
introducir un par de chips basicos que se definieron en las placas madre primigenias.
Son:
El controlador de Interrupciones
El controlador de DMA
Tan exactamente igual, que hasta la frecuencia de funcionamiento del chip de DMA sigue siento de
unos ridiculos 4 MHz, que quiz fuesen rapidos en su momento, pero que actualmente son ridiculos
comparados con el resto de funcionamiento de una placa madre.
(Recordad, entonces que hay que "huir" de los dispositivos que utilicen DMA, simplemente por su
lentitud -y bloqueos de la CPU-. Igualmente recordad que la DMA y la UDMA no tienen *nada*
que ver. Ya lo iremos viendo ms adelante).
Recordad que la CPU, tiene una serie de lineas de "control". Estas son las importantes para la
mayoria de los dispositivos.
Veamos las tres "unicas" maneras que tiene la CPU de "enterarse" o "recibir/enviar" datos a un
dispositivo. Antes de eso, vamos a introducir que realmente la CPU, solo tiene dos instrucciones
llamadas IN y OUT para poner un byte (o maximo, 2 bytes) en un "puerto". Y que un "puerto" no
es nada mas que una direccion de destino que tiene algun chip o dispositivo de la placa madre. Un
puerto, se direcciona con 2 bytes, es decir existe un maximo de 65535 puertos en un PC.
Bueno, ya ahora como podemos direccionar un dispositivos, al cual sabemos que por "hardware"
tiene un determinado (o determinados) puertos.
Perfecto!. Pero ahora como nos enteramos que el dispositivo ya tiene un dato preparado para que
lo leamos? Bueno, pues dos posiblidades:
10
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
bien, empezamos a leer (mediante OUT), de ese puerto hasta que exista un dato. Hala!, a lo
loco!, OUT->no hay dato?->OUT->no hay dato?->OUT.......
2) Es decir nos metemos en un bucle, sin hacer nada ms hasta encontrar el dato que nos dice el
manual. Pero.... si por desgracia falla el dispositivo, o hemos programado mal la peticion que
realizamos con el IN, pues... nos hemos metido en un "bucle" infinito. La CPU nunca tendr ese
dato y ademas la secuencia programada no se puede interrumpir....... malo, malo.
Una mejora de esta solucion, sera mira unicamente cada cierto tiempo. Se puede hacer que se mire
cada "tic" de reloj. Y ese "tic" de reloj interno lo podemos programar (exite tambien un circuito de
"timer" para estas cosas).
Bueno.... hemos mejorado, pero reconozcamos que estamos perdiendo mucho tiempo en "ver" si el
hardware nos responde.
Estas interrupciones, pueden ser interrupciones hardware, o bien interrupciones software, las
veremos tambien mas adelante.
** Y existe un tercer metodo para llevar ciertos tipos de datos desde un dispositivo hardware.
4) Imaginemos que tenemos un "chip" inteligente, y que somos capaces de decirle que una vez que
tenga LOS datos (digo "LOS", porque este chip admite programacion a nivel de decirle cuantos
queremos), nos los pase a una direccion de memoria prefijada sin necesidad de que la CPU
trabaje para nada. Esta es la tecnica DMA. Esta tecnica aparentemente genial tiene un
incoveniente (mejor dicho dos). Primero, cuando el chip va a pasar los datos a la memoria, o
desde la memoria, para asegurarse que nadie los toca, lo que hace es "desconectar" a la CPU del
bus. Y mientras est "desconectada" la CPU no hace nada. Sufre un "parn".
Bueno,... esto no era tan importante en la primera arquitectura del PC, con CPUs a 4,77 MHz, y una
DMA rapida (4 MHZ), este tipo de acceso simplificaba la programacion y ademas era mas rapida
que las tecnicas IN, OUT (tecnicas PIO). Pero por desgracia y para conservar la compatibilidad la
velocidad de la DMA sigue siendo la velocidad primitiva (4 MHZ), y ademas por el mismo motivo,
la DMA solo sabe hacer transferencias de 8 y 16 bits simultanemanete (cuando la memoria actual
se direcciona en un bus de 32). Y ademas, por desgracia, mientras est haciendo la transferencia
"interrumpe" a nuestro flamante PIII, que durante ese tiempo habra podido hacer cientos de miles
de operaciones en multitarea.
Bien retomando un poco el inicio de este capitulo, habiamos visto que existia el:
11
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Controlador programable de interrupciones. y que hace este "bicho"?,pues facil, lo que hace es
que cuando recibe una interrupcion, lo primero es enviar una seal a todo el hardware
"prohibiendo" que se emitan mas interrupciones, y posteriormente se la comunica a la CPU
mediante una linea de control especial (y unica!!). Se le llama "programable" ya que tiene la
posibilidad de que si recibe "simultaneamente" mas de una interrupcion, puede ordenararlas por las
prioridades que le haya programado el sistema operativo, para irselas dando a la CPU de una en
una.
Igualmente recordad, que como este controlador, ha prohibido las interrupciones, una vez que se ha
notificado a la CPU de esta intrrupcion y la CPU ha llamado a la rutina de servicio (driver) que
controla esta interrupcion, lo primero que tiene que hacer, en cuanto pueda, el "driver" es emitir una
instruccion STI, es decir informar a todo el sistema que ya est permitido de nuevo enviar
interrupciones.
Fijaros, lo "peligroso" que puede ser un driver mal programado, simplemente porque al
programador de turno se le olvida de vez en cuando el emitir una instruccion STI.
Bueno, pues tambien arrastramos aqu una desgraciada herencia. Solo se definieron 16 IRQs (y
ademas, no vectorizadas, por lo que en principio NO pueden compartirse. Ojo!!, he dicho en
"principio").
Y ademas de "pocas", pues mal distribuidas. De base, sin tener NADA en el PC, estn utilizadas:
IRQ 1 Teclado
IRQ 5 LIBRE
IRQ 9 LIBRE
IRQ 10 LIBRE
IRQ 11 LIBRE
IRQ 12 LIBRE
12
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Fiejmonos que en principio, solo quedan 5 libres. Pero.... si tenemos raton en puerto de ratn, este
utilizar la IRQ 12. Quedan 4. Si nuestra placa tiene bus USB, este necesita otra interrupcion, si
ademas tenemos bios ACPI, esta necesita otra interrupcion..... y la tarjeta de red, otra, etc,etc,etc,
Mala pinta tiene el asunto como para poder poner nuevas tarjetas no?
Vamos a introducir un poco los "buses" del sistema para dialogar con dispositivos. All veremos
como a pesar de las restricciones que aparecen por las pocas IRQs libres, podemos llegar a un ten
con ten con el hardware y el sistema operativo, para poder compartir al menos, alguna interrupcion
entre varios dispositivos.
Con esto de los "buses" debemos remitirnos otra vez a la "historia" de la evoluvion de las primeras
placas madre y su enlace con las actuales BIOS y el sistema en general.
Con esto ya podremos empezar a preguntarnos otra vez el tema del titulo de estos articulos: "Desde
que pulsamos el boton de arranque hasta..."
BUSES
Se conoce por BUS el conjunto de cables por los que circulan los datos de un dispositivo a otro o
de un dispositivo a la memoria y/o CPU.
Solo a modo de recordaorio, recordemos que cualquier tarjeta, tiene, o puede tener para
comunicarse con la CPU, un rango de puertos, una(s) posible(s) interrupciones y una(s) posibles
DMA(s).
BUS ISA
Empecemos otra vez por las "herencias". El primer bus que se implement en la arquitectura PC
fu el bus ISA. En un principio era de 8 bits y rapidamente evolucion a 16 bits.
Esto indica que cada vez, en cada ciclo de reloj, era capaz de poner un byte o 2 bytes en el bus. Y...
cuantos ciclos de reloj tiene el bus ISA?, pues 8,33 MHz es decir 8 millones de ciclos de reloj.
Tena esta frecuencia y la "sigue" teniendo (por el consabido motivo de compatibilidad descendente
las herencias pesan-).
Es decir el bus ISA con tarjetas de 16 bites, es capaz de soportar un maxion de 16 megas de
transferencia por segundo PARA todos los dispositivos.
13
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Bien, existan y siguen existiendo dos posibilidades principales. Esto es general para todas las
tarjetas, sean ISA, PCI, etc, pero vamos a empezar a hablar de ello en esta parte.
Un tarjeta, ademas de los consabidos puertos, irqs y DMs que pueda pillar (evidentemente de la
lista de "libres" que diamos con anterioridad, puede ser que tengo o no tenga su "propia" BIOS.
** En la arquitectura del primer PC, IBM, defini que la memoria principal del PC, podia llegar
hasta la direccion hexadecimal A000:0000 (es decir, recordando un poco, hasta el segmento A000,
offset 0). Siu pasamos esta dirteccion a Kbs nos d la increible capacidad de 640 Kbs os suena
esta cifra, no?.
Igualmente IBM defini las areas con los segmentos desde A000 a C000 como reservadas para los
buferes de video. Dfinini ifualmente el segento F000 hasta el final del mega para contener la
informacion de la BIOS de la placa madre, y dejo libre las direcciones C000 hasta F000 para
posibles BIOS de dispositivos y tarjetas que necesitasen su propia BIOS para funcionar.
Haciendo un mapa de la memora (referida a segmento y sabiendo que cada uno de estos ocupa 64
Kbs), tenemos:
0000
1000
2000
....
9000
.... Libre
(nota la zona B000 a B7FF es para la memoria grafica en modo monocromo y modo texto. La B800
a la BFFF es para la memoria grafica en como color y mod texto. Lo que normalmente se utiliza en
el modo MSDOS puro).
Bine, pues ahora a las BIOS de las tarjetas: la primera tarjeta y totalmente necesaria en nuestro PC
es la tarjeta grafica o de video. Esta tarjeta "siempre" tiene BIOS, y normalmente de 32 Kbs, y
normalmente ocupa las direcciones desde C000 a C7FF. No es obligatorio, no est escrito, pero es
una norma no escrita que practicamente siguen todos los fabricantes de tarjetas de video.
14
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Como tal BIOS, incluso es actualizable. Al menos las de las tarjetas "buenas". (Matrox, etc...).
Recordad que en principio cualquier bios se puede actualizar y a veces, en las tarjetas graficas, ha
sido obligado para soportar alguna de las normas del ActiveX de windows).
En principio, ahora ya sabemos las cuatro posibles cosas que puede "tener" una tarjeta:
2) Puertos
3) IRQs
4) DMAs.
** Alguno de las 4 "cosas" anteriores (o cualquier combinacion de ellas) se necesitan para que la
tarjeta sirva para algo.
Y ahora ciendonos a nuestro caso del BUS ISA. como se asignaban las IRQs, los ports, etc, en
aquel entonces?. Recordad que no exista la norma PnP (Plug and Play, Plug and Pray para otros).
Pues medinate switches. Asi de facil. Era responsabilidad nuestra saber que IRQs o prots teniamos
libres y mediante switches se configuraba la tarjeta.
Bueno, se configuraba lo que se poda. Cada fabricante escogia al azar un conjunto de puerto y/o
IRQs de funcionamiento de su tarjeta y t lo instalabas. Pero claro, si queras aadir otra tarjeta, era
responsabilidad tuya que no "chocasen" entre ellas. Y a lo mejor, el nuevo fabricante, no te daba
opciones. Resulta que los posibles puertos de tu nueva tarjeta, ya estaban siendo utilizados por otra.
Y a lo mejor teniamos que utilizar una u otra. No podiamos instalar ambas a la vez.
Curioso y diro el tema, no?. Antes de comprar habia que leerse con lupa que IRQs podia utilizar y
que puertos y que DMAs y que direcciones poda pillar la posible BIOS. Llevar en el bolsillo, los
uqe ya tenias utilizados con las otras placas, y ver, antes, si era posible instalar esa nueva.....
Bien una vez instalada y asignadas (a mano) las IRQs y ports, etc, pues ya teniamos nuestra
flamante tarjeta. Pero ya nos teniamos que olvidar de la IRQ o de la DMA "sacrificada".
(como nota curiosa, todas las bios empiezan por los caracteres hexadecimales AA55. Las rutinas
llamadas de POST de la bios de nuestro PC, lo que hacen es recorrese al encender el PC, la
memoria comprendida dentre C000 y F000, en bloques de 2 Kbs en 2 Kbs y ver si all se encuentra
esos caracteres hexadecimales. Si se encuentra, ya sabe que es una BIOS)
(y como otra nota curiosa, recordad que antes hemos hablado de tarjetas ISA de 8 bits y 16 bits.
Esto implica que hay tarjetas "mas cortas" que lo que es el bus en donde se pinchan. No pasa nada.
Pueden pincharse ya que el bus ISA actual soporta ambos formatos de tarjeta).
BUS PCI
15
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Surgi mucho mas tarde. Es relativmente joven (vamos a saltarnos aqu una serie de buses
intermedios -EISA y VESA- que ya carecen de sentido).
La norma PCI, indica que un bus PCI es unicamente de 4 slots (pero permite saltarse la norma e
instalar mas slots en grupos de hasta 4 ms, mediante un "bridge" -puente- "PCI to PCI").
Igualmente la norma define al bus PCI como un bus de 32 bites a 33 Mhz. Esto implica una
velocidad de transferencia de 4 * 33 = 133 Megas por segundo.
Igualmente, define las IRQs que pueden utilizarse como IRQs de dos tipos: "level" (por nivel) y
"edge" (esquinado). Precisamente este ultimo tipo:
"edge", es el que permitir cuando surgi la norma PnP, el poder compartir una IRQ con mas de un
dispositivo!... ya era hora no?. Lo veremos en cuanto tengamos definidos todos los buses.
Esto ultimo, ya empieza a parecer un poco mas serio. Ya nos empieza a abrir las posibilidades del
PC un poco ms del "corset" que teniamos hasta ese momento. Pero de paso, empieza a complicarle
la vida a la BIOS de la placa madre. En ese momento, fu cuando las BIOS, pasaron de ser una
cosa "tonta" y practicamente "la misma" para todas las placas madre, a tener su "propia vida" y ser
capaz de identificar los dispositivos. Complicaron la existencia a los fabricantes de BIOS....
BUS AGP
Es completamente nuevo. Unicamente consta de 1 slot, y est pensado para graficos a alta
velocidad. No es importante llevar un chequeo de la integridad de los bites en este bus (ya que si se
pierde un bit de un grafico en un instante dado, ni se nota). Lo unico importante aqu es la
velocidad. Existen varios estandares 1X, 2X, 4X Y en general se v a llegar a utilizar la misma
frecuencia que el BUS de la placa madre.
Con esto, actualmente se consiguen tasas de transferencia de 500 Megas por segundo.
*) El BUS AGP se inicializa "despues" del BUS PCI. Esto para respetar al pie de la letra la norma
PCI. Por tanto, si tenemos dos tarjetas graficas, una PCI y otra AGP, siempre ser la tarjeta
primaria la PCI (teoricamente ms lenta que la AGP).
Pero como las normas estan hechas precisamente para saltarselas, pues ciertos fabricantes de bios,
empezaron a poner la pregunta "Primary AGP/PCI o PCI/AGP" en la configuracion de la bios para
saltarse esta secuencia. Pero repito: no es un estandar, por tanto nuestra BIOS, pudiera no tener esa
opcion.
Bin, hasta aqu hemos visto los posibles "buses" incorporados en nuestra placa madre. Queda
todavia por ver el bus SCSI. Debido a que este ultimo, no es nada ms que una tarjeta SCSI de la
cual salen un nuevo bus, podemos abordar el tema de Plug and Play en este momento y dejar para
mas adelante el SCSI.
16
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Hasta ahora, las tarjetas que hemos visto, haba que configurarlas "a mano".
Teniamos que asignarlas una IRQ de la lista que teniamos "libre" (recordad que en principio solo
tenemos la IRQ 5, 9, 10, y 11 -y puede que la 12 dependiendo si en la bios se la hemos asignado o
n a un posible ratn en puerto de ratn-)
Evidentemente este conjunto de IRQs libres empieza a quedarse excaso, maxime cuando en la
actualizada todo el mundo tiene tarjeta de sonido la cual nos va a pillar otra IRQ, y probablemente
la tarjeta de video nos va a solicitar otra. Evidentemente entonces para que queremos slots libres y
para que otros dispositivos, si aparentemente no vamos a poder instalarlos?.
** Bueno, algo "nos salva". Recordad que habiamos comentado que el bus PCI fu diseado para
poder "pillar" las IRQs de dos modos "level" y "edge". En principio entonces, el bus PCI (y AGP),
ha sido diseado para poder compartir interrupciones. Ahora solo queda el definir el como
compartirlas.
Igualmente debemos recordar que "por diseo" el bus ISA no puede compartir las IRQs y ademas,
debemos recordar que las IRQs asignadas a los puertos serie, paralelo y controladores de disco y
disquete (es decir IRQ 3, 4, 6, 7, 14, y 15) y las del sistema (IRQ 0, 1, 2, 8, 13) tampoco pueden
compartirse. Y si adems tenemos raton en puerto de ratn, o nuestra bios se lo asigna SIEMPRE a
un posible puerto de ratn, la IRQ 12 *tampoco* podr compartirse.
Igulamente quiero resaltar que en las IRQs "fijas" hay alguna matizacin:
a) Los puertos COM1 y COM2 /serie), necesitan una IRQ. Lo "normal" es que la bios le d la 4 y
la 3 respectivamente. Pero en ciertas bios PnP, la propia bios puede decidir (o puede ser
configurada) para que le d otra. Si el puerto no tiene IRQ no funcionar. Igualmente si el
puerto tiene conflicto con la IRQ porque la "pilla" otro dispositivo, tampoco funcionar.
b) La IRQ del puerto paralelo (normalmente la 7, pero estamos en un caso similar al anterior, con
respecto a que la bios puede darle otra), puede ser que no sea necesara. En win95 / win98,
"siempre" la bios le asigna una IRQ y por tanto windows la utiliza (y los drivers de impresion la
necesitan). En Windows NT (y windows 2000), esto no es necesario. NT y 2000 "pasan" de la
bios, y los drivers de impresion no lo necesitan. Lo gestionan mediante tecnica de "pool" y
liberan al sistema una IRQ que puede ser preciosa.
Pero esto no es lo normal y por tanto somos nosotros responsables de informrle a la propia bios.
** He repetido los conceptos anteriores que ya habiamos visto para tenerlos frescos en este
momento. Vamos a para entonces a hablar realmente del PnP.
En windows 95, Microsoft prepar una especificacion del PnP. No vamos a entrar en detalles
tecnicos, unicamente conceptuales. En resumen, la especificacion PnP es la siguiente:
1) Cada fabricante de perifericos PnP tiene asignado un numero identificativo unico en el mundo.
17
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
2) Los fabricantes son responsables de "numerar" sus dispositivos. Es decr una tarjeta suya tedr
en numero 1, otra el 2, etc. Numeros UNICOS.
3) Los dispositivos se agrupan por "funcionalidades" (dispositivos de "Mass Storage" para los de
acceso a disco, "Video" para los de video, "Multimedia Device" para los multimedia, etc.... es
decir hay una clasificacion.
5) Existe una "norma" estandar para preguntar al dispositivo que IRQs le "gustara" y "puede"
utilizar (tanto en plan exclusivo como "compartidas", si fuesen dispositivos PCI). Y cuantas
"Necesita". Lo mismo para los puertos y lo mismo para la DMA. Es decir, preguntandole al
dispositivo, este es capaz de informarnos que quiere y que posibilidades tiene.
7) La propia BIOS, es "lista". En principio "ve" que dispositivos tiene la placa madre y le d las
IRQs del sitema FIJAS que hemos comentado antes.
7.1 Asigna las IRQs fijas a los elementos incorporados en la placa madre. (puertos serie, paralelo,
raton, etc)
7.2 Mira en la tabla (que es modificable por nosotros entrando en la bios), a ver si alguna IRQ,
nosotros la hemos bloqueado (es decir, en la bios le hemos marcado, por el motivo que sea, que la
IRQ 10, por ejemplo, es una IRQ ISA o "Legacy ISA"). Si la tenemos marcada as, la ignora en su
lista de asignacion a dispositivos PnP.
7.3 En este momento tiene la bios una linsta de IRQs que le quedan librs.
7.4 Se recorre el bus ISA y "pregunta" a cada tarjeta s es o n, PnP. Y si es PnP que necesita y que
posibilidades alternativas le d. Posteriormente selecciona una IRQ de "su" lista de "libres" y le
informa al dispositivo de que esa IRQ es para l. Y SOLO PARA l. (Recordad que la IRQ ISA no
se pueden compartir. Por tanto se la d a un dispositivo y la borra de su lista de IRQs libre).
7.5 Cuando termina con el bus ISA, empieza con el bus PCI y AGP. Se recorre igualmente estos
buses preguntando a los dispositivos lo mismo con respecto a las IRQs. Y ahora les va asignando
las libres. Como las IRQs de las PCI, normalmente son "edge", es decir, se pueden compartir,
cuando la bios termina con su "lista" de libres, vuelve a asignar otra vez el comienzo de su lista al
dispositivo siguiente. Es decir "comparte la IRQ).
8) Lo anterior, no implica que el dispositivo funcione. Implica unicamente que ahora el dispositivo
"sabe" y la bios "sabe", que "debe" utilizar. Pero ahora queda que el sistema operativo lo
soporte. Este es el caso de w95 / w98. El MsDOS y el w3.1 *no* soportan IRQs compartidas. Y
18
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Y ahora que posible uso, o que posibles conclusiones debemos sacar de lo anterior?....
** Bien, en principo, y lo primero es saber si las tarjetas que tenemos o vamos a aadir a nuestro
PC (las ISA), son o no son PnP. S no son PnP y ademas no tenemos ningun "jumper" para que lo
sean, debemos ver que IRQ va a necesitar (mirando el manual nos dir cuales "puede", y ademas si
tenemos o no que poner algun jumper para esto).
Una vez identificada la IRQ libre que queremos para esa tarjeta, debemos entrar en la pantalla de la
BIOS, en la parte de PnP y a dicha IRQ, ponerle "ISA" o "Legacy ISA". Con esto unicamente
conseguimos que la bios NO se la asigne a ninguna tarjeta.
Curiosamente tampoco se la asigna a la nuestra. Es responsabilidad luego del driver (o del propio
windows), el asignarsela, por lo cual "puede" que tengamos que informarle al sistema operativo
(windows) en las "propiedades del sistema" que dicho dispositivo utiliza esa IRQ para que a su vez
windows se lo informa a "su" driver.
IMPORTANTE: Igualmente, si entre los dispositivos PCI, vemos que la bios (y windows) asignan
una determinada IRQ a un dispositivo, y por el motivo que sea, no nos gusta, o nos causa
problemas y queremos que le asigne "otra" de las posibles asignadas al bus PCI, es facil. Abrimos
la maquina y cambiamos a la tarjeta de "slot". Recordad que la bios asigna su lista de libres
recorirendose el bus PCI. Por tanto cambiandola de slot se la encontrar en otra posicioon y
"seguramente" le asignar otra IRQ. (Realmente aqu intervienen ms factores de tipo tecnico, ya
que existen las denominadas IRQ#A, IRQ#B, IRQ#C e IRQ#D. Estas son las que realmente solicita
un dispositivo y el proio bus PCI las tiene "entrelazadas" y juega con estas IRQs "logicas" y la lista
de IRQs libres. Pero este es un tema "tecnico" que se sale del alcance que quiero dar a estos
documentos)
** Bien hasta aqu hemos visto una "nueva" tarea que realiza la bios "Desde que pulsamos el voton
de encendido"...... y antes de empezar a cargar todavia el sistema operativo.
Como introfuccion, debo comentar que la tecnologia SCSI siempre es la puntera (y la mas cara).
Los discos SCSI siempre son mejores que los IDE. Y mucho mas rapidos, pero evidentemente a
igualdad de "tecnologia". Me explico, todo lo "puntero" siempre nace en los dispositivos SCSI.
Posteriormente los IDE (uno o dos aos mas tarde) los alcanzan. Hagamonos una idea: los discos a
7200 revoluciones, eran normales hace 2 aos en SCSI.
19
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Actualmente el SCSI tiene ya discos de 10.000 revoluciones y con cach interna de 4 megas. Los
IDe todavia ni suean con esto.
Bueno, pues una de las tarjetas que podemos pinchar a la placa madre, son las tarjetas SCSI (se
pronuncia "escasi"). Ests tarjetas lo que hacen es definir un nuevo "bus". Estas tarjetas pueden ser
PCI o ISA (casi no quedan de estas), e incluso hay placas madre que ya las llevan incorporadas.
Pero en este ultimo caso, a todos los efectos, es como si fuese una tarjeta independiente.
Por firmar un BUS, desde la tarjeta scsi, podemos colocar uno o dos cables que van a ir a uno o
varios dispositivos.
Veamos: un bus scsi no es nada mas que un cable. Y de este cuelgan los dispositivos. Y uno de los
posibles dispositivos es precisamente la tarjeta SCSI. Si salen dos cables, (por ejemplo uno interno
y uno externo), la tarjeta scsi est en el "medio" del BUS. Si unicamente tenemos un cable, la
tarjeta est en uno de los "extremos" del bus.
1) D---D---D--T---D
2) T---D---D--D---D
(he representado por "D" cualquier dispositivo scsi (disco, CDROM, scanner, etc) y por "T" la
propia tarjeta).
En el caso 1) se supone que tenemos dos cables que salen de la tarjeta (uno interno y otro externo)
con dispositivos. En el caso 2) Solo tenemos dispositivos en uno de los cables (d igual).
IMPORTANTE: El BUS SCSI debe estar "terminado" por *ambos* extremos. Esto es
*OBLIGATORIO*, son propiedades electricas del dispositivo y si no prestamos atencion a esto, en
cualquier momento puede suceder un malfunionamiento de bus, o que uno de los dispositivos no
sea reconocido, etc. Mas adelante veremos que quiere decir "terminado".
Previamente, debemos saber que cada dispositivos SCSI (incluso la misma tarjeta, ya que como
hemos dicho anteriormente es un dispositivo ms), tiene que tener un numero UNICO en el BUS.
Este numero debe ser un numero de 0 a 7 (luego veremos las ampliaciones del bus scsi). Este
numero se asigna en los dispositivos. Todos los dispositivos SCSI, tienen mediante "jumpers" la
posibilidad de asignarle un numero. Este numero se asigna en binario. Veamos como:
2 1 0
- - -
20
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
N N S ID=1
N S N ID=2
N S S ID=3
S N N ID=4
S N S ID=5
S S N ID=6
S S S ID=7
Y ademas hemos dicho que la tarjeta es un dispositivo ms. Recordar ademas que las tarjetas SCSI,
realmente son realmente una CPU especial y que ademas tiene su propia BIOS. Por tener su propia
BIOS es configurable, por ejemplo en las tarjetas Adaptec, se puede entrar en dicha bios pulsando
CTRL-A cuando se est inicializando la tarjeta.
Entonces como se asigna el numero "ID" a la tarjeta?. Facil: en las "antiguas" tarjetas,
normalmente por jumpers como los anteriores, y en las tarjetas actuales, entrando en su BIOS y
asignandoselo. Por defecto la tarjeta SCSI siempre viene con el ID=7.
Estos numeritos, no solo son para deifrenciar cada dispositivo, sino que ademas nos determinan la
"prioridad" del dispositivo. La norma SCSI define que el dispositivo de maxima prioridad es el ID
7, y luego va disminuyendo la prioridad desde el ID 6 hasta por fin el ID 0. Este es el motivo por el
cual la tarjeta scsi, viene siempre de fabrica con el ID 7. Evidentemente la tarjeta SCSI debe ser,
por logica, la que tiene mayor prioridad en el BUS.
que es la terminacin?: pues no es nada mas que una "resistencia" electrica que cierra el extremo
del bus.
Es decir cada disco o dispositivo que vayamos a conectar, al menos tiene 4 jumpers. Los 3
anteriores para asignarle el ID y uno mas marcado como "TE".
Unicamente el *ultimo* dispositivo en cada parte del bus, debe llevar el "TE" activo. CUIDADO
con esto. De fabrica TODOS los dispositivos que copremos suelen tener el "TE" activo.
21
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Y la propia tarjeta?. En el caso 1) que hemos visto anteriormente NO debe estar "terminada" y en
caso 2), bien sea externo o interno el cable con dispositivos, la tarjeta debe estar "terminada"
siempre. Entonces la terminacion, depende del tipo de tarjeta: en algunas (viejas, o incorporadas en
la propia placa madre del PC), puede ser un jumper. En las actuales, se define tambien en la propia
BIOS de la tarjeta ademas de asignarle all el numero de ID.
Algunos de los dispositivos "viejos", en vez de tener el "jumper" TE, lo que fisicamente tienen
es una fila (o dos) de resistencias ("resistor"). La manera de quitar la "terminacion" es eliminar
fisicamente las resistencias.
Igualmente, existen "tapones", que no son mas que un pequeo conector que se pone al final del
cable, en uno o en ambos extremos y que realmente son resistencias. Hacen de tapon. Esto es
muy util, mi costunbre, segun compro un dispositivo scsi, es quitarle siempre el jumper TE, y
finalizar *siempre* los buses con estos "tapones". As tengo la seguridad que no se me olvidar.
La velocidad "base" de tranferencia del bus scsi es 10 megabytes en total en todo el bus. El cable es
un cable de 50 hilos.
El bus que hemos definido hasta aqu es el llamado NARROW SCSI. Y ya realmente es de los
"viejos".
ULTRA SCSI
Es el mismo bus (aparentemente), con un chip especial que permite una comunicacion al doble de
velocidad. Por tanto soporta 20 megabytes en el bus. Los dispositivos deben soportar negociacion
"ultra". Practicamente todos los actuales lo soportan.
WIDE SCSI
Cambia el bus. En vez de 50 hilos es de 68 y soporta 16 dispositivos, y por tanto los dispositivos en
vez de 3 jumpers para asignar el numero, tienen 4, para poder asignar un numero del 0 al 15. Por
compatibilidad el orden de prioridad sigue siendo del 7 al cero y luego con "menor" prioridad
todavia el 15, 14, 13,.....,8.
Debido a que el cable es de 68 hilos, fisicamente los dispositivos son diferentes. Su conector es
diferente.
Estas tarjetas, lo normal es que uno de los conectores (bien el externo o bien el interno, o incluso
hay veces en que ambos son internos), sea de 50 hilos y el otro de 68. As los dispositivos
"normales" los conectamos al de 50, y los "wide" al de 68.
ULTRA-WIDE SCSI
Pues una combinacion de ambos anteriores. Evidentemente duplica la velocidad, por lo que la
velocidad del bus llega a 40 megabytes por segundo.
22
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Normalmente estas tarjetas son 2 buses en 3 conectores. Dis de los conectores forman un bus
normalito ULTRA-WIDE de los comentados anteriormente y con los terminadores conectados tal y
como hemos comentado.
Y ahora el canal LVD. Este canal es el "otro" bus. Uno de los extrmos sigue siendo la tarjeta. Por
tano, una tarjeta ULTRA 2 con tres conectores, tiene dos posibles terminadores. Uno para la parte
normal ULTRA-WIDE y otro para la parte LVD (por tanto este ultimo debe estar siempre
"terminado").
Los dispositivos LVD (discos), son especiales. En un bus LVD todos los dispositivos que
enchufemos "deben" ser obligatoriamente LVD. Sino lo hacemos as, TODO el bus se comportar
como un bus NORMAL. En este caso, los discos LVD, tambien tienen un jumper que se debe
activar, para decirle que debe comportarse como un disco normal y no como un disco ULTRA 2.
Por tanto en este caso, existen dos posibilidades:
1) Todos los dispositivos son LVD en ese bus. Entonces NINGUNO de los dispositivos debe tener
activo el jumper de "normal". Y el bus debe terminarse "externamente" (al final, no puede ser
que uno de los dispositivos haga de terminador), mediante una resistencia especial llamada
resistenc a "activa" o "terminador activo".
2) Alguno de los dispositivos en ese bus NO es LVD. Entonces el resto de dispositivos LVD,
deben tener al jumper de "no LVD" o bien "SE" conectado.
En este caso, en dichos discos ya puede activarse el jumper "TE" y por tanto, el ultimo debe tenerlo
activo. S el ultimo no lo tueviese activo, el bus debe terminarse tambien con una resistencia
externa. Pero debe ser una resistencia "pasiva" o "terminacion pasiva" en este caso. Es decir una
resistencia normalita como si fuese un bus ULTRA-WIDE de los citados anteriormente.
*** Y por ultimo comentar que actualmente hay tarjetas y dispositivos que soportan la tecnologia
SCAM. Esta tecnologia es simplemente que los dispositivos negocian (o pueden negociar) su ID
con la tarjeta y la propia tarjeta puede cambiarselo automaticamente. Con esto nos evitamos el
"engorro" de tener que asignar un numero a cada dispositivo, pero perdemos la flexibilidad de
poder asignar nosotros mismos las prioridades, ya que existe la posibilidad de que la tarjeta nos lo
cambie de prioridad.
*** Y ya por ultimo, recordar que sino tenemos discos IDE y queremos que uno de los discos de
nuestra tarjeta SCSI sea el disco de "boot", la norma SCSI dice que este disco debe tener el ID 0 o
el ID 1. Esta es la norma, pero en las tarjetas actuales, esto tambien es configurable mediante su
bios.
Este dispositivo, historicamente era una tarjeta "aparte" que se pinchaba en un slot ISA. Despues de
aparecer el bus PCI dichas tarjetas empezaron a ser PCI y en la actualidad, practicamente en todas
las placas madre vienen incorporadas.
23
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Se le llama controlador IDE, pero realmente es "la mitad" del controlador. Me explico: la
electronica de los actuales discos duros lleva incorporada la otra mitad.
Recordemos que un controlador IDE soporta dos "buses" o "canales" IDE. Cada canal IDE
unicamente puede soportar a su vez dos dispositivos: dicocs dura, disco y CD, o dos CDs. Por tanto
estamos limitados a un maximo de 4 dispositivos IDE.
Cada dispositivo debe estar identificado dentro del mismo "canal" IDE como "master" o como
"slave". Esto se configura mediante un switch o jumper en el propio disco del le dice si es "MA"
(master) o "SL" (esclavo). S solo tenemos un dispositivo en un canal IDE, este debe ser "master".
Por tanto existen dos canales IDE (primario y secundario), y cada uno de ellos con dos dispositivos
(uno master y otro slave).
** Cada canal IDE, "pilla" una IRQ del sistema. El canal primario, la IRQ 14 y el secundario la
IRQ 15.
Esto ultimo, puede que a windows no le guste y nos mrque una admiracion amarilla en el canal IDE
secundario. No es problematico y no pasa nada. Todo funcionar correctamente. De todas maneras,
si esto nos pasase y queremos que wndows no nos informe de esta "incidencia", en la mayoria de
los controladores actuales (drivers de windows), se puede entrar en al Administrador de
dispositivos y en la controladora existe una opcion (en casi todas) para decirle lo mismo que le
hemos dicho a la bios: que se utiliza solo el canal primario. Con esto dejaremos ya de ver la
admiracion amarilla. Pero repito, esto no influye en el rendimiento ni en el comportamiento de
windows.
Siempre hemos oido hablar de las velocidades del disco duro, de la DMA, del modo PIO 4, de las
UDMA, y siempre nos han querido vender las cosas con frases majestuosas: soporta UDMA 33 y
nosotros nos quedamos con la boca abierta y luego incluso vamos "fardando" de rapidez. Pero
realmente sabemos lo que nos han vendido? realmente es tan rapido?
Tenemos varios componentes que influyen desde que un sector de datos est en el dsico hasta que
ese sector de datos, est en la memoria principal de nuestro PC.
Por una parte tenemos la verdadera velocidad del disco duro. Esta velocidad es unica. Es un
componente mecanico y por tanto unicamente depende de la velocidad de rotacin del disco
(actualemtne en los IDE, hay velocidades de 4200, 5400 y 7200 revoluciones por segundo).
Cuando queremos leer un sector de datos, lo peor que nos puede pasar es que el sectar, acabe de
pasar por debajo de la cabeza de lectura. Si es as, tendremos que esperar una revolucion completa
del disco hasta que vuelva a pasar por debajo de la cabeza de lectura. Lo mejor que puede pasar es
que est justo antes de la cabeza lectora. En este caso se leera inmediatamente.
24
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Y estadisticamente la media de los sectores que queremos leer, estarn a la "mitad" de distancia de
una revolucion completa del disco. Esto es lo que se define como "average", y realmente solo
depende de la velocidad de rotacion.
No tenemos en cuenta aqu tambien otro factor. Si la cabeza lectora no est en el cilindro
correspondiente al sector que queremos leer, el brazo que soporta a la cabeza lectora, tendr que
hacer un moviemiento transversal de posicionamiento a ese cilindro. Esto es lo que se denomina
"seek".
Por otra parte, pensemos, que la "mitad" de las controladoras actuales, estan integradas dentro de la
electronica del disco duro. Y all es donde podemos tener el verdadero cuello de botella (otro ms),
ya que a circuiteria y la logica del propio disco, lo mas normal, cuando le solicitamos un sector, es
que "lea" ms sectores y se lo pase a la controladora (a un mini-cach) por si acaso inmediatamente
despues solicitamos otro sector contiguo (suele ser bastante normal que nos interese leer mas de un
sector: 512 bytes, incluso el propio sistema operativo, se organiza en cluster que siempre son
mayores de ese tamao, por tanto siempre se le solicitar al disco ms de un sector en diversas
peticiones sucesivas).
DE LA CONTROLADORA A LA MEMORIA
DMA
Busmaster DMA
PROGRAMMED I/O
En este caso, la tasa de transferencia de datos no solo est limitado por los valores maximos de
velocidad del bus, sino tambien por el rendimiento de la CPU, y evidentemente en un sistema
multitarea, la CPU puede que llegue a estar demasiado ocupada preocupandose del acceso a los
datos.
25
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
La CPU podra recoger los datos de la controladora de una manera mas rapida, si esta los dejase en
una zona de memoria fija. En este caso, la cpu puede trabajar mucho mas rapidamente con estos
datos ya que puede moverlos mediante las intrcciones MOV que trabajan mas rapidamente que los
accesos mediante IN y OUT.
Pero por desgracia, las controladoras no "saben" de memoria virtual, no sbaen del modo protegiod
(protected mode) de la CPU. Unicamente conocen la memoria real. Esto causa un problema muy
serio de rendimiento en los actuales sistemas operativos basados en las tecnicas de memoria virtual
(frente al antiguo MSDOS que operaba con memoria real).
DMA
Ms conocido que los dos procedimientos anteriores, es la transferencia DMA, que en los PCs se
soporta en un chip DMA propio. Este chip, debe posibilitar la transferencia de datos desde un
dispositivo (disco duro, disquete, CDROM, etc..) a la memoria y evitar con ello, el largo camino a
traves de la CPU.
La idea es buena, ya que el software solo debe indicarle al controlador DMA, cuantos bytes se han
de transportar de donde adonde. Pero esto en el PC se realiz de una manera bastante chapucera, ya
que el controlador de DMA que emplean los PCs, no solo es bastante inflexible (lo que an se le
podra perdonar), sino sobre todo lento. Tan lento, que an el acceso segn el procedimiento PIO en
el peor de los casos es mas rapido a partir de los antiguos 486. Ya que como anacronismo en la
historia de los PCs, el controlador DMA en los AT y sus sucesores, sigui haciendose funcionar a 4
MHz, en donde los primeros PCs ya alcanzaban los 4,77 MHz. En ellos, en los antiguos, la
transferencia DMA es mas rapida que el PIO. De esta forma no se puede alcanzar mas de 2 Mb
/segundo.
Por ello, la mayoria de los discos modernos ya no controlan segun el metodo DMA
BUSMASTER DMA
Otra forma del Direct Memory Access es el Busmaster DMA, pero este no tiene nada que ver con
el chip de DMA integrado en la placa madre, y del acual hemos hablado anteriormente.
En este tipo de acceso, la controladora del disco duro, desconecta a la CPU del BUS y transfiere los
datos con ayuda de un controlador Busmaster DMA con control propio.
UDMA
No lo he mencionado al principio del articulo, debido a que no es nada mas que una variante del
Busmaster DMA, implementada en controladoras IDE y aumentada su velocidad de transferencia a
16 MB/s. Posteriormente surgi la UDMA 2 (o UDMA 33) hasta 33 megas/s. Y actualmente ya se
estan vendiendo placas madre con controladoras incorporadas a 66 MB/seg.
26
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
NO LLEVARSE A ENGAO
No hay que llevarse a engao con todo lo anterior. En las controladoras / discos actuales, ambas
cosas forman un TODO. Es decir, no solo el chip de la placa madre debe soportar esa velocidad,
sino que tambien el propio dispositivo (la electronica del propio disco duro), debe soportarla. Es
decir un disco UDMA actual (UDMA 2) por mucho que lo pongamos en una placa madre con
controladora UDMA 66, no dar mas rendimiento que el que daba en una UDMA 33.
Como colofn de esto, voy a hacer unos pequeos comentarios de diseo del propio nucleo del
sistema operativo, en relacion con los metodos de acceso anterior.
Recordad que existen dos modos de funcionamiento del procesador. El modo "real" que es el modo
en MSDOS puro y duro, con el limite de 640 Ks en memoria contigua y el limite de 1 mega + 64
Kb para todas las direcciones reales. Y el modo "protegido", en donde se tiene acceso a toda la
memoria de la maquina, y es el modo en que funciona windows, linux, OS2, etc.....
Las formas vistas antes de transferencia DMA, solo se pueden utilizar en el mundo del modo Real
(Real-Mode), y llevan al procesador a un "cuelgue" si no se toman las medidas adecuadas.
Pero de esto, los programas no se enteran, ya que nunca entran en contacto con las direcciones
fisicas, y el controlador de DMA no es una excepcin:
Esta problematica, no solo suerge en windows y otros sistemas en modo protegido. Tambien afecta
al MSDOS cuando este est trabajando o conmuta a modo Virtual-86 (el tercer modo de
funcionamiento del procesador). Por ejemplo en cuanto instalamos el EMM386.EXE en el
config.sys que sirve para la emulacion de la memoria expandida y que depende de la gestion de la
memoria virtual del procesador.
Esto es posible en modo protegido mediante el control de los ports I/O (virtualizacion del
hardware). As por ejemplo, windows instalar un Control-Monitor virtual en el fondo (en la capa
mas baja), que vigila la programacion del controlador DMA, mediante la BIOS o un programa, y
que convierte las direcciones virtuales indicadas en direcciones fisicas verdaderas antes de que se
escriban los registros del controlador DMA (antes que se programe una lectura/escritura)
2) Puerto paralelo
27
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
3) Puerto de raton
PUERTOS SERIE
Simplemente son unos puertos de baja velocidad (115200 bits/segundo) Esta velocidad es adecuada
para los modem o el raton serie, pero para comunicacion PC a PC mediante la conexion serie que
nos suministra windows, se queda bastante escaso.
Esta comunicacion equivale a unos 14 Ks por segundo. Evidentemente se queda muy corta para
conexion por cable. Debemos recordar que la velocidad se configura en el Administrador de
dispositivos. La velocidad configurada all unicamente tiene efecto en la conexion por cable y no
tiene ningun efecto en el modem. Esto es importante, ya que por defecto en windows, viene a 9600.
Las placas madre de ultima generacin llevan incorporado un chip multipuerto que nos puede dar
hasta 1.000.000 (un millon) de bps. (en este caso, la comunicacion via puerto serie, empieza a ser
"decente").
PUERTO PARALELO
Este dispositivo, aunque muy "viejo", vamos a "mirarlo" con un poco mas de cario, y esto es
debido a que ya no solamente se utiliza para la impresora, sino que ya pueden conectarse a ella un
monton de dispositivos. Los mas "genericos", por ejemplo, son: el ZIP, el LS-120 (SuperDisk),
algunos modelos de Scanners y algunos modelos de grabadoras de CD-ROM.
ECP+EPP
ECP
EPP 1.9
EPP 1.7
Bidireccional
SPP
(nota: no todas las bios soportan el metodo ECP+EPP, y no todas tienen dos normas para EPP -1.9
y 1.7-)
28
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Yo aconsejo realizar las pruebas del puerto paralelo seleccionando en la bios el puerto paralelo con
lo metodos anteriores, y probando cada opcion de arriba a abajo. Cuando encontremos la primera
en la cual funcionen todos los dispositivos que tenemos en el puerto paralelo, esa es la que debemos
dejar.
No todos los drivers de impresora, ni drivers de scanner, etc, soportan todos los metodos del puerto
paralelo. Por ello es necesario "probar".
Es importante este tema, fijaros que por ejemplo un ZIP en puerto paralelo, pasa de unos ridiculos 5
Megabytes por minuto, hasta unos "buenos" 30 megas / minuto, unicamente configurando
correctamente el puerto (y ejecutando luego el "optimizador de puerto paralelo" de iomega, que lo
unico que hace es "mirar" como tenemos el puerto para "decirselo" al driver del ZIP. De esta
manera, pasamos de 5 a 30, simplemente tocando la bios y ejecutando en ambos casos el
"optimizador").
** La velocidad tipica de puerto paralelo en una comunicacion directa por cable entre dos PCs,
llega a 1 Megabyte por segundo, pudiendo alcanzar los 2,5 megas en las placas madre de ultima
generacion que utilicen un "buen" chip de multipuerto.
PUERTO DE RATON
Es un puerto (una conexion) especifica incorporada en la placa madre, y que por desgracia nos
"roba" una preciosa IRQ (suele ser la 12). Lo normal es que pueda deshabilitarse el puerto de raton
en la bios. En ese caso no se utilizar esa IRQ, pero... no todas las bios la van a dejar disponible
para otros dispositivos en la placa madre al deshabilitarlo.
He visto situacion (placas madre SuperMicro) que aunque deshabilitemos el puerto de raton en la
placa madre, no deja que ningun otro dispositivo "pille" la IRQ 12 (al menos dispositivos PnP). En
otras placas, al deshabilitar el puerto de ratn, vemos que inmediatamente es seleccionada por
algun dispositivo PnP.
Otra desventaja de este puerto, es que la IRQ que "pilla", es del tipo ISA. Es decir la pilla "en
exclusiva" y no puede ser compartida por otros dispositivos.
Como comentario personal, no entiendo el porqu apareci este dispositivo, maxime teniendo 2
puertos serie en un PC, y siendo el raton un dispositivo que *no* necesita "velocidad" en el puerto.
Entiendo que es una herencia arrastrada y que surgi en sus epocas unicamente por motivos de
marketing (de IBM).
PUERTOS USB
Bien, en un principio se apostaba por ellos como la conexion universal y el futuro de todos los
perifericos a conectar a un PC. Desde luego, este tipo de apuesta no va tan rapido como se
esperaba.
* La mayoria de las placas madre actuales, suelen llevar incorporados dos puertos USB. Si no fuese
as, podemos adquirir por un precio no excesivo, una placa PCI especifica que nos suministre los
dos puertos.
* Por tener USB, la bios le asigna una IRQ, pero en este caso, esta IRQ es del tipo PCI y se puede
compartir con el resto de dispositivos PCI que tengamos en el PC. Al igual que en el caso de puerto
29
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
* La velocidad de un bus USB son 12 megas (bastante aceptable comparado con los anteriores
"buses").
* Recordemos que un bus USB puede tener hasta 127 dispositivos. La pregunta del millon es si
solo tengo 2 puertos en el PC, como es posible conectar hasta 127 dispositivos?. Pues facil, desde
un puerto puedo conectar un HUB (como en las "redes", es decir una especie de distribuidor) que
tiene una entrada y "n" salidas. Y as se pueden conectar en "cascada" tantos HUB como queramos
hasta tener las 127 posibles salidas (incluidos en ellas los propios HUB).
** AVISO: Existi un problema de hardware con los primeros chip de bus USB fabricados por
Intel que no funcionan correctamente. Para ver si nuestro "chip" es bueno, debemos ir al
Administrador de Dispositivos, y abrir el dispositivo "Controlador serie universal USB" y debajo
de l veremos colgando un dispositvio del tipo "Intel XXXXX PCI to USB Universal Host
Controller" Pinchandolo, podremos ver en esa pantalla la "Revision de Hardware". Debe ser la 001
o superior. La version 000 no funciona e Intel aconseja que nos pongamos en contacto con el
fabricante de la placa madre y se la devolvamos (como si fuese tan facil!).
** IMPORTANTE: Normalmente los puertos USB, pueden dar un pequea cantidad de corriente a
los dispositivos. Existen dos "estandard": de 100 mA (miliAmperios) y de 500 mA. Windows
controla en funcion del dispositivo "colgado" su consumo, y si el consumo es superior al tipo de
puerto, desconecta el dispositivo.
Debe prestarse atencin, entonces, a ciertas camaras de video, las cuales toman "corriente" del
puerto. Las camaras de video son "devoradoras" de corriente, por lo que corremos peligro que
windows las desconecte.
Igualmente, conozco placas madre, que a pesar de montar el chip correcto de Intel capaz de dar
hasta 500 mA, fallan estrepitosamente al informar incorrectamente a windows del consumo de sus
perifericos. (problemas de la bios de la placa madre y que normalmente se corrige em alguna
revision de la bios)
*** Y con esto cerramos el capitulo (por ahora) dedicado al hardware y las inicializaciones que
efectua la bios sobre l en el momento en que "pulsamos el boton de encendido de nuestro PC".
Igualmente hemos visto las posibles parametrizaciones que podemos hacer del hardware a traves de
la bios.
A partir de ahora, vamos a entrar con el "software", es decir una vez que la bios a inicializado los
componentes hardware y empieza a construir ciertas tablas de interrupciones y parametros en la
memoria del PC, para a continuzacion "buscar" un disquete o un disco duro con el sistema
operativo y cargarlo en memoria.
Bien llegados a este punto, suponemos que la bios ya ha inicializado todos los dispositivos de la
maquina. Asignado las correspondientes IRQs y recursos a los dispositivos y ahora va a proceder a
cargar el sistema operativo.
30
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Lo mas normal es que intente su carga desde un disquete primero. Si esta carga falla, lo intenta
desde el primer disco duro.
Hay que matizar, antes de continuar, que esto es configurable en la bios de la maquina. Lo
comentado en el parrafo anterior es la opcion por defecto de casi todas las bios, y matizando
precisamente en esta opcion, mi consejo es precisamente desactivar el intento de carga desde
disquete en la bios. Casi todas las bios, permiten cambiar la sequencia de arrancada de A,C (es el
defecto) a C,A o bien C only. Las ventajas que tenemos con esto son:
2) No tenemos el riesgo de habernos dejado un disquete en la maquina con un virus del boot. Si lo
tuviesemos e intentase arrancar desde el disquete aunque no lo consiguiese, ya nos habra
infectado el disco duro.
Vamos a ver primero, precisamente la carga (el inicio de la carga) desde disco duro. Luego
veremos una variante de este metodo de carga, que coincide precisamente con el arranque estandard
desde un disquete. Para ver la carga desde disco duro, debemos conocer primero como est
logicamente particionado el disco.
Bien, por definicion un disco duro permite hasta 4 particiones. No puede tener ms y la explicacion,
proviene del diseo del sector de boot del disco duro. Este sector de boot, se le llama tambien MBR
(Master Boot Record).
Dicho sector que ocupa siempre la misma posicion fisica en todos los discos duros (cabeza cero,
cilindro cero, sector 1), tiene un diseo fijo.
Todos los sistemas operativos tienen un FDISK o similar, que "sabe" crear en vacio este sector y
ademas lo hace automaticamente si el disco est nuevo (recien comprado). Todos los sistemas
operativos, lo crean exactamente igual.
El mini-programa de este sector, lo unico que sabe hacer es leer dicha tabla, buscar si existe una
particion "arrancable" y si existiese, va a la posicion del cilindro, cabeza, sector de comienzo y all
carga en memoria el primer sector que encuentra y lo ejecuta. Este nuevo sector es precisamente el
"boot" de la particion (no confundirlo con el MBR, o sector 2 "boot" del disco que hemos citado
anteriormente). Este ultimo "boot", el responsable de crearlo es el "format". Y el responsable de la
creacion de las particiones es el FDISK (en sistemas Microsoft)
Entonces, retomando un poco el titulo de estos articulos, la bios lo que hace es cargar en memoria
el MBR del disco duro (en la direccion 7C00 hexadecimal) y cede el control a dicho programa. Este
se realoja en otra posicion de memoria, busca la particion "activa" o "rrancable" y carga en
memoria su sector de "boot", tambien en la direccion 7C00 y le cede control.
31
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Pero antes de continur con esto, merece la pena que echemos una mirada al sector de particiones o
MBR.
EL SECTOR DE PARTICIONES
El llamado sector de particiones es creado por FDISK en su primera llamada (con un disco recien
adquirido y sin preparar) o cuando ejecutamos el comando FDISK /MBR.
Es el primer sector del disco duro (cabeza 0, cilindro 0, sector 1). Este es el sector que siempre
arranca la BIOS primeramente antes de cargar ningun sistema operativo. La bios lo carga en la
poscion de memoria 0000:7C00 siempre que no encuentre un disquete en la unidad A:.
Si los dos ultimos bytes de los 512 de este sector contienen el codigo 55h,AAh (hexadecimal)
considera este sector como ejecutable y comienza la ejecucion de programa en el primer byte de
ester sector una vez se ha cargado en la posicion de memoria anterior.
El codigo de programa que hay en este sector de arranque, tiene como tarea el reconocer la
particion "activa" y con ello, el sistema operativo a ejecutar, cargar su sector de arranque y
comenzar la ejecucion del codigo de programa que all est contenido. Ya que este codigo de
programa, por definicion, se ha de encontrar en la posicion de memoria 0000:7C00, el codigo de
particion, primeramente, se desplaza a la posicion de memoria 0000:0600 y con ello deja espacio
para el sector de arranque.
Veamos cada entrad de 16 Bytes que define una particion, que es lo que contiene:
00h = Inactiva
32
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
00h = Libre
02h = XENIX
03h = XENIX
.... etc
termina la particion.
Luego las funciones del programa de boot (MBR) del disco duro son:
1) Localizar el sector de arranque de la particion activa, para esto se recorre las 4 entradas de las 4
posibles particiones para ver cual es la activa.
3) Volver a cargar los 512 primeros bytes de esa particion en memoria y ceder el control (este es el
verdadero sector de arranque del sistema operativo. En el caso de MSDOS o WINDOWS, es
creado al dar un FORMAT a la particion)
33
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Una particion, no es ni mas ni menos que reservar un "trozo" (o todo) del disco para contener un
sistema operativo o datos.
La manera de crear / borrar paticiones bajo MsDOS (o en los sistemas operativos de microsoft), es
mediante el comando FDISK.
* La primera pregunta que nos realiza FDISK es si queremos soporte para grandes particiones (por
defecto viene activada la letra "S" en windwos 98).
Esta pregunta a lo que realmente se refiere, es que si decimos "S", la particion que vamos a crear en
ese momento, ser FAT 32. Si decimon que "N", la particion a crear ser FAT 16.
Al contrario de lo que cree mucha gente, no es en el FORMAT en donde se le dice en tipo de FAT,
sino justo en el momento de crear la particion.
Antes de continuar con las particiones, vemos que hemos introducido un concepto: FAT 16 y FAT
32. Vamos a hablar un poco de ellas.
FAT 16 y FAT 32
Bien, imaginemos que ya tenemos un "pedazo" de disco. Imaginemos ahora que queremos guardar
all archivos. de que manera "fisicamente" puede hacerse, para ser capaces de almacenarlos y
recuperarlos rapidamente?.
Se admiten ideas......
Bueno, los primeros programadores del MsDOS, de los cuales heredamos el actual windows,
tuvieron que "disear" un sistema de archivos... El diseo, quiz no sea el mejor (seguro que no),
pero funciona y por suerte o por desgracia lo hemos heredado. Pensemos un poco.... como lo
disearon? Pues mas o menos razonando de la siguiente manera:
2) S tenemos un "indice", debemos guardarlo siempre en el mismo sitio para que el sistema lo
busque rapidamente.
3) Ademas, de alguna manera, deberemos ser capaces de buscar rapidamente sitios no utilizados
en el disco para poder grabar un archivo nuevo.
4) Lo mejor sera tener numerados todos los "pedacitos" del disco. Sabemos "por diseo" que la
minima cantidad que entiende un controlador de disco son 512 bytes. Es decir se grabar de 512
en 512.
5) Pero 512 es poco. por qu no agrupamos pequeos grupos de 512 bytes?.Correcto. Pues
tenemos que dar un nombre a esta "agrupacion". Y se decidi darle en nombre de "cluster". Ya
veremos cual es el tamao mejor.
6) Ahora bien, si tenemos "cluster". no sera mejor tenermos en un indice tambein al inicio del
disco para saber si est libre o ocupado?. Vale, pues parece correcto. Pero como esto es
delicado por si acaso, vamos a tener 2. El original y otra copia de l.
34
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
7) Bueno ya tenemos un indice para tener los archivos. Vamos a llamarle "Directorio principal".
Tambien tenemos unos pequeos indices o tablas que nos indican si un "cluster" est libre o
ocupado. Vamos a llamarle FAT (File Allocation Table, o "tabla de asignacion de archivos").
8) Y como podemos ahora guardar un archivo. A ver que nos hace falta saber de un archivo?.
Pues, "Su nombre", "la fecha de creacion", "la fecha de modificacion", en que "cluster"
comienza, su tamao en "bytes", y de paso, vamos a ponerle tammbien "atributos". Del tipo
"rchivo", "Oculto", "Sistema", "Solo lectura".... Bueno, pues todas estas caracteristicas comunes
las guardamos en el "directorio".
9) Y ahora su contenido. Hemos dicho que en el directorio est el numero del "cluster" en donde
comienza el archivo. Como lo hemos buscado?... Bien hemos hablado de la FAT. La FAT en
principio podra ser simplemente un bite por cada cluster del disco, al inicio del proio disco, que
nos dijese 1 o 0 para saber si est libre o ocupado. Pero que tal si utilizamos esto para algo
ms?. Vamos a utilizarlo.
10) y si cada "entrada" en la FAT, en vez de ser de 1 bite, con contenido uno o cero, lo definimos
de "n" bites de tal manera que tengan un cero si est libre. Pero si est ocupada, que su
contenido sea distinto de cero pero puede ser perfectamente el numero del siguiente cluster que
utiliza el fichero, en el caso de utilizar mas de un cluster. Y ademas, si es el "ultimo" cluster del
fichero, pues podemos ponerle una marca. Por ejemplo todo a "unos" binarios.
11) Parece que encaja. Entonces para grabar un archivo nuevo, primero buscamos un hueco en el
directorio. All grabamos su nombre y sus datos de fecha, atributos, tamao, etc. Ahora vamos a
la FAT. La recorremos buscando una posicion que tenga "ceros". Esto nos indica que ese
cluster del disco estar vacio o se puede utilizar. Pues nos guardamos dicho numero en el
directorio, y asignamos todos a unos binarios en esa posicion de la FAT. Igualmente guardamos
en el cluster fisico del disco el primer pedacito de nuestro archivo. Ahora miramos si el archivo
ocupa mas tamao de un cluster. Si es as, continuamos recorriendonos la FAT para buscar el
siguiente "hueco" a ceros. Cuando lo encontremos, en la posicion ANTERIOR que habiamos
grabados unos binarios, le ponemos la direccion de este nuevo "hueco" y a este hueco le
llenamos con unos binarios (y grabamos en ese cluster, el segundo pedacito de nuestro archivo).
Y as continuamos hasta el final del archivo.
12) que estamos haciendo con lo anterior?. Facil: crearnos una "lista" de apuntadores al disco.
Supongamos, que el tamao del cluster es 4 Kbs. Supongamos que cada entrada en la FAT es
de 16 bites y recordad que el numero maximo en binario que puede tener con 16 bites es 2
elevado a 16, es decir, desde cero a 65535. Con la suposicion anterior, vamos a ver como
guardariamos un archivo de 7150 bytes.
12.1) Primero se busca un hueco en el directorio. Una vez encontrado recorremos la FAT de 2 bytes
en 2 bytes (16 bites = 2 bytes). Imaginemos que encontramos "cero" en la posicion 124 desde el
inicio de la FAT. Como vamos de 2 en 2 bytes, indica que el "cluster" numero 64 del disco est
libre.
12.2) Entonces guardamos el numero 64 en el directorio. Grabamos unos binarios en esa posicion
de la FAT, y en el cluster 64 real del disco grabamos los 4 primeros Kbs del archivo.
12.3) Como el archivo tenia 7150 bytes y hemos guardado 4 Kbs, quiere decir que para guardar el
resto, debemos guardar otro pedacito de 4 Kbs. Entonces, realizamos la secuencia definida en 12.1)
35
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
es decir buscamos el siguiente hueco, Por ejemplo el 250 (esto indica el cluster 125). Guardmos el
numero 125 en la posicion anterior de la FAT en donde habiamos guardado unos binarios, ponemos
unos binarios en la posicion actual y guardamos otros 4 Kbs, en el cluster real 125 del disco.
12.4) Si nos fijamos, ha quedado la lista: 64->125->unos binarios (o marca de fin). Y ademas
hemos "utilizado" 8 Kbs fisicos del disco, cuando querimos guardar unicamente 7150. Por tanto se
deperdicia un espacio. Logicamente a mayor tamao del cluster, mas espacio podriamos perder.....
13) Pues lo que acabo de describir es el funcionamiento de la FAT 16. Se le llama 16 porque utiliza
16 bites para cada "apuntador".
Realmente en el proceso anterior que hemos supuesto que el tamao del cluster era 5 Kbs, esto no
es verdad. como calcula el sistema operativo cual va a ser el tamao del cluster?.
Bien, tal y como definimos antes, sabemos que solo podemos tener hasta 65536 pedacitos. Ademas
sabemos el tamao total de la particion. Pues el sistema divide el tamao en Kbs entre 65536. El
resultado lo redondeamos hacia arriba a un numero que se multiplo de una potencia de dos. O sea a
2, 4 , 6, 16, 32.... y el numero que nos salga es el tamao del cluster.
Se consider que para no perder mucho espacio, se debria limitar el tamao maximo del cluster. Y
se defini as que el tamao maximo del cluster debia ser 32 Kbs. Por tanto 32 Kb * 65535
maximos posibles cluster, nos d la cantidad de 2 Gigas maximo. Por tanto la particion maxima que
podemos tener en FAT 16, est limitada a 2 Gb.
Y ahora la FAT 32. Simplemente y debido a la limitacion anterior, se ampli el tamao de fat a 32
bites (o 4 bytes). Con esto el numero maximo que cabe, ya no es 65535, sino 4.294.967.295 y como
el tamao maximo de cluster se define aqu en: 16 Kbs, entonces el tamao maximo del disco sera:
68.719.476.736 es decir 68000 Gigas (o lo que es lo mismo 68 Teras).
* Recordad que tal y como hemos comentado antes, un disco soporta 4 particiones maximo.
1) Arrancar con la tecla CTRL pulsada y seelccionar "Solo Simbolo del Sistema), o bien arrancar
con el disco de inicio de win98. Es decir en modo MsDOS "puro".
Aunque parezca una tonteria, es importante. Sinoi lo hacemos as puede que la particion no sea
creada correctamente.
TIPOS DE PARTICION
36
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
En el caso de los sistemas operativos de Microsoft, unicamente nos deja crear una particion
primaria y una particion "extendida".
El disco de arranque (el C:) del sistema operativo, debe tener obligatoriamente una particion
primaria. El propio FDISK, al ser la particion primaria del C:, la deja igualmente marcada como
"arrancable".
Ademas, estos sistemas operativos, permiten a su vez, el volver a partir la partcion extendidad en
otros pedacitos.
Por cada "pedazo", el sistema le asignar una letra de disco. cual?. Bien esto es IMPORTANTE, si
tenemos mas de un disco. El sistema se recorre todos los discos buscando particiones primarias en
TODOS (repito). En este primer proceso ignora las extendidas. Por cada particion primaria que se
encuentra, le asigna una letra consecutiva de disco. C:, D:, etc....
Cuando se ha recorrido TODOS los discos, ahora empueza a busczar particiones extendidas,
empezando otra vez desde el primer disco. Cuando las encuentra, continua asignando letras a todas
las "subparticiones" dentro de cada particion extendida que se encuentre.
** Para que nos puede ser util lo anterior?. Facil. Imaginemos que tenemos 2 discos. Ademas que
al primer disco le queremos tener "partido" en dos, y ademas queremos "entero" el segundo disco.
Y ademas, queremos que el primer disco fisico, tenga las letras C: y D:, y el segundo la E:
Pues bien, si creamos en el primer disco una particion primaria y una extendida, y ahora en el
segundo creasemos una primaria, lo anterior no podra ser, ya que por los razonamientos anteriores,
se recorre primero todas las particiones primarias. Por tanto a la del primer disco, le dara la C:,
ahora va al segundo disco. Como tiene una primaria, le dara la D:, y ahora empieza con las
secundarias, y por tanto a la particion extendida del primer disco, le daria la E:. Esto no es lo que
queriamos.
Repetir el ejercicio anterior, suponiendo que en el segundo disco, la particion (unica) creada, en vez
de primaria es secundaria. Vereis como "sale" lo que queriamos hacer.
FDISK
* La primera pregunta, a "compatibilidad para discos grandes", realmente est camuflada. Lo unico
que nos quiere decir, es que lo que vayamos a crear en dicha sesion, como lo queremos: FAT 16 o
FAT 32. Si decimos que "S" a esa pregunta, la partcion que creamos en ese momento ser FAT 32.
Si decimos que "N", ser FAT 16.
* Recordar que SIEMPRE, una vez creada una particion, hay que salirse de FDISK y reiniciar el
ordenar. SIEMPRE (insisto). Basicamente continene 5 funciones.
37
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Antes de hacer nada, debemos saber que nada mas arrancar el FDISk, este est "apuntando" a
nuestro primer disco fisico. Si queremos operar sobre otro disco, lo primero sera cambias la unidad
de disco (opcion 5). Cuidado con esto, ya que por error podriamosm por ejemplo, borrar una
particion de un disco, creyendo que estamos en otro disco..... y si hacemos esto, *no* hay marcha
atrs.
* La opcion numero 1). nos permite crear una particion primaria, una extendida o bien "dentro" de
la extendida, crear unidades logicas (es decir realmente crear "subparticiones" de dicha extendida
como si esta fuese un nuevo disco.
Las particiones primarias, tienen una marca que le indica al sistema si es "activa" (arrancable).
Evidentemente la particion primaria correspondiente a nuestro primer disco fisico, debe estar
"activa" (opcion 2). En principio, esto no debe preocuparnos, ya que el propio FDISK, al crear la
primera particion del primer disco, siempre la pone la marca de "activa". De todas maneras, saber
que existe dicha opcion, por si acaso en algun momento nuestro sistema no arranca. La opcion 2),
solo pone la "marca". No es "destructiva", es decir, no hay perdida de datos.
* La opcion 3) corresponde a borrar una particion. O bien borrar unidades logicas dentro de una
particion extendida (sub-partiones). Mi consejo es siempre el mismo. Si borramos y deseamos crear
una nueva, lo primero, borrar y debemos salir y reiniciar la maquina, luego volver a entrar y crear la
particion que queriamos.
NOTA: (para quien tenga ademas dispositivos SCSI). Recordar que le FDISK unicamente las
unidades a las cuales la bios les ha asignado la INT 13 de acceso a disco. Las bios (todas) por
diseo, unicamente asignan dicha interrupcion a los 8 primeros discos que se encuentran. Por tanto,
el FDISK est limitado a esos 8 primeros discos ("discos" fisicos). Esto no causa Problemas a uien
tenga unicamente unidades IDE, ya que estas estan limitadas a 4 posibles discos. Bien en el caso de
tener mas de 8 discos fisicos, para "particionarlos" con FDISK, se hace necesario "quitar" alguno
para que el nuevo disco entre en los limites de los 8 anteriores. Particionarlo, y luego volver a poner
las unidades quitadas. Otra solucion sera utilizar herramientas de terceros para particionarlos.
(normalmente las utilidades que nos sumnistran con las tarjetas SCSI, suelen tener un software de
este tipo, debido a que son conscientes de esta problematica).
* Conocemos ya un poco de FAT 16 y FAT 32, y ademas hemos visto las particiones y como
crearlas. Ahora que analizar un poco cual es la mejor de dichas opciones. Existe mucha discusion
sobre el tema y entiendo que es debida a una mala informacion (o desinformacion) por parte de
Microsoft al anunciar la FAT 32. Los programas por ejemplo, de instalacion de windows 98, nos
dicen que nuestro sistema ir un 33% mejor. Esta frase es totalmente incorrecta. La frase "real"
debera ser: "puede ahorar hasta un 33% de espacio en disco, penalizandose (ligeramente,
dependiendo del sistema) los tiempos de acceso a disco". Vamos a ver esto ultimo con detalle.
* A astas alturas supongo que tenemos "asimilado" un poco los capitulos anteriores. Es necesario el
haberlo intentado al menos (s que me explico muy mal, y menos sin una "pizarra" para dibujar,
pero al menos se debe intentar comprender.....). Por tanto empezemos a "pensar" un poquito:
38
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
1) La FAT es importantisima. Se utiliza para todo. Es el "indice" de cmo estn los archivos en el
disco duro. Tanto para leer un archivo o para grabarlo, se hace necesario "varios" accesos a la
FAT.
3) Por tanto el sistema operativo "intenta" tenerla en memoria siempre para ahorrar accesos a
disco (debido al punto 1). Y ademas una vez que se "actulice" por la grabacion de un archivo,
intenta escribirla inmediatamente a disco (debido al punto 2).
** El punto 3) nos implica varias cosas. Pensemos un poco que tamao real tiene la FAT?.
Recordemos que la FAT 16 tiene un maximo de 65535 entradas cada una de 16 bites (2 bytes). Es
decir, tiene un tamao maximo de 128 Kbs. Como existen 2 FAT por seguridad, es un tamao
maximo de 256 Kbs. Totalmente aceptable para tenerlo en memoria y actualizarla a disco en el
momento en que es actualizada en memoria.
Pero y en FAT 32?... pues muy mal: un disco tipico de 3,2 Gb, tiene 800.000 entradas en la FAT
(en FAT 32). Y como es FAT 32, son 32 bites (4 Bytes). Es decir en total 3,2 Megas y por dos
copias de la FAT son: 6,4 megas que el sistema intenta tener en memoria para no penalizar los
accesos. Y ademas si actualizamos un fichero, intenta escribirla inmediatamente en disco.
** CONCLUSION:
A) PENALIZACION
1) Se utiliza bastante mas memoria real para FAT 32 que va en detrimento de la memoria
"ejecutiva" de programas.
2) Se utiliza mas CPU en la busqueda en memoria de las entradas en la FAT (es dirente recorrese
"muchas" veces una tablita de 65000 elementos maximo, que una tabla de casi un millon de
elementos (al menos y dependiendo de que disco tengamos)
3) Se penaliza cada actualizacion de un archivo ya que hay que reescribir todo o parte de la FAT
en disco. Y la FAT 32, es "bastante" mas grande.
4) El disco C: no puede ser FAT 32, si deseasemos instalar ademas un sistema operativo diferente
de win98. Por ejemplo NT 4 obliga a que el disco de "boot" del sistema sea FAT 16,
independientemente de donde instalemos el NT (es decir independientemente de si la particion
real de instalacion es FAT 16 o NTFS).
B) VENTAJAS
2) Como el tamao de "cluster" es menor, "ahorramos" una cantidad de espacio en disco, que en
este caso, y en un disco tipico de 2 Gb, s que puede llegar al famos 33% anunciado por
Microsoft. (depende del numero de archivos este ahorro de espacio).
** Las medidas tipicas de penalizacion en un disco, FAT 32 frente a FAT 16 con una CPU PII 400,
on aproximadamente del 7% de perdida de rendimiento en FAT 32.
39
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
NOTA: Existe una manera de "ver" cuanto espacio tenemos "perdido" en el disco por culpa de los
"cluster" de gran tamao. Es sencilla:
Esperamos a que finalice, y nos mostrar los bytes utilizados por los archivos y los bytes
"asignados" a esos archivos. La diferencia de tamao es el espacio "perdido" que "casi, casi",
podremos recuperarlo con una FAT 32.
**** Es interesante, ahora que hemos introducido un poco la FAT, particiones y discos, retomar
"Desde que pulsamos el boton de nuestro PC...." en el punto en que la bios habia finalizado el
reconocimiento, asignacion de IRQs, e inicializacion del hardware. Hemos introducido tambien,
que la siguiente tarea era "cargar" el MBR del disco, que realmente es un mini-programa, y le haba
cedido el control a dicho programa.
Pero es importante saber, que hace la propia bios, inmediatamente antes de iniciar dicha carga.
Como ha preparado la memoria real (por debajo del mega, ya que los sistema intel, arrancar
siempre en modo real tal y como vimos anteriormente), para que el sistema operativo, el que sea,
sea capaz de comenzar a hacer algo......
(esto hay que leerlo despacio... tiene su "miga", y si veis que es un poco lioso, la culpa es
unicamente mia. Es un tema dificil de explicar, y tampoco es imprescindible para continuar con
estos capitulos. Pero por "culturilla" lo cuento aqu).
* Bien, la bios ademas de la inicializacion del hardware, se encarga de crear una serie de estructuras
en memoria y deja ademas en ella, las rutinas "minimas" para escribir en pantalla, manejar el
teclado y acceder a disco.
Mas adelante veremos por ejemplo, que "cisco" se tiene que montar, solo para pulsar la letra "A" y
que esta aparezca en pantalla.....
Esta tontera que ahora no nos llama en absoluto la atencin, caus furor en el mundo de la
programacion. Inmediatamente a "destripar" el programa para ver dos cosas:
40
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Entonces, sabemos que hay interrupciones cada cierto tiempo. Por ejemplo existe una interrupcion
que se activa 11 veces por segundo y que se encarga de mantener el reloj de nuestro PC.
Si fuesemos capaz de que esa rutina de actualizcion del reloj, "ademas" de eso, por ejmplo, enviase
una linea a la impresora.... pues ya tendriamos activo el "print". Genial idea.
Este es el concepto basico de multitarea: reparto de tiempos de una CPU entre varias tareas. Y la
idea, para su epoca, no estuvo mal....
INTERRUPCIONES SOFTWARE
En el diseo del primer procesador Intel de la serie X86 (de los cuales derivan por compatibilidad
los Pentium actuales), se pens en implementar por hardware dentro del procesador de una serie de
interrupciones "software", que cada vez que se activasen se cediese el control a cierta rutina.
En dicho diseo, se definieron 256 posibles interrupciones. Y ademas la intruccion maquina INT
para provocar una interrupcion. Por deficion, entonces se reserv el area de memoria mas "baja" de
la maquina, es decir desde la direccion "cero" para contener las direcciones de esas 256 posibles
rutinas (o programas que son llamados) de interrupcion.
La manera de invocarlas por software en INT 21h (por ejemplo). Esto hace que el procesador salte
a la direccion 21h * 4 y all se encontrar a su vez con la direccion que apunta a la rutina que d el
"servicio" a la INT 21h.
Evidentemente no todas las posibles 256 interrupciones estn ocupadas. No son necesarias tantas.
Por tanto, las no ocupadas apuntan a una instruccin IRET (volver desde interrupcion). Es decir: no
hacen nada. Pero est la posibilidad de que nosotros, en nuestro programa, "colguemos" en vez del
IRET, una rutina nuestra que haga lo que queramos....
Bin, ppues lo que la bios hace, es "disparar" unas interrupciones "software" cada vez que sucede
una interrupcion "hardware". Recordar que habia 16 IRQs (del la 0 a la 15).
41
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
La bios, lo que hace, es que cada vez que suceda una IRQ 0 a 7, dispara una interrupcion 50 a 57h
"software". Igualmente las IRQs 8 a 15, disparan de la 70 a la 77h.
Por tanto esas interrupciones software, debern contener la "direccion" del programa o driver que
va a manejar dicha IRQ.
* Veamoslo con un ejemplo real. Recordad que habios dicho al ver las IRQs que la IRQ 1 era la de
teclado. Entonces que sucede al pulsar una tecla?.
Bien lo primero que sucede es una IRQ 1. Esto interrumpe lo que est haciendo el procesador y tal
y como acabamos de comentar, esto disparar la interrupcion software 51h. Esta interrupcion
software, entonces lo que provoca es que el procesador, busque en la direccion de memoria 51h * 4,
y pega un salto a la zona de memoria que est apuntada por el contenido de esa direccion. Se
supone que en esa zona de memoria "debe" haber un programa, o una rutina que se encarga de
analizar la tecla pulsada y ademas de "sacarla en pantalla". Efectivamente, esa rutina existe, y es la
propia bios quien la ha puesto all.
Realmente el tema es un poco mas complicado. La INT 51h lo que hace a su vez, es invocar a la
INT 09h. (tambien software). Esta, mediante los comandos IN vistos anteriormente, lee del puerto
de teclado. All puede saber la tecla pulsada y no solo eso, sino admeas si tenemos a la vez pulsada
otra tecla (MAY, CTRL, ALT), y ademas si en ese momento se est pulsando o "soltando" la tecla.
Es decir realmente al pulsar una tecla, suceden 2 interrupciones una en le momento de pulsarla y
otra en el momento de soltarla -y otra ms por cada ciclo de tiempo que la tenemos pulsada-.
Una vez analizada la tecla pulsada, hay que sacarla en pantalla. Bien, el "servicio" de video, lo ha
definido tambien la bios, en la interrupcion 10 h. Por tanto, la INT 09h lo que hace una vez
analizada la tecla pulsada en cuando tengamos disponible ya el caracter, se emite una INT 16h que
a su se emite una INT 10h.
Esta activacion, ser tambien mediante comandos IN y OUT a unos puertos que son los
correspondientes al "timer" para generar una onda de sonido hacia el altavoz del PC.
Bien, el encargado de situar estas rutinas "basicas" y de generar la tabla de interrupciones es la bios.
Ademas, pensemos que lo hace "casi" instantanemanente nada mas encender el PC. Si no lo
hiciese, no podriamos ni "ver" las letras en la pantalla. De echo, hasta que no ha definido la INT
10h de video, no podemos ver nada en pantalla. Y hasta uqe no estn activas la INT 09 y 16h, no se
podr pulsar el teclado.
Buen cisco se monta la bios nada mas encender nuestro PC, no?
42
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Al igual que define los accesos a pantalla y teclado, la bios nos d soporte "minimo" para acceso a
disco. INT 13h, etc....
Cuando se emite una interrupcion, se le pasan parametros (contenidos) en los registro generales del
procesador. Por tanto cada INT, por decirlo de alguna manera, admite "parametros" o ordenes
especificas de que hacer. Por ejemplo, la de acceso a disco, espera, en un regustro general, si es en
escritura o en lectura. Y en otros registros generales, el numero del cilindro, la cabeza y el sector
que queremos leer. Y por supuesto, la direccion de memoria en donde queremos que nos deje el
dato. Y ciuantos "bytes" hay que "traer" del disco.
Lo importante en esta parte, que acabamos de ver, es que aunque "todavia" no se ha cargado nada
del sistema operativo, la bios, ya ha sido capaz de deajrnos perfectamente preparado nuestro
hardware y nuestra memoria con las rutinas basicas para empezar a hacer algo.
Y ahora viene ese "algo". Hay que empezar a cargar el sistema operativo.
Empieza la busqueda......
Empieza la busqueda por las unidades de busqueda que tenga definidas en los parametros de la
bios. Por defecto, suele ser A,C. Es decir, intenta cargar desde disquete y si no puede lo hace desde
el disco C:.
Para ello, lee el primer sector fisico del disco: cilintro 0 cabeza 0 sector 1. Lo carga en memoria y
le cede control para su ejecucion.
Vamos a imaginar que el sistema que queremos cargar, es el windows 98. Bien, windows 98
comienza su carga desde un MsDOS, por tanto lo primero que se cargara sera un MsDOS. O bien,
tambien podemos cargar un MsDOS desde el disco de inicio de win98, o desde un disquete
formateado con el parametro /S (es decir, contiene el "sistema").
Supongamos ahora que la carga es desde disquete. El sector de boot del disquete (el cual es creado
con el format), contiene (si ha sido formateado con el sistema - parametro /S -), un mini programa
que lo unico que sabe hacer es buscar un archivo oculto en esa unidad de disco, llamado "IO.SYS",
cargarlo en memoria y cederle control.
* EL IO.SYS inicia la carga y ejecucion. Lo primero que busca es otro archivo oculto en la misma
unidad llamado MSDOS.SYS. Este archivo no es un archivo de ejecucion, sino un archivo de
parametros del sistema que en cualquier momento podemos ver (no es aconsejable tocarlo), con un
editor.
43
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Basicamente el config.sys, lo que puede contener son parametros del propio sistema y sobre todo,
carga de drivers de dispositivo. No es obligatorio que exista. Solo si lo encuentra lo ejecuta.
NOTA: debido a que en Espaa o en otros paises distintos de USA, se utilizan tablas de codigos
especiales (para los caracteres especiales, por ejemplo los acentos, la "", o caracteristicas
regionales) y teclados de acuerdo con el idioma, es obligado en este caso el tener CONFIG.SYS y
AUTOEXEC.BAT con las "pocas" lineas de comando que definen tanto las tablas de codigos como
el teclado. Esto sera lo unico obligatorio. Todo el resto sobra y son herencias del antiguo MsDOS.
Por tanto mi consejo, es no andar tocando estas cosas. Es muy facil, que windows pierda
prestaciones por haber incorporado lineas indebidas en estos archivos. Incluso todavia, hay "viejos"
programas instaladores, que tocan estos archivos y lo unico que hacen es daar nuestra
configuracion de windows.
** Bien, si hemos arrancado desde disquete, esta habr sido la secuencia de arranque, y el sistema
se nos queda en este punto.
El arranque desde disco duro es ligeramente diferente. Lo primero, al igual que en el disquete,
carga el primer sector del disco duro (cilindro 0, cabeza 0, sector 1). Pero en este caso, tal y como
debemos recordar de capitulos anteriores, este sector en un disco duro es el MBR (Master Boot
Record).
Es decir, carga otra vez, el "primer" sector de esa particion, que al igual que el primer sector de un
disquete, contiene un miniprograma que ha sido generado con el format /S, que es "identico" al que
tiene un disquete. Por tanto, inicia la carga del IO.SYS, y la misma secuencia de carga que la
definida anteriormente.
** Es necesario, recordar de nuevo: en un disco duro, hay dos sectores de boot. Uno el MBR que ha
sido creado con FDISK, y otro el "boot" de la particion, que ha sido creado con el FORMAT.
Ambos son necesarios para el inicio del sistema operativo.
44
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
* Vamos a ver a continuacion, por parametros de configuracion en los tres posibles archivos de los
que hemos hablado. MSDOS.SYS, CONFIG.SYS y AUTOEXEC.BAT. Pero unicamente vamos a
ver en este momento los parametros de configuracion. No los posibles drivers (config) o programas
(autoexec) que pueden ser ejecutados o cargados desde all.
Defecto: C
UninstallDir=<Disco de "desistalacion">
Defecto: C
Proposito: Especifica la localizacion de los archivos W95undo.dat and W95undo.ini. Son los
ficheros necesarios para desistalar windows cuando se ha seleccionado la opcion de parmitir
desistalar en caso de una actualizacion.
WinBootDir=<Directorio de windows>
Proposito: Indicar al cargador del sistema desde donde debe inicarse windows.
WinDir=<Directorio de windows>
La seccion [Options] puede contener las siguientes opciones, o bien pueden ser insertadas
manualmente.
NOTA: El valor "booleano" que aparece a continuacion, indicar un "0" para NO y un "1" para SI.
AutoScan=<Numero>
Defecto: 1
45
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
BootDelay=<Segundos>
Defecto: 2
Proposito: Cantidad de segundo en los que aparece la frase "Iniciando windows" y por tanto
permite pulsar F8, en windows 95.
BootSafe=<Booleano>
Defecto: 0
BootGUI=<Booleano>
Defecto: 1
Proposito: Si tiene el valor 1, arrancar windows automaticamente, con el valor de 0, una vez
ejecutado el config.sys y el autoexec.bat, permanecer en el simbolo del sistema. En este caso, ser
necesario teclear "win" para que windows cargue la interfaz grafica.
BootKeys=<Booleano>
Defecto: 1
Proposito: Un valor de 1 activa el uso de las teclas de funcion (F4, F5, F6 y F8). Un valor de 0
desactiva el uso de teclas de funcion durante el proceso de arranque de windows.
BootMenu=<Booleano>
Defecto: 0
Proposito: Colocando un 1, activa el que siempre aparezca el men de seleciion de incio. Si est
colocado a 0 se debe pulsar F8 cuando aparezca la frase "Iniciando windows 95" (o pulsar y
mantener pulsada la tecla CTRL en windows 98 al inicio del PC), para invocar el men de inicio.
BootMenuDefault=<Numero>
Proposito: Se utiliza para seleccionar la opcion del menu de incio de windows que se ejecutar por
defecto.
BootMenuDelay=<Numero>
Defecto: 30
46
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Proposito: Este valor es usado para colocar el numero de segundos que el sistema va a esperar en el
men de inicio de windows, antes de arrancar automaticamente sino seleccionamos ninguna
opcion.
NOTE: Esta opcion no tiene sentido a no ser que la opcicion BootMenu=1 haya sido aadida en la
seecion [Options].
BootMulti=<Booleano>
Defecto: 1
BootWarn=<Booleano>
Defecto: 1
Proposito: Un valor de 0 desactiva el aviso del modo a prueba de fallos al ejecutarse el menu inicio.
BootWin=<Booleano>
Defecto: 1
DoubleBuffer=<Booleano>
Defecto: 0
Proposito: Colocando un 1 activa el "double-buffering" para los controladores que necesiten esto
(por ejemplo los controladores SCSI). Colocando un 2, es una opcion incondicional que activa el
"double-buffering" mirando cuando el controlador es necesario o no.
DBLSpace=<Booleano>
Defecto: 1
Por ejemplo:
47
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
DBLSpace=0
DRVSpace=0
DRVSpace=<Booleano>
Defecto: 1
LoadTop=<Booleano>
Defecto: 1
Logo=<Booleano>
Defecto: 1
Proposito: Si tiene el valo 1 hace que aparezca el logo de windows al arrancar. Con el valor 0 se
desactiva el logo de windows. Un valor de cero, libera una serie de interrupciones software que
pudieran causar incompatibilidades con antiguos TSR del modo DOS o incompatibilidades con
cierto manejadores de memoria de terceros.
Network=<Booleano>
Defecto: 0
Proposito: Con un valor 1, nos paparecer la opcion "Modo a prueba de fallos con soporte de RED"
como una opcion en el menu de inicio.
Unicamente en paises diferentes a USA, es necesario especificar un par de lineas en l debido a las
clasicas configuraciones regionales. (y esto unicamente si tenemos un teclado diferente al teclado
normal utilizado en USA)
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=034,850,C:\WINDOWS\COMMAND\country.sys
(en otros paises de America Latina, los parametros pueden variar ligeramente)
48
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
* Windows 3.1 fu el primer sistema (mejor dicho, fue la primera interface grafica sobre el MsDOS
-no puede llegar a la categora de sistema operativo-), que era capaz de superar la barrera del mega.
Para ello, era capaz ya de poner a trabajar al procesador en modo protegido. (Veremos este
funcionamiento mas adelante).
* Para ser capaz de realizar esto, necesitaba un manejador de memoria en modo protegido. Este
manejador fu un standard creado por microsoft como driver de DPMI (Dos Protected Mode
Interface). Dicho driver era el HIMEM.SYS
* Windows 98, necesita por cuestiones de compatibilidad de la misma interface DPMI para iniciar
su carga. Por tanto es necesaria, pero es opcional el declararlo o n en el CONFIG.SYS. Windows
lo cargar de todas maneras.
NOTA IMPORTANTE: Ademas de lo anterior, en el antiguo MsDOS, era necesario cargar aqu
todos los drivers de dispositivos de los fabricantes (y alguno del propio Microsoft que veremos a
continuacion). Es importante recordar, que estos drivers ya no son necesarios en windows 98, y que
si los ponemos, podemos correr el riesgo de malfuncionamiento, o lo que es peor, de perdida grave
de prestaciones y velocidad dentro de windows 98. Por esto, debemos ser excesivamente cautos con
este archivo de configuracin y ademas vigilar despues de cualquier instalacion ya que todavia
circula mucho software muy viejo el cual tiene la "insana" costumbre de tocar sin permiso nuestro
CONFIG.SYS
Vamos a ver ahora un driver especial de Microsoft. Tambien es una vieja herencia, pero a veces nos
puede resultar necesario el instalarlo para poder utilizar viejos programas MsDOS, o algun juego
que requiere mucha memoria MsDOS. Me estoy refiriendo al EMM386.EXE.
Para poder estudiar el funcionamiento del EMM386.EXE, es necesario repasar un poco la memoria
real por debajo del mega. Es necesario tambien que recordemos lo que vimos en los primeros
capitulos sobre la memoria real.
A modo recordatorio, debemos tener presente que una direccion en MsDOS (debido al
funcionamiento del hardware, es decir debido al funcionamiento del propio procesador de Intel en
modo real), estaba formada por una direccion de segmento y un desplazamiento.
El segmento en hexadecimal, podia valer desde 0000 a FFFF. Exactamente igual el desplazamiento.
La manera de sumarlos era desplazando un cuarteto el segmento y sumando entonces el
desplazamiento para formar una direccion real. (repasar los capitulos anteriores).
Igualmente recordemos, que por diseo, IBM defini la direccion del adaptador de video en el
segmento A000. Por tanto la memoria real, podia (y por degracia, todavia es as por
compatibilidad) llegar desde 0000 hasta A000 (esto corresponde justo a 640 Kbs.). Es por el propio
diseo de donde se encuentra el adaptador de video. Por tanto esta es la maxima memoria real
49
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
"contigua" que puede existir en el PC. Podeis verificar con la calculadora de windows que A0000
en hexadecimal son justo los famosos 640 Kbs de los que hemos oido hablar por todos los lados.
Debemos recordar tambien que desde la C000 hasta la F000 (en la cual se encuentra la bios), estan
en principio reservadas para otras bios de otros posibles dispositivos y tarjetas que puedan
necesirtarlo. En particular la tarjeta de video tiene siempre (practicamente, aunque no es una
norma), su direccion en C000 hasta C7FF.
Pero...... all hay 196 Kbs. y de ellos, unicamente 32 Kbs utilizados por la bios de la tarjeta grafica.
Entonces.... si no tenemos mas tarjetas que tengan bios propia, por qu no utilizar esos Kbs de
memoria para meter algun driver de dispositivo?. O bien por qu no utilizarlos para que el propio
MsDOS meta all sus rutinas, en vez de utilizar el espacio de los primeros 640 Kbs?
Efectivamente, esta idea surgi en el MsDOS 5.0 (y superiores). Recordad que el MsDOS de
windows 98, se identifica internamente con la version 7.10.
** Microsoft en el MsDOS 5.0, modific el codigo del sistema para poderse cargar todo o parte,
tanto codigo como areas de datos reservadas, en dicho espacio. Y ademas dise un driver (el
EMM386) para recuperar dicho espacio y poderlo utilizar incluso para cargar posibles pequeos
programas que se quedaban residentes en la maquina.
Antes de ver con detalle el EMM386.EXE, veamos que otras necesidades podiamos tener con
respecto a ese posible "mega" de memoria.
De esta manera, cambiando simplemente unas direcciones, nos estabamos moviendo en pequeos
bloques de 64 Kbs por encima del mega. Esto en un principio era memoria hardware especial. Una
tarjeta especial con un chip controlador. Esa memoria se direccionaba mediante la programacion
del chip, cambiando la direccion de un puerto, y nos hacia ver una ventana de 64 Kbs en la
direccion fisica de memoria E000 de nuestro PC, la cual se "movia" a lo largo de esa memoria EMS
(o memoria LIM).
Se decidi entonces crear un controlador "logico" EMS, el cual nos permitiese ver la "nueva"
memoria ahora definida como si fuese una memoria EMS de las que acabamos de ver. Se hizo as
para que los antiguos programas que necesitasen EMM, pudiesen seguir funcionando.
50
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Y por ultimo, las malas lenguas comentan que cuando se cre el primer procesador capaz de ir al
modo protegido, el 80286 (los antiguos 286), algun ingeniero de intel, coment a algun tecnico de
Microsoft, que si era capaz de controlar la linea A20 de direcciones del procesador, sera capaz de
obtener otros preciosos 64 Kbs (realmente 64 Kb menos 16 bytes) de memoria real.
Esta historia es curiosa, por lo que vamos a comentarla un poco. Curiosa en plan tecnico, por lo que
pido disculpas por salirnos un poco del tema. Veamos: la definicion de las lineas de direcciones en
un 8086, eran de 20 direcciones. Lineas de direcciones A00 a A19.
Recordad igualmente que para obetenr una direcion real, sumando un segmento y un
desplazamiento, se hacia (por hardware) aadiendo un cuarteto con contentido cero a la direccion
de segmento y sumandole el desplazamiento. Es decir por ejemplo, para sumar el segmento 1234 al
desplazamiento 5678, se hacia:
12340
5678
--------
179B8
Y la maxima direcion que podia sumarse entonces era el segmento F000 (ya que como el
desplazamiento iba desde 0000 a FFFF, de esta manera no habra "desbordamiento") Es decir:
F0000
FFFF
-------
FFFFF
(FFFFF era la maxima direccion real que podia expresarse con 20 lineas de direccion: 5 cuartetos =
20)
Bien, pues Intel, le "sopl" a Microsoft, que si se utilizaba el segmento FFFF, con linea A20
activada no habra desbordamiento. Pero para esto, el software debera estar preparado. Es decir
podriamos sumar:
FFFF0
FFFF
------
10FFEF
Para esto necesitamos las 20 lineas del modo real, mas la linea 21 (la A20) para manejar el "1" que
nos sobra.
51
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
FFFF0
00010
-------
FFFF0
00010
-------
100000 es decir por encima del mega. Y as nos puede llegar hasta 64 Kbs - 16 bytes. A esta
memoria se la llam memoria HMA (o HIGH).
Pues ahora ya estaba relativamente sencillo. La manera de controlar la linea A20, era facil. El
HIMEM.SYS de por s controla todas las lineas de direcciones. Por tanto controla esta en
particular. Y ahora el EMM386, podia ser el encargado de comunicarse con el HIMEM para activar
o desactivar dicha linea, tomar control de dicha memoria y suministrarsela a los programas de
aplicacin.
Como el "primer" programa que podia hacer uso correcto de ella, era el propio MsDOS, se
procedio a modificar su nucleo (al objeto de ensearle a "sumar" direcciones de 21 bites), para
poder utilizar dicha memoria.
Existen ademas otra serie de parametros que se salen del contenido de este
capitulo.
52
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
DOS=UMB
Y por ultimo, tambien, para que el propio MsDOS pueda utilizar la memoria
HIGH (HMA), se deber igualmente incirporar la linea:
DOS=HIGH
DOS=HIGH,UMB
----------
----------
Nos guardar la fecha de la ultima vez que hemos accedido a los archivos de
un disco o n (en funcion del + o del -). Este parametro no tiene efecto en
windows, ya que por defecto windows nos informa de estos accesos.
----------
BREAK [ON|OFF]
53
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
----------
BUFFERS=n[,m]
BUFFERSHIGH=n[,m]
Assigna memoria "real" para contener bufferes de disco. Recordad que cada
sector de disco son 512 bytes, por tanto cada buffer que asignemos, nos
robar medio k de la memoria real.
No tiene ningun efecto bajo windows ni bajo las ventanas MsDOS bajo windows.
Unicamente tiene efecto en MsDOS puro. Y tambien tiene efecto al "arrancar"
windows, antes de que este entre en modo protegido. Antes de que entre el
procesador en ese modo, se est utilizando todavia el antiguo sistema de
apertura y carga de ficheros en MsDOS. Por tanto se ahorraria "algo" de
tiempo al arrancar windows, si este parametro fuese elevado.
--------
DEVICE=
DEVICEHIGH=
En caso de tener que poner algun driver (solo en caso de "extrema necesdad),
podemos utilizar el DEVICEHIGH (en vez del DEVICE), en este caso y una vez
que ademas hemos utilizado el HIMEM y el EMM386.
Casi (pero no todos) todos los drivers admiten funcionar en memoria alta.
54
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Existen especificos (sobre todo los de acceso a las antiguas tarjetas SCSI,
y alguno de red en modo real), que no funcionaran o provocarn cuelgues
aleatorios si los cargamos en memoria alta.
---------
DOS=HIGH|LOW[,UMB|,NOUMB][,AUTO|,NOAUTO]
----------
DRVPARM=
----------
FCBS=x
FCBSHIGH=x
Es un parametro viejisimo. Herencia del MsDOS 1.0 (del ao 82). Este MsDOS
abra los archivos mediante la tencica de "File Control Block". Es decir era
necesario crear en memoria una estructura de control y pasarselo a las
funciones de acceso a disco. Esto ya no se utiliza (desde hace mas de 15
aos). Pero por cuestiones de compatibilidad con los posibles programas
MsDOS del ao 82 que nos quedasen, todavia existe esta opcion.
----------
FILES=nn
FILESHIGH=nn
Indica el numero maximo de archivos que puede tener abierta una aplicacion
MsDOS.
No tiene ningun efecto bajo windows ni bajo las ventanas MsDOS bajo windows.
Unicamente tiene efecto en MsDOS puro. Y tambien tiene efecto al "arrancar"
windows, antes de que este entre en modo protegido. Antes de que entre el
procesador en ese modo, se est utilizando todavia el antiguo sistema de
apertura y carga de ficheros en MsDOS. Por tanto se ahorraria "algo" de
55
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
---------
INSTALL=
INSTALHIGH=
---------
LASTDRIVE=
LASTDRIVEHIGH=
---------
NUMLOCK=[ON|OFF]
---------
REM
----------
SET variable=xxxxxxxx
----------
SHELL=[[disco:]path]programa [parametros]
56
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
-----------
STACKS=
STACKSHIGH=
------------
SWITCHES= /F /K /N /E[:n]
* Como introduccion (y casi, casi como unico resumen), podemos decir que el
autoexec.bat se encarga, o puede encargarse de ejecutar cualquier programa
MsDOS, as como de establecer las condiciones de "entorno" (ya las veremos
mas adelante), de todo el MsDOS, y lo que es mas importante: de todo
Windows. Esto ultimo, deriva de que Windows "hereda" todo el entorno que
tena al arrancar.
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=034,850,C:\WINDOWS\COMMAND\country.sys
57
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Y en el autoexec.bat, son:
CONDICIONES DE ENTORNO
----------------------
Las variables que queramos que se vean en "todo" el sistema y que puedan ser
leidas por un programa, se asignan en el autoexec mediante el comando SET.
Esto lo utilizan muchas aplicaciones.
58
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
SET TEMP=C:\TEMP
Como PATH, ademas, es una variable de entorno, puede ser asignada mediante
el comando SET. Es lo mas comodo. Imaginar que queremos "aadir" al PATH que
tuviesemos en un momento determinado, la carpeta C:\KK. Bien, lo mas
sencillo sera escribir:
SET PATH=%PATH%;C:\KK
Fijaros que lo que estamos haciendo, es decirle que el nuevo PATH, es igual
al anterior (en este caso, se pone %PATH% -es decir encerrado entre simbolos
%), y a continuacion, separado por punto y coma, el camino que queremos
aadir.
59
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
* A partir de ahora me voy a referir unicamente a los CDROM IDE. (la idea
basica, de todas maneras, es igualmente extrapolable a los CDROM SCSI).
** Hasta que surgi windows 98, y nos incorpor un driver casi "universal"
para todas las unidades de CDROM, era bastante normal en el MsDOS em deter
drivers del tipo:
60
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Fijaros que el nombre puesto en /D:MSCD001, puede ser cualquiera, con tal
que sean el mismo en el driver del config y en el programa MSCDEX.
Bien, retomando el tema, estabamos diciendo que windows nos aporta un driver
"casi" universal: el OAKCDROM.SYS (que podemos encontrarlo en el disco de
inicio de windows 98, o bien en la carpeta C:\WINDOWS\COMMAND\EBD). Por
tanto incorporando este driver en el config y a su vez invocando al programa
MSCDEX, tendramos acceso a la CDROM en modo MsDOS puro.
Esta solucion funciona, pero no me gusta por dos motivos: uno, consumo de
memoria MsDOS (al cargar el driver anterior), que luego no sirve para nada
bajo windows. Y segundo motivo, este tipo de drivers en combinacion con
ciertas controladoras y unidades de CDROM, pueden causar inestabilidades al
windows.
Tampoco me gusta, porque esto implica el tener que "mantener" otros config y
autoexec.
61
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
del MsDOS, y nos empiezan a "sonar" los terminos de memoria real, modo
protegido, dispositivo PnP..... etc.
Por poner un simil con otros sistemas operativos, NT y Linux por ejemplo.
Estos no se apoyan en MsDOS, pero para arrancar se apoyan en la Bios de la
maquina. Siempre arranca la Bios. En Windows 95 / 98, hay un paso mas:
primero arranca la Bios, posteriormente el MsDOS y por fin el Windows. El
paso ms es el MsDOS, pero debemos verlo de esta manera: como un "paso" ms.
Hasta ahora, hemos visto el modo REAL. Recordemos que el procesador arranca
siempre en este modo fundamentalmente por cuestiones de compatibilidad.
Recordemos un poco sus caracteristicas:
2) Hay zonas que obligatoriamente estan en uso por el hardware (la zona de
video: segmento A000 a C000)
62
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** que hay que hacer para poner a trabajar la CPU en modo protegido?: pues
muy poco. Se coloca en unos registros especificos la nueva direccion de la
tabla de interrupciones (llamadas aqu "excepciones"), se crea una tabla con
los descriptores de segmento en modo protegido y se le pasa su direccion
tambien a otros registros especiales del procesador, se cambia ahora un bite
de un registro de control de la CPU, y se realiz un salto "largo" (JMP
FAR). A la vielta de ese salto, ya estamos en modo protegido.
Ahora suponer que lo que antes llamabamos segmento (16 bites), ahora es un
indice (es decir vale, 1, 2, 3, 4,.....) y que la direccion real de memoria
es lo que se indicque en una tabla (llamada tabla global o local de
direcciones).
63
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
El modo "1" en principio puede hacer todo, excepto saltar a modo cero.
Igualmente el "2" no tiene acceso a los anteriores, y el "3" no tiene acceso
nada mas que a segmentos de us propio modo. Este es el modo menos potente.
No puede hacer casi nada. Este es modo en que deben ejecutase los programas
de aplicacion. Es el llamado modo USER.
Pero... que pasa si ademas de esta tabla, o este mecanismo mejor dicho, de
"segmentacion", el cual nos d una direccion lineal, esta en vez de ser la
direccion fisica, lo que hacemos es que a su vez apunte a otra tabla
especial. Vamos a llamarla tabla de "paginacion". Esta nueva tabla, tendr
en cada elemento, bien su direccion ya en memoria real, o bien su direccion
en el archivo de paginacion (ya veremos que es esto).
64
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
que nos vamos a crear con las direcciones de dichas paginas. Ademas esa
tabla, va a contener un indicador de si est en memoria real o bien en disco
en el archivo de paginacion.
Bien, al igual que se puede poner poner un mecanismo por el cual las tareas
estn protegidas, tambien puede ponerse un bit de marca que nos indique si
un descriptor de segmento (es decir el codigo, real o virutal) al que apunta
ese descriptor, est autorizado o no para ejecutar una entrada / salida
directa al hardware. Es decir una instruccion IN / OUT en ensamblador de las
que veiamos al principio de estos capitulos.
Por eso, por ejemplo, en windows NT, que tiene virtualizacion completa del
hardware, no podemos realizar ninguna instruccion no permitida, y la mayoria
de juegos basadso en DOS, que intentan acceder al hardware directamente, la
propia CPU no les deja. Se dispara una "excepcion" y el manejador de dicha
"excepcion" se lo prohibe. Recordad que una secuencia mal programada de IN /
OUT directos a un puerto, o bien intentando acceder a un puerto inexistente,
es lo que provoca las caidas de maquina. Un sistema operativo "serio" no
puede dear que se realicen estas cosas (NT, Linux). Un sistema que quiera
guardar compatibilidad ocn el "viejo" MsDOS, por desgracia, no virtualiza
totalmente el hardware, y deja hacer la mayoria de las cosas a casi todos
los programas. Esto es lo que provoca "cuengues" en windows 98 por programas
mal codificados (o mal "educados").
65
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
MULTITAREA REAL
---------------
66
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
1) Intercambio de tareas.
* Hay que hacer notar, que una tarea, puede "perder" el control, antes de
agotar su numero de quantums. S esa tarea hace una peticion de entrada /
salida a disco por ejemplo, debido a que esa peticion es muy costosa en
tiempo (estamos hablando de algunos milisegundos), mientras se ejecuta,
evidentemente la CPU puede hacer muchisimas mas cosas. Por tanto el sistema
operativo toma el control y se lo cede a otra tarea.
El sistema operativo, debe ser "listo". Debe jugar con las prioridades de
tarea y variarlas ligeramente. Es cedir, a un programa que hace mucha
entrad/salida, debido a que est poco tiempo en memoria, el sistema
operativo le debera subir la prioridad. En cambio al reves, a un programa
que chupa mucha CPU y no realiza apenas entrada / salida, el sistema
operativo debe bajarle la prioridad al objeto de que no se apodere todo el
tiempo de la CPU.
67
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Seguro que alguien con imaginacion, podra buscar alguna utilizadad real a
este tipo de funcionamiento en nuestro mundo "casero" del PC. Por si acaso,
es bueno saber que existe....
68
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Tal y como hemos comentado previamente, los componuentes, USER, GDI y KERNEL
que ejecuta windows son de 16 bites. Ademas de estos 3, windows 95 / 98,
carga el USER32, GDI32, y KRNL32 que son los 3 respectivos componentes para
tareas de 32 bites.
Pero por desgracia, los componentes de 32 bites a este nivel, llaman a sus
respectivos de 16 bites "siempre", los cuales son los encargados "reales" de
realizar las tareas.
Por tanto una tarea de 32 que utilice el GDI32, siempre salta al subsistema
de 16, que a su vez contiene (API de 16):
* GDI16
* Minicontrolador de visualizacion
* Minicontrolador de Impresora
69
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Bien, una vez "matizado" este comportamiento, vemos que por desgracia,
windows 95 / 98, se apoya (por mantener compatibilidad total) sobre los
subsistemas de 16 bites.
** Y ahora para los programadores (o quien haya seguido con atencion estos
capitulos): cual es el segmento mayor que se puede poner en una tarea de 16
bits?: facil 2 elevado a 16 o sea 64 Kbs de memoria. Por tanto el tamao de
la "pila" ("heap", monton), maximo que puede utilizar una tarea de 16 bites
es 64 Kbs. Pues bien a ese "pequeo" espacio de memoria y que ademas es
INDEPENDIENTE del numero de megas de nuestro PC (por diseo), es lo que se
le llama RECURSOS. Por tanto, hay tres "pilas" de recursos (correspondiente
a los tres programas principales del nucleo: USER, GDI y KERNEL. Estos
recursos libres los podemos ver ejecutando el programa RSRCMTR.EXE del
directorio de windows).
Por desgracia, todas las llamadas a funciones de esta API, que nos vayan
creando "objetos" (asignacion de memoria, iconos, ventanas, etc...),
consumen una pequea cantidad de esta "pila". Lo grave es que si nos
quedamos sin alguno de los recursos, tenemos muchas posibilidades de que
windows se "caiga" -nos intenta enviar un mensaje, pero puede ya caerse en
cualquier momento-)
70
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
maquina.
El modo cero tiene ademas control absoluto sobre los otros maods. Por tanto
si se cae cualquier proceso de los otros modos es capaz de "rearancarlo". Es
decir: simplemente no pasa nada.
Este es el gran dilema. Por ejemplo puedo comentar que en su dia, cuando se
diseo windows NT 4, fu muy criticado debido a que meti dentro del nucleo
(modo cero) el GDI (las versiones anteriores no lo tenian as). Esto fue por
razones de eficiencia del sistema. Pero peligroso: un programa que utilizase
mal el GDI, ahora ya podia "tirar" al sistema. Es decir, a veces hay que
tomar deciones de diseo "peligrosas".
** Con todo este "rollo" hemos terminado de ver un poco las "tripas" de
windows, y quiz ahora entendamos un poco ms de como, cuando y porqu
windows puede sufrir una "catastrofe". Vamos a pasar ahora a ver ya la carga
71
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
completa de windows.
Para crearlo, debemos arrancar con la tecla CTRL pulsada, y cuando nos saque
un men, pulsar MAY+F8 y darle al INTRO. Nos ir pidiendo confirmacion de
linea por linea para su ejecucion, tanto del config.sys como del
autoexec.bat como algunos drivers de windows. Le damos a todo que s.
c:
cd \
type bootlog.txt > boot.txt
** Este fichero, nos puede "salvar" la vida mas de una vez. El proceso que
he descrito anteriormente es igualmente valido si windows "se niega" a
arrancar y se cuelga en el arranque. En este caso, el proceso a seguir es
similar, pero con una matizacion.
c:
cd \
attrib boot.log.txt -s -h -r
copy bootlog.txt boot.txt
72
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
b) Que ademas haya instalado alguna VXD "peligrosa" (muy corriente esto
ultimo). Las VXD son peligrosisimas en caso de estar mal realizadas. Hay dos
posibilidades para que windows las cargue: o bien las "referencia" en el
registro, o bien en el caso de que el nuevo producto instalado, las deje en
c:\windows\system\iosubsys windows cargar de ese directorio automaticamente
todas la VXD que all se encuentre.
Windows 98, conserva por defecto una copia del registro de los ultimos 5
dias que hemos arrancado el PC. Esta copia la realiza la primera vez que
arrancamos el PC en el dia (por eso, la primera arrancada del PC en el dia,
es algo mas lenta que el resto de veces que arranquemos en ese dia).
Igualmente windows nos d una herramienta para reciperar el registro: el
SCANREG.
SCANREG
-------
Para utilizarlo, arrancamos con CTRL pulsada, y cuando nos saque un men,
seleccionamos "Solo Simbolo del Sistema". All tecleamos:
scanreg /restore
Nos mostrar una lista de las ultimas 5 copias del registro. Seleccionamos
la del dia que queramos recuperar (recordando que ha sido realizada la copia
al inicio de dicho dia, por tanto si nos acaba de suceder el problema,
podemos recuperar la de ese mismo dia), y recuperamos el registro.
73
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
*** Pero puede ser que windows siga sin arrancar (o con pantallas azules).
Esto suele ser debido a que se ha copiado alguna VXD que impide el arranque
en el directorio c:\windows\system\iosubsys. Debemos intentar localizarla y
renombrarla con alguna "extension" diferente a VXD (si no termina en VXD,
windows no la cargar). Mi consejo es controla este direcotorio. Conviene
tener una lista de las VXD que windows monta en l. Y vigilar despues de
cada instalacion, si se ha montado una nueva y apuntarla.
SFC
---
La primera vez que lo ejecutamos (Y DEBERIA SER NADA MAS INSTALAR W98), crea
una base de datos con loas versiones de todos los programas y Dlls de tu PC.
Si es nada mas instalar, justo son las de win 98.
Una vez ejecutado, debemos entrar en configuracion y marcar las DOS ultimas
casillas, de verificar ficheros borrados, etc......
Posteriormente, cada vez que lo ejecutemos compara su base de datos con las
versiones que tienes monstadas en ese momento. Si difieren nos permite, bien
actualizar sus datos, o RECUPERAR desde los ficheros de instalacion de W98.
74
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Llegado a este punto, hemos hablado varias veces del registro de windows.
Conviene ahora hablar un poco mas en detalle. El registro es el 50% de
windows (segun la propia definicio de Microsoft). Por tanto debemos ser
"cariosos" con el.
REGISTRO DE WINDOWS 95 / 98
----------------------------
El registro, presenta de forma jerarquizada toda la informacion que windows
y el resto de las aplicaciones escriben en l.
Sustituye a los antiguos ficheros INI en los que cada aplicacion escribia
por separado.
Claves generales:
------------------
HKEY_LOCAL_MACHINE
===================
75
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
ENUM : Los "enumeradores" de bus de windows son los que aqu construyen el
arbol del hardware. Se asigna un codigo unico de identificaion para cada
dispositivo.
Subclaves principales:
76
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
HKEY_LOCAL_MACHIME\SOFTWARE\Nombre_de_compaia\Producto\Version
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT
CONTROL
SERVICES
77
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
============================================================
Con esto se finaliza la clave HKEY_LOCAL_MACHINE.
HKEY_CURRENT_CONFIG
HKEY_CLASSES_ROOT
HKEY_DYN_DATA
que nos muestra el programa regedit, no son mas que "alias" de otras
subclaves del mismo nombre de HKAY_LOCAL_MACHINE, por lo que modificando
cualquiera de ellas, (el alias o la original), se modifican ambas.
================================================================
78
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
-----------------------------------------------------------------------
1) Carga de los interface con un pocible sistema de red en modo real (las
antiguas redes basadas en MsDOS).
Las VXD son muy "golosas", ya que se ejecutan en el anillo cero (en modo
kernel) de la maquina y por tanto tienen control absoluto sobre ella. Por
tanto un programa de aplicacion podra comunicarse con "su" VXD y tener
control de la maquina. Por estar en el anillo 0, son muy peligrosas. Una VXD
mal codificada, nos causar pantallas azules aleatorias, o incluso que
windows no llegue a arrancar.
79
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
19) Se cargan los modulos USER y KERNEL (tanto de 16 bits como de 32).
80
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
* [mci] Esta seccion hay que vigilarla tambien "con cario". Esta est
totalmente heredada de windows 3.1 y corresponde a los dispositivos de
captura de video y audio (y su manejo). Por tanto cualquier problema con
captura de imagen e incluso con tratamiento de imagen, puede tener su causa
en esta seccion. En particular, los problemas con el QuickTime anterior a la
version 3, son provocados por un controlador introducido en esta seccion. Es
otra seccion candidata a tener una copia y que la vigilemos despues de cada
instalacion.
* Por ultimo, debemos recordar que existe un par de lineas en el win.in con
la instruccion load= , o run=.
Estas instrucciones son totalmente heredadas de windows 3.1. All en windows
3.1 era donde se especificaba la carga de algun programa o servicio, que
ahora en windows 95 / 98 se especifica ya en el registro. Por tanto no debe
tener contenido dichas instrucciones. Si lo tuviesen, es que realmente s
que hemos intaldo algun "viejisimo" programa de windows 3.1, y por tanto,
casi, casi seguro que nos causr algun problema. Estas lineas son otros
candidatos a mirar en caso de problemas.
1) En el grupo: Programas->Inicio
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
81
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
HKEY_CURRENT_USER
Sotfware
Microsoft
Windows
CurrentVersion
5) Realmente la clave anterior, "no existe". Sino que es una "vista" en ese
momento de una clave rea lque s que existe en el registro. Esta es:
HKEY_USERS
.DEFAULT
Software
Microsoft
Windows
CurrentVersion
Por tanto es en esta calve, si, existien las subclaves Run y RunServices,
donde deberemos tocar.
0000
.....
9FFF 640 Ks
A000 Memoria grafica de video -64 Ks- marco de mapeo al video
B000 Memoria para pantallas de texto (monocromo) -32 Ks-
B800 Memoria para pantallas de texto (color) -32 Ks-
82
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
83
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
linea:
LocalLoadHigh=On
84
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Esto seria logicamente, una funcion de una libreria del sistema (de una
DLL). El propio sistema o cualquier otro programa, llamandola, sabra el
espacio libre.
Lo logico en este caso, es preparar bien esas funciones, y generar con ellas
una libreria dinamica (DLL).
** Pero no todo van a ser ventajas. Por desgracia, vemnos que en el mundo
real muchos problemas nos provienen de que "alguien" nos machaca una version
de una DLL y nos deja de funcionar cualquier otro producto (incluso el mismo
windows).
Pues es verdad. Voy a intentar explicarlo. Imaginemos que una DLL (antigua)
no sabe calcular bien alguna cosa (por ejemplo el tamao en disco, debido a
que es tan antigua que no "conocia" la FAT 32). Imaginemos tambien, que esa
DLL se arregla y se distribuye con una nueva version del sistema operativo.
Y vamos a imaginar tambien que un programa "viejo" de alguna aplicacion de
terceros, decidi en su dia distribuir esa DLL por si acaso alguien la tenia
daada. Y ademas su proceso instalador es "malo" y no verifica que exista
una nueva version, sino que copia directamente la DLL.
85
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Lo mismo podemos decir de otras capas de windows: ODBC, OLE, ASPI, TWAIN,
etc, etc,....
*** Retomando el tema anterior, hemos visto que as DLLs son necesarias y
ademas nos pueden dar muchas ventajas (y algun inconveniente, pero no en si
mismas, sino en una mala distribucion).
Bien, las DLLs actuales traen decenas e incluso cientos de funciones, que
utilizan tanto el sistema operativo como cualquier aplicacion windows.
Hay un caso que nos sucede a veces, despues de alguna instalacion en el cual
de pronto recibimos el mensaje "Invalid DYNALINK" o "Simbolo DYNA no
definido".
Esto nos indica un "machaque" de DLL por una antigua. Realmente el mensaje
quiere decir que se est intentando utilizar una funcion de una DLL, y la
DLL s que existe, pero dentro de ella, no existe esa funcion.
** Muchas veces hemos oido la palabre "driver" o una "VxD". Y sobre todo
hemos oisdo hablar de ellos cuando tenemos problemas, o bien cuando nos sale
86
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Bueno, y todo esto que s? para que sirve? puede realmente traerme
ventajas o ms bien problemas?...
1) Aplicaciones
2) Interfaz de Usuario e Interfaz de ordenes. Base de Registro
3) Nucleo de Windows
4) Administrador de maquina Virtual. Administrador des sistema de archivos
instalable. Administrador de configuracion.
5) Controladores de dispositivo
6) ..... hardware ......
Por otra parte, como programador, os puedo decir que es uno de los temas mas
complicados de realizar. No por la complicacion de hacer la VxD en s
(realmente con conocer el hardware del dispositivo y poco ms nos puede
servir), sino porque es muy dificil de probar (y muy engorroso). Normalmente
no se realizan suficientes pruebas de estas VxD.
87
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Como nota curiosa, los VxD en Win95 / 98, se pueden cargar dinamicamente (la
mayoria de ellos) y no es necesario hacerlo en la carga inicial de windows.
Igualmente, el sistema operativo, utiliza para ellos memoria "bloqueada". Es
decir marcada como no pagiunable, para que permanezcan siempre en memoria e
intentar optimizar as los accesos a estas VxD.
Son los equivalente a lo que en windows 3.1 eran los archivos .386
88
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Aunque hablamos sobre win 95 / 98, la introduccion a las redes que vamos a
comentar aqu, es de ambito general. Puede aplicarse a cualquier sistema.
Unicamente matizaremos explicitamente alguna caracterisitica que posea el
win95 / 98 y que no posean otros sistemas.
7) Aplicacion
6) Presentacion
5) Sesion
4) Transporte
3) Red
2) Enlace
1) Fisico
89
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Windows 95, nos suministra varios tranportes de red. Por ejemplo, los mas
conocidos on NETBEUI (protocolo propietario de Microsoft). IPX (desarrollado
por Novell) y TCP/IP (desarrollado por el departamento de defensa de EEUU).
Otros transporte que nos suministra es por ejemplo el DLC (para dialogo con
arquintecturas SNA -grandes mainframes de IBM-).
Este cliente permite la conexion sobre cualquier protocolo NDIS que admita
interfaz NetBIOS. Cuidado!!, porque esto es lo importante.
* Si utilizamos NetBEUI sabemos que "seguro" que tenemos NetBIOS. Pero este
transporte no es "routeable" (no se puede "redirigir"). Por tanto si entre
nuestros PCs existe un "router" (o un "proxy" que haga de router), el
trafico NetBEUI no podr pasar. S este es el unico transporte de red, ambos
PCs no se "veran".
* Si utilizamos IPX, podemos decirle que vaya sobre NetBIOS (en la ficha
propiedades, al pinchar el transporte en Panel de Control->Red). Por o tanto
si lo tenemos as, s que se veran ambos PCs a traves de este transporte.
90
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
no ir sobre NetBIOS. Esto quiere decir, que no siempre hay garantias de que
si tenemos TCP, funcione el cliente para redes Microsoft.
Bien, lo que voy a describir aqu, en principio sirve para dos PCs
conectados de cualquier manera, es decir conectados en una de las siguiente
posibilidades:
1) Cliente
2) Transporte
3) Servicios
91
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
escribir en el como si fuese otro disco de nuestra maquina (mas lento, pero
bueno...), o bien asignarnos su impresora e imprimir el ella.
Para realizar lo anterior, necesitamos una red con las tres capas "Cliente",
"Transporte(s)" y "Servicio". Aunque existen muchas rtedes y transportes,
vamos a ceirnos a unas cuantas que nos da gratuitamente w98. (el resto son
de pago y son de terceros). Para ello vamos a instalarnos una sencillita red
"microsoft".
Se supone, que el "otro" PC, tiene la misma configuracion (al menos el mismo
tranporte de red, en este caso el NETBEUI), y tambien "ofrece" servicios.
92
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
5) En cada PC, con el boton derecho del raton sobre el disco, carpeta o
impresora que deseamos "servir" a la red, le tenemos que dar "compartir" y
el nombre y derechos con el que queremos compartirlo.
ping xxx.xxx.xxx.xxx
ping nombre_del_otro_PC
93
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
\\nombre_del_otro_PC
\\xxx.xxx.xxx.xxx
Se nos tiene que abrir una ventana con los "servicios" que el otro comparte.
Una direccion IP est compuesta por 4 bytes. Recordemos que un byte puede
tener un valor decimal entre 0 y 255. Por tanto una manera de represntar una
direccion IP es:
Este numero tiene que ser unico en el mundo en ese instante. Como se
consigue?. Bien, relativamente facil. Existe una organizacion que d las
direcciones IP en el mundo.
Y por fin una modesta clase C, tiene 3 numero prefijados y el ultimo puede
ser cualquiera. Es decir una clase C abarca 255 maquinas.
94
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Es importante recordar en esta parte, que por CADA tarjeta de red o por
cada modem activo, tendremos una direccion IP diferente en cada adaptador.
IP = Internet Protocol. (el resto, es decir TCP y UDP, son protocolos por
encima del IP). Este es el transporte basico. Un mensje que sale de nuestor
PC es un "datagrama IP". Los datagramas IP iguen la filosofia de la "patata
caliente". Es decir, si a t te dan una patata caliente que haces con
ella?. Una de dos, o se la "pasas" a otro o la tiras al suelo. Pues
exactamente lo mismo hace cualquier maquina en internet. Para que nuestro
"datagrama IP" llegue al destino, debe pasar por muchas maquinas. El
servidor de nuestro ISP, los routers en internet, etc, etc,. Todos tienen la
filosofia de la "patata caliente". Cuando reciben un datagrama IP, lo
sueltan inmediatamente a la red.... o se olvidan de l. Ademas, puede
incluso pasar, que dos "datagramas IP" que salgan de nuestro PC, lleguen
"desordenados" al destino. Si cada datagrama, es una patata cliente, un
router en internet puede recibir y enviar al datgarama por una tarjeta suya
de red. Por cualquier motivo se le acumulan las peticiones sobre esa
tarjeta, por ejmplo, y el siguiente datagrama lo saca a la red por otra de
sus tarjetas.... Ademas, puede que reciba un datgrama IP, y como no le viene
"bien" el tamao recibido, decide partirlo en DOS y enviar dos datagramas a
la salida.
Entoces como es que fucnionan las cosas?. Pues bien, para esto est el
software que est por encima. Puede ser de dos tipos: TCP y UDP.
95
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Existen otros protocolos por encima del TCP/IP. Los mas conocidos son FTP
(utilizado para el tranporte de ficheros) HTTP (para paginas web).... y
decenas de ellos ms, que se salen un poco del alcance de estos capitulos.
Ademas hemos comentado sobre los "clientes" de red. Es decir sobre la capa
de red que nos permite "ver" o "compartir" recursos con otras maquinas. Y
hemos comentado, que esto no es posible si tuilizamos unicamente TCP/IP
puro. Como windows 95 / 98, si puede, instala NetBIOS sobre TCP/IP,
entonces, cuando est funcionando NetBIOS, s que funcionar el Cliente para
Redes Microsoft. En otro caso, deberemos "ademas" instalar un transporte de
red que pueda utilizar dicho cliente.
Existen capas de red (similar a los Clientes), de terceros que nos dan esta
posibilidad. Por ejemplo el Cliente NFS. El cliente NFS (Network File
System), es un cliente que es capaz de utilizar discos (mapearse discos)
sobre TCP/IP puro. Para que esto sea posible, evidentemente tiene que haber
tambien un "servidor" NFS.
96
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
NETSTAT : sirve para ver el estado de los puertos (mas adelante veremos este
concepto), en nuestro PC. En principio utilizarlo con el parametro -a. Es
decir NETSTAT -a
Esto nos mostrar los puertos que est utilizando. Como introduccion,
debemos comentar que existen 65535 puertos disponivbles. Del 0 al 1024 son
reservados para el TCP, y del 1024 en adelante para aplicaciones de usuario.
En particular una posible "aplicacion" de usuario es el famoso BO (Back
Orifice). Este "pilla" un puerto 3x.xxx (treinta y tantos mil). Tiene un
valor por defecto, pero cuidado: se puede "configurar".
NET : Admite muchos subparametros. Nos permite por ejemplo mapearnos una
unidad de red, desonectarla, y en general utilizar directamente todos los
comandos para actuar sobre una red. Es el "antiguo" comando LM (Lan
Manager).
COMUNICACION TCP/IP
-------------------
97
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Como se solicitan los servicios o como hablan dos maquinas bajo TCP?. Muy
sencillo, se establece un "socket" -un canal de comunicacion- y como? pues
un socket no es nada mas que una conexion entre una maquina y un puerto con
otra maquina y otro puerto. Es decir intervienen 2 maquinas y 2 puertos.
Para abrir un socket (canal de comunicacion), una maquina debe solicitar una
direccion ajena y un puerto. Si en ese puerto, en la otra maquina, hay un
programa escuchando (LISTENING), este programa atender a nuestras
peticiones.
** Y una vez con esta introduccion, vamos a "mezclar" todos los conceptos y
darlos un pequeo "repaso".
98
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Este tema que parece una tontera no lo es tanto. Y el dia de maana, cuando
tengamos ms de un PC en casa unidos mediante red, y a la vez uno de ellos
por modem a internet, el evitarnos quebraderos de cabeza. Igualmente en esta
situacion estar mucha gente en su trabajo. Intranet para la red corporativa
e internet via modem.
INTRODUCCION
------------
1) DIRECCION IP
---------------
Bajo TCP/IP cada ordenador, debe tener una direccion unica en el mundo. Esta
direccion viene especificada por 4 numeros, separados por puntos. Y cada uno
de estos numeros puede ser de 0 a 255. Es decir, la direccion mas pequea
ser:
0.0.0.0
y la maxima:
255.255.255.255
Esa direccion IP, debe existir para cada tarjeta de red (y la conexion
telefonica es "otra" tarjeta de red) que existan en nuestro PC. Por tanto,
si nuestro PC tiene una tarjeta de red interna y ademas una conexion
telefonica, cuando estemos conectados a internet, tendremos DOS direcciones
IP. Una para nuestra tarjeta interna de red y otra para la conexion
telefonica.
Igualmente el comando:
ipconfig /all
99
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
nos d una informacion mayor que el anterior. Este comando ocupa mas de una
pantalla, por lo que lo mejor es darlo con:
2) MASCARA DE SUBRED
--------------------
Aunque este concepto no es tan basico, voy a intentar definirlo (pero de una
manera MUY simplificada, y con terminologia de uso corriente, es decir, es
ms potente de lo que vamos a ver aqu). Se define como MASCARA, aquella
direccion que enmascarando nuestra direccion IP, nos indica si otra
direccion IP, pertenece a nuestra SUBRED o no.
3) SERVIDORES DE DIRECCIONES
----------------------------
Bueno, y la pregunta del millon como obtenemos o asignamos una direccion
IP?
Existe evidentemente un problema: dos maquinas en el mundo en la misma red,
no pueden tener la misma direccion IP (todo Internet es una UNICA red.
INFOVIA es otra unica red entendida como intranet gigantesca).
Ultima posibilidad -la ms elegante-, pero solo aplicable a windows 98. Ento
no es aplicable a win95. Windows 98 incorpora un mecanismo llamado "Autonet
Configuration". Consiste en que sino tenemos direccion IP, y no existe
servidor DHCP, el solo se "inventa" una direccion en ese momento.
Evidentemente primero "busca" en nuestra intranet una direccion que no este
ocupada. En este caso siempre busca una direccion del tipo 169.254.x.x (con
mascara de tipo 255.255.0.0). Esta direccion como vimos al principio es una
de las reservadas y de las que se garantiza que no existan en internet.
100
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
4) GATEWAY
----------
Es la direccion de la maquina que nos va a dar salida a la red. (suponiendo
que exista tal maquina). Evidentemente si tal maquina no existe, somos
"nosotros" mismos, o sea nuestra propia maquina.
TABLAS DE RUTAS
---------------
Bien creo que con estos conceptos, ya podemos empezar un poco. Vamos a
analizar primero como est nuestra maquina. Supongamos que tenemos una
tarjeta de red y un modem. Supongamos tambien que *no* estamos conectados a
internet.
Tal y como hemos visto antes, nuestra tarjeta de red, tendr una direccion.
Bien porque se la hemoss dado a mano, bien porque nos la ha dado un servidor
DHCP. o bien porque windows 98 se la ha "inventado".
route print
Esta tabla de rutas (que puede ser modificada y puede ser mucho mas
complicada si tenemos varios adaptadores de red o bien tenemos abierta
ademas una conexion telefonica), se lee de abajo a arriba. (y las
direcciones que empiezen por 255 y 224 son reservadas y por tanto las
ignoramos y las direcciones que terminene en 255 tambien estan reservadas).
101
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
d) No hay mas, por tanto cualquier otra direccion, nos dar inmediatamente
un error de direccion o direccion no encontrada. Pero inmediatamente, sin
llegar a salir de a la red.
d) Y por fin vemos arriba del todo que para cualquier direccion (0.0.0.0)
que no hayamos encontrado antes en la tabla de rutas e investigando primero
por orden de las metricas correspondientes, mi gateway es mi direccion IP a
traves del modem y por tanto saldr a la red a traves del modem.
** Y con esto, creo que podemos ya tener una pequea idea sobre el TCP/IP.
102
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Una de las capas, es precisamente el Adaptador de Red. Nada nos impide que
el Adaptador de Red sea un modem (o un cable sere o paralelo), en lugar de
la "clasica" tarjeta de red.
Vamos a introducir un poco lo que son los modem y los problemas que nos
podemos encontrar.
Pensar que un cable telefonico, tiene ademas "ruido" (por muy "limpio" que
sea). Existe una ley fisica que a partir de la maxima relacion posible
seal/ruido, deduce que la maxima velocidad teoria es de 33600 bps (bits por
segundo o baudios).
103
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Bueno, pues pensemos ahora, que ha dialogado compresion. Que vamos a enviar
un fichero de texto y que en ese fichero se consigue la maxima compresion:
16 a 1. Y que tenemos una conexion perfecta a 33600.
Imposible!!. Por el "cable" del modem hemos visto que solo pueden ir 112500.
Luego entonces, el modem, al ver que no puede "alimentar" al cable de
salida, empieza a "renegociar" su velocidad con el modem contrario. Como la
compresio es de 16 a 1 y lo maximo que puede recibir es 112500, realiza el
calculo de 112500 / 16 = 7031. Y entonces "baja" (o lo intenta) su velocidad
por debajo de 7000 baudios. Suena ridiculo no?.
Como esto "pasa" con todos los archivos, y en cada uno de ellos su posible
factor de compresion es diferente, pues al modem lo estamos volviendo loco.
Cada 2 por tres est intentando renegociar velocidad. Pensemos que al
bajarnos una pagina web, hau varios archivos y muchas imagenes, cada uno de
ellos tendr (admitir) un factor de ocmpresion diferente.... esto es un
"cisco".
Ahora solo falta saber si esto es verdad: como nos informa windows?.
Tenemos varias maneras de saberlo:
104
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Ha surgido varias veces como tema de discusin la velocidad real del modem.
Habia gente que comentaba que aunque su modem es un 28,8 vea velocidades
bajo windows de 56000 o incluso velocidades de 112500.
1) El puerto de comunicaciones
2) El modem
3) El dialogo entre nuestro modem y el de nuestro ISP.
105
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Bueno, para ello, lo que debemos hacer es realizar una conexion con la
herramiente Hyperterminal de windows. Marcamos a nuestro proveedor. Una vez
establecida la comunicacion, le damos a INTRO y luego tecleamos despacito
"+++" (3 simbolos "+"). Nos debe salir "OK". En este momento hemos entrado
en dialogo con el modem. Ahora le tecleamos (en minusculas o en mayusculas,
pero NO debemos mezclar ambos):
ate1 (no veremos ninguna letra por pantalla, pero lo est recibiendo el
modem. de esta manera le ponemos "eco" al modem, para que a partir de ahora,
veamos lo que tecleamos).
Posteriormente tecleamos:
atw2
ato
Y nos mostrara por pantalla la velocidad REAL de portadora entre ambos modem
as como la compresion negociada entre ellos.
* Evidentemente esto mismo se puede hacer "de partida". Pero hay que hacerlo
con mucho "cuidado". Si la informacion de partida ya est digitalizada,
podemos correr el riesgo de perdida de informacion al intentar digitalizarse
otra vez en la centralita.
106
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Bien, a la vista de lo anterior, resulta que tenemos mas pegas de las que
parece. Debido al punto 3) y 4), pocos en nuestro pais, estarn en
condiciones optimas de poder utilizar correctamente esta norma.
Las normas son incompatibles. Es decir para comunicar con la norma X2, ambos
modem (el nuestro y el del ISP) deben soportar dicha norma. Igual con la
norma K2FLEX. Cada una de ellas tenia sus pequeas ventajas e
inconvenientes. Y lo que es peor, no eran normas "oficiales".
Rcordad que tanto el modem del nuestro ISP como el nuestro deben dialogar en
la "misma" norma.
** Pero tenemos una pega ms: estas seales son muy sensibles al "ruido" y a
las condiciones del cableado. Por tanto, aunque consigamos comunicacion
"digital", esto no quiere siempre decir que sea mejor que la analogica. A
veces es necesario "forzar" al modem e inhabilitar en l la comunicacion
digital. Esto es debido a que si las condiciones no son optimas, los modem,
pasarn mas tiempo dialogando el ajuste de velocidades y la correccion de
errores que realmente transportando los datos, y esto ultimo incluso provoca
cortes inexplicables. Por desgracia esto es as de duro.
107
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Existe un comando AT, que funciona en casi todos los modem del mercado que
es:
at+ms=11
RDSI: Es una tecnologia ya vieja, que nos permite hasta 64 Kbs por canal.
Para poder tener RDSI necesitamos una tarjeta especial en nuestro PC, e
igualmente una o dos lineas especiales (cada canal es una linea) contratadas
con telefonica. Esta tecnologia era bastante mas cara que la tecnoclogia de
modem. Actualmente al precio que se est poniendo en Espaa las llamadas
telefonicas locales esta opcion de comunicar mediante RDSI ya es
competitiva.... sin fuese por la introduccion casi inmediata de otras
tecnologias que estan empezando a surgir. Excepto el driver de la tarjeta
que es necesario el del fabricante, tanto w95 como w98 soportan esta
tecnologia.
108
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
** Hemos estado viendo entonces, una serie de capas que van recubriendo al
nucleo de windows. Quiz hemos hecho mas incapi en las capas de red, debido
a que actualmente (y en el futuro) dependemos de internet. Nuestro PC ya no
es una maquina unica. Se est integrando en la red. Pero evidentemente
existen otras "capas" que rodean al nucleo de windows y que se van
inicializando segun windows est arrancando. Todo esto, "Desde que pulsamos
el boton de encendido de nuestro PC...". Vamos a citarlas a continuacion
describiendo unicamente un poco sus funcionalidades.
Y ahora empezamos a crecer hacia arriba. Hay dos motivos fundamentales para
esto:
109
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Evidentemente existen API's para mucas cosas: para video, sonido, manejo de
cualquier dispositivos SCSI, acceso a bases de datos (cualquiera).... etc.
ASPI: Es una capa de abstraccion del hardware que nos permite acceder a
caulquier dispositivo SCSI. (es necesario recordar tambien que el
controlador ESDI_506.PDR para acceso a discos duros IDE, nos permite tambien
una interfaz SCSI con el CD-ROM o grabadores de CD que sean IDE ATAPI). Por
tanto, los programas "grabadores" de CDROM, al utilizar la interface ASPI,
les d igual que el grabador sea IDE ATAPI o SCSI o incluso de puerto
paralelo. El programa grabador, "d" ordenes a la capa ASPI.
REDES: Este es el ejemplo de mayor abstraccion. Una vez fijada la red, nos
d igual que es lo que hay en el otro extremo. Incluso que sistema operatvio
tiene. Nosotros "vemos" perfectamente su disco compartido. Como ejemplo: un
disco particionado con el sistema nativo de NT, tiene particion NTFS que
windows 95 / 98 no puede ver. No sabe ver otras particiones que no sean FAT.
Pero si ese disco est compartido en una red, podemos verlo perfectamente
desde un ordenador con win 95 / 98 como si fuese un disco local. Es
exactamente igual a efectos de la aplicacion, e incluso del propio windows.
110
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Como punto final a todo esto, est el "shell" de windows. Actualmente dicho
shell es el propio explorer.
** Creo que como una pequea vision general del sistema, estos
"capitulillos" han podido servir para perder el miedo a ese gran desconocido
que es windows. La vision que he intentado dar, por poner un simil con la
medicina, es la vision desde el punto de vista de un "enfermero", saber o
intuir por donde van las cosas. Ni tan siquiera he querido complicar las
cosas para intentar verlas desde el punto de vista de un medico de medicina
general. Y pensar que ademas, todava, existen los especialistas. Nos
quedamos simplemente en la sala de "curas". En la "enfermera".
** Como colofn, voy a incorporar unos cuantos ANEXOS sobre alguna pequea
utilidad y unos pequeos cuidados que debemos tener en windows.
La primera vez que lo ejecutamos (Y DEBERIA SER NADA MAS INSTALAR W98), crea
111
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
una base de datos con las versiones de todos los programas y Dlls de tu PC
(realmente, si nos fijamos, con los que residen en las carpetas mas
importantes. Pero esto lo podemos personalizar tambien dentro de las
opciones de configuracion del propio programa)
Una vez ejecutado, debemos entrar en configuracion y marcar las DOS ultimas
casillas de esa pantalla, es decir: de verificar ficheros borrados y
verificar numero de version e los programas.
2) El criterio basico para recuperar o no una DLL o programa, *no* debe ser
nunca la fecha de creacion del archivo. Guiarnos *siempre* por el numero de
version de la DLL o programa. Un numero de version *superior* siempre es el
correcto. En el caso de numeros de version *igual* pero tamaos diferente de
archivos, no debemos recuperar. Darlo por bueno. Existen utilidades del
propio microsoft, que son capaces de "alinear" el codigo de una DLL para que
su ejecucion sea mas rapida. Por eso es por lo que a veces, vemos el mismo
numero de version y tamaos diferentes.
En estos casos es necesario "mirar" el log y por tanto podremos saber que
nos lo instalo Office. Sobre todo si tenemos la precaucion de escribir (con
el notepad por ejemplo) en ese archivo, una linea de coment6arios cada vez
que instalamos un producto. Despues de ejecutar SFC, nos escribir a
continuacion de esa linea las DLL y su numero de version que el producto ha
actualizado. Con esta precauciones, sabremos que nos lo instal Office, y
por tanto podremos recuperar desde Office.
112
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
---------------------------------------------
* ANTES DE INSTALAR
-------------------
1) Entrar en la BIOS y poner en la pantalla de PnP, a la pregunta PnP OS
(PnP Operating System), un *NO* o *disabled*. (casi todas las bios nos hacen
esta pregunta pero puede que la nuestra en particular no la tenga).
instalar /p j
Esto nos reconocer nuestra BIOS como ACPI si lo fuese (unicamente las
placas madre de ultima generacion y BIOS de ultima generacion, poseen la
facilidad ACPI. Merece la pena que windows se monte como ACPI).
* DURANTE LA INSTALACION
------------------------
Si al instalar, durante el segundo boot de la instalacion, el sistema se nos
"cuelga" y es incapaz de finalizar la instalacion por mucho que reiniciemos
el PC, deberemos entrar en el modo a prueba de fallos y teclear en
Inicio->Ejecutar el comando regedit.
(esto ocurre normalmente con las versiones OEM (para equipos nuevos sin
windows preinstalado, y en combinacion con ciertos controladores de placas
madre. Fundamentalmente placas madre de baja calidad.).
113
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
borrado alguna, nos permite recuperar la de windows. En caso de que nos haya
sustituido alguna, nos d el numero de versin actual y el numero de versin
previo que tenia almacenado. Si el numero de versin actual
(independientemente de la fecha) es menor que el que teniamos deberemos
recuperar con el propio SFC la versin original. Si es igual o mayor el
numero de versin, podemos darlo por bueno.
c:
cd \windows\system
extract /a /e e:\win98\base5.cab user.exe
** EN EL ARRANQUE
-----------------
** Al arrancar windows, nos d una pantalla negra (estilo MsDOS) con un par
de lineas en la parte superior que nos advierte: Imposible arrancar windows.
Error en IFSMGR o bien Error en DOSMGR. Probablemente algun dispositivo de
puertos de comunicaciones COM1, COM2, paralelo o de raton es el causante del
problema. Si acabamos de instalar algun dispositivo de puerto paralelo,
entrar en modo a prueba de fallos y eliminarlo. Si es por culpa de los
drivers del mouse, igualmente sustituir el driver de raton por un raton
standard de windows.
114
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
placas de video sean AGP+PCI (en slot 1) o PCI+PCI (en slots 1 y 2), No
puede utilizarse placas ISA para multimonitor.
c:
cd \
type bootlog.txt > boot.txt
** EN EL CIERRE
---------------
** Al cerrar windows, nos d un error en el programa MSGSRV32. Este error
suele estar causado por utilizar algun chip de sonido de la marca CMEDIA
(cmxxx) y es bastante corriente en las placs madre que tiene la tarjeta de
sonido on-board. Es un problema reconocido por el fabricante, que se corrige
sustituyendo los drivers de sonido por los ultimos de cmedia. Puede buscarse
en su web en www.cmedia.com.tw
* RECONOCIMIENTO DE DISPOSITIVOS
--------------------------------
** Nada ms finalizar la instalacin (o incluso re-instalacin) de windows
sobre todo s durante la instalacin hemos tenido alguna pantalla azul
(BSOD), es conveniente ejecutar el programa ASD. Este programa nos dir si
ha habido algun dispositivo que ha causado un error crtico al instalar y
nos permitir en ese momento, el intentar cargarlo.
115
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
"master" (maestro) y otro como "slave" (esclavo). Pues bien hay ciertas
unidades que no pueden estar como "master" en win98 y ademas no pueden
tampoco estar "solas" en un canal IDE. Por tanto reconfigurar el hardware de
vuestra maquina para que no se d la situacion anterior.
* DURANTE EL FUNCIONAMIENTO
---------------------------
** La asociacion de ciertos iconos de windows, as como la vista previa de
dichos iconos, por ejemplo los GIF, se ha perdido y no podemos recuperarala
(nos sucede al instalar algun programa de graficos). Solucion: Ir a
inicio->Ejecutar y teclear:
regsvr32.exe /i shdocvw.dll
scanreg /restore
Nos mostrar una lista con la fecha de las copias de seguridad del registro
y nos permitir recuperarlas.
116
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
tarjeta de sonido PCI), existen problemas con la asignacion de IRQs tipo ISA
al slot PCI. Desde luego, la norma PCI no permite esto, pero el fabricante,
parece saltarselo a la torera. Existen dos posibilidades: una hardware que
pasa por conectar mediante un conector especial la tarjeta PCI a un conector
tambiuen especial en la placa madre para "robar" al bus ISA la IRQ
correspondiente. No todas las placas madre soportan esto. La otra solucion
es configurar la BIOS, en la pantalla PnP, para asignar la IRQ que quiere
pillar la tarjeta de sonido, a ISA o Legacy ISA. De esta manera tambien nos
funcionar. Los ultimos modelos de BIOS, ya tienen normalmente presente esta
casuistica con lo que no tendremos que hacer nada.
* AL REINSTALAR WINDOWS 98
--------------------------
** Ciertas grabadoras de CD (por ejemplo HP 8100), tienen incompatibilidad
con una VxD estandard de windows: la SCSI1HLP.VXD (que reside en
C:\windows\system\iosbusys). Al instalarse lo que hacen es renombran dicha
VXD por otra extension, con lo que windows ya no la carga. Pero si
reinstalamos windows por encima, el instalador nos volver a dejar dicha VXD
en cuyo caso windows ya no arrancar. Es necesario entrar en "solo simbolo
del sistema" y borrarla.
Particularmente me parece una "chapuza" por parte de HP. Y ademas al
eliminar dicha VXD, todos los posibles dispostivos SCSI 1 que tengamos en
nuestro hardware, dejarn de funcionar (menos mal que el SCSI 1 es una vieja
norma y ya quedan pocos dispositivos..... pero quedan!!).
117
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
----------------------------------------------------
Debido a los dos puntos anteriores, el arranque de win 98 es mas lento que
el de win 95. Pero como contraprestacin, es mucho ms seguro.
* Arrancar en modo "Solo smbolo del sistema" (si tenemos pulsada la tecla
CTRL al arrancar, nos mostrar un men, antes de entrar en windows, y all
podremos seleccionar).
* teclear:
scanreg /RESTORE
esto nos mostrar una lista de las copias de seguridad del registro y sus
fechas. Con esto podemos recuperar.
****** Espero que esto SI QUE SEA UTIL ***** y se utilice (se puede hacer en
cualquier momento ANTES de una instalacin. Posteriormente mediante SFC y
mediante la recuperacin de la base de registro, volvemos JUSTO a la
situacin inicial de antes de la posible instalacin del producto
problemtico. Solo una cosa ms. Por si acaso: vigilar lo que hay en
windows\system\iosubsys. Listar los ficheros y fechas y guardarlo. Esto lo
digo, porque cualquier VXD en ese directorio, windows la carga SIEMPRE. Si
una instalacin, nos guarda una VXD all, por mucho que recuperemos con
"scanreg /RESTORE", y SFC, por desgracia la VXD nueva, est all, con lo
cual se cargar. Y esa puede ser problemtica.
118
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
--------------------------------------------------
Por poner una similitud con el antiguo MS-DOS, los deja como eran los
ficheros COM, es decir se cargan y directamente se ejecutan, sin necesidad
de que el loader (cargador), realice nada en especial. Realmente el smil es
un poco basto, pero para nuestro caso, sirve de momento. Es decir,
simplifica la vida al cargador y los programas por tanto se cargan en
maquina "bastante" mas rpido.
Podamos alegar, que esto era lo mas lgico desde el diseo del primer
Windows. Efectivamente, pero por los motivos que sea, esto no estaba as.
Es decir el "linker" (montador) de programas standard, no deja correctamente
alineados los segmento de cdigo y datos de un programa o dll. La funcin de
WALIGN, es arreglar esto. Para ello, se apoya en un fichero INI que reside
en el directorio system (curioso no?). El cdigo de w98, ya viene
"alineado", es decir no hace falta optimizarlo (cuidado con las aplicaciones
que nos substituyen dll's aunque tengan el mismo numero de versin. Se debe
vigilar tambin la fecha. Este es el motivo por el que nos podemos encontrar
dos programas o dlls con el mismo numero de versin y diferente tamao).
Esto, aunque solo queramos tener un sistema, por ejemplo win98, bajo mi
punto de vista es aconsejable tener al menos 2 win98. Hay motivos
119
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
importantes:
INTRODUCCION
------------
Antes de pasar al detalle de la ejecucin, conviene entender como "arranca"
un sistema operativo. Voy a referirme unicamente a los sistemas operativos
de Microsoft. Una vez entendido esto perfectamente, seremos capaces de
realizar los cambios "a mano". Y si somos capaces de hacerlo "a mano",
evidentemente se puede encontrar una solucion "mecanizada".
1) Se carga el primer sector fisico (512 bytes) del disco duro en memoria.
Este sector es el llamado MBR (Master Boot Record). Realmente este sector
contiene un mini-programa y es grabado por el FDISK cuando se encuentra un
disco "virgen" o cuando hacemos FDISK /MBR.
120
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
attrib c:\msdos.sys -s -h -r
attrib c:\msdos.sys +s +h +r
nos volver a colocar los atributos que debe tener dicho archivo.
3) Windows 98:
MSDOS.SYS (parametros)
IO.SYS
CONFIG.SYS
121
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
COMMAND.COM
AUTOEXEC.BAT
LOGO.SYS (**opcional**. Si existe puede tener personalizado el logo de
arranque de windows, pero sino existe, nos mostrar el logo por defecto de
windows 98).
4) Por ahora el NT, no nos molesta con sus nombres de archivos, por lo que
ya abordaremos su problematica real en la instalacion.
** Recordemos, que para crear una particion FAT 16 o FAT 32, es durante el
FDISK que damos inicialmente al disco. Si al entrar en FDISK tecleamos "S" a
la pregunta de soporte para grandes particiones, entonces la particion
creada ser de FAT 32. Si teclemos "N", la particion creada ser de FAT 16.
Y ademas MUY IMPORTANTE, es que cada vez que nos salgamos de FDISK, no
podemos volver a entrar en l, sino reiniciamos la maquina. Si no cumplimos
estrictamente esto, las particiones pueden quedar creadas de cualquier
forma, o incluso inutilizables.
3) Instalar w95 (normal, *no* OSR2) o w98 sobre una maquina que ya tenia el
122
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
BootMulti=1
Esta linea lo que hace es darnos una nueva opcion en el men de arranque de
windows (accesible con F8 en w98 al iniciarse o con CTRL en w98), que nos
permitir "ir a la antigua version de MS-DOS".
4) Instalar w95 OSR2 sobre una maquina que ya tenia el antiguo MSDOS 6.22.
5) Instalar MS-DOS 6.22 sobre un sistema que ya tenga w95, OSR2 o w98.
123
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
Una vez instalado el nuevo windows, nos podemos "guardar" en otor sitio sus
archivos de arranque. Entonces con poner unos u otros arrancaremos con cada
windows. Esto se debe hacer por ejemplo, "antes" de salirnos de uno de los
windows, para reinicar con el otro. O bien si arrancmos en "Solo simbolo del
sistema", colocamos el que nos interese y reiniciamos otra vez. Esta es la
solucion "manual". Al final del articulo, vermeos la "mecanizada". Pero por
ahora es importante unicamente, el entenderlo.
** Como creo que toso nos conocemos y ademas algunos (entre los que me
incluyo) somos instaladores compulsivos, por favor no instalar todavia las
baterias y programas que envio conjuntamente a este documento. Ademas, es
necesario que modifiqueis algunas cosillas de ellos.
Recordad que tanto el MSDOS 6.22 como el NT 4, no entienden de FAT 32. Por
tanto esto ya nos obliga a que el disco C: sea FAT 16.
Y ahora pensemos: para que hacerlo muy grande?. Realmente en C: solo voy a
tener muy pocos archivos, y de paso puedo aprovecharlo para tener por
ejemplo un 6.22 y un windows 3.1 y esto ocupa muy poquito. Entonces pensemos
en una cifra pequea: 500 megas (y nos sobrar).
124
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
1) Creamos las particiones, sabiendo que la del C: debe ser FAT 16 y ademas,
no debe ser muy grande.
attrib bootsect.dos +h
BootMenu=1
BootMenuDelay=10
BootMulti=1 (esta ultima, solo en el caso de que no estuviese).
125
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
MSDOS.SYS
IO.SYS
CONFIG.SYS
AUTOEXEC.BAT
COMMAND.COM
LOGO.SYS (si existiese).
attrib c:\msdos.sys
attrib c:\msdos.sys -s -h -r
* La idea, es que una vez guardados dichos archivos, instalemos otro windows
en otra particion. Una vez instalado, nos guardamos en otro sitio, los
mismos archivos.
format a: /s
a:
attrib *.* -s -h -r
ren msdos.sys msdos.dos
ren io.sys io.dos
ren command.com command.dos
126
DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA ...........
Jos manuel Tella Llop
c:
cd \
copy a:\*.*
attrib io.dos +s +h +r
attrib msdos.dos +s +h +r
Ademas debemos copiar todo el directorio DOS del PC que tiene MSDOS 6.22 a
un directorio DOS en nuestro PC. Es conveniente utilizar en este caso el
pkzip con la opcion -& para crear una copia multivolumen en disquetes y
hacernos mas facil la transferencia.
BootMulti=1
attrib msdos.sys -s -h -r
edit msdos.sys
attrib msdos.sys +s +h +r
****
R. En ambos casos debemos saber que los productos para equipos nuevos,
analizan en nuestro disco duro a ver si encuentran un archivo win.com. Si lo
encuentran no se instalan. Por tanto debemos "renombrar" todos los archivos
win.com que existen en nuestro disco, instalar el nuevo windows y
posteriormente volver a dejar esos archivos con su nombre.
****
****
127