Volver a la portada de Duiops
Volver al Web de Duiops
 
   
Menú
Secciones destacadas
Artículos y FAQs
Trucos de Windows
Versiones de Windows
y suites de software
Windows Vista
Windows Media Center
Windows XP
Windows 2000
Windows Millenium
Windows 98/98 SE
Windows 95 OSR-2
Internet Explorer
Office
Otros
Tutorial muy básico
   
Portada
Portada - Artículos y FAQs - Desde que pulsamos el boton de encendido de nuestro PC hasta... (parte 22)
 
Desde que pulsamos el boton de encendido de nuestro PC hasta... (parte 22)

 

Por Jose Manuel Tella Llop, extraído de microsoft.public.es.windows98

DESDE QUE PULSAMOS EL BOTON DE NUESTRO PC HASTA..... (Parte 22)
----------------------------------------------------

CARGA DE PROGRAMAS EN EL INICIO
------------------------------

* Este es un tema por el cual se pregunta muy a menudo, y tambien muy a menudo las respuestas aunque sean verdad son incompletas.

Existen varios sitios, en los que un programa de instalacion, puede dejar "orden" a Windows para que arranque un programa al iniciarse Windows. Estos puntos son (algunos muy evidentes):

1) En el grupo: Programas->Inicio

2) En las lineas load= o run= de fichero win.ini que reside en el directorio de Windows. (las viejas aplicaciones 3.1, lo dejaban allí).

3) En el registro. Podemos abrir con el programa "regedit" el registro, y verificar la clave:

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion

y dentro de esta ultima, podemos localizar las claves: Run y RunServices.

En cualquiera de ellas puede mandarse la ejecucion de un programa. La diferencia teorica entre ellas es que en la primera (en Run), es para ejecutar un programa como "tarea", y en la segunda es para ejecutarlo y registrarlo como "servicio". Este concepto es importante en Windows NT, en win 95/98 tiene poco sentido ya que el propio programa es el que permanece o no como servicio. Pero siendo puristas y por mantener una definicion correcta de tarea y servicio, se debe hacer así.

4) Tambien en el registro, y esta suele ser la clave "desconocida", puede hacerse en:

HKEY_CURRENT_USER
   Sotfware
      Microsoft
         Windows
            CurrentVersion

y allí, pueden existir igualmente las claves Run y RunServices. Pero....

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.

6) Debe tomarse nota, que en sistemas multiperfiles, podrían exisitr claves por usuario, colgando de la clave HKEY_USERS. Por tanto deberán verificarse tambien dichas claves si existiesen.

OTROS TRUCOS - OBTENER LA MAXIMA MEORIA MSDOS BAJO WINDOWS
----------------------------------------------------------

Recordando los capitulos anteriores, ya sabemos como conseguir memoria "estendida" (HIMEM.SYS), "expandida" y marco de pagina (EMM386.EXE), y por tando y con las directrices DOS=UMB,HIGH poder utilizar el maximo de memoria en DOS.

Pero... curiosamente cuando entramos en Windows y damos el comando mem /d/p vemos que no tenemos memoria "alta" (UMBs) disponibles.

Recordemos un poco el mapa de memoria "fisica" del msdos. Hasta la dirección 'A000' de memoria son los primeros 640 Ks. Mejor graficamente:

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-
C000     ROM BIOS de la tarjeta de video -32 Ks-
C800     LIBRE ¿?    -96 Ks-  !!!!!!
E000     Marco de pagina memoria EMS (si tenemos activo ENN en EMM386)
F000     ROM BIOS de la placa madre
FFFF     64 Ks más donde el dos carga parte de él (DOS=HIGH)

Bien lo anterior es una configuracion estandard con EMM386 y memoria EMS y la instruccion DOS=HIGH,UMB

(sino se ha entendido hasta aquí, por favor repasar los capitulos anteriores).

Matizo que es una configuracion "standard". Es decir, si no tenemos otras tarjetas (SCSI, de red, etc...) que tengan ROM BIOS. Si tuviesemos esas tarjetas, la dirección libre en vez de empezar en C800, empezaria mas tarde y tendriamos menos espacio libre. Ya veremos como puede saberse esto.

Además, en el EMM386, podemos incluirle la linea I=B000-B7FF para poder utilizar la memoria de los antiguos adaptadores graficos monocromos (otros 32 Kbs). **** ATENCION: esto unicamente sino utilizamos "multimonitor". Si lo utilizasemos, NO SE PUEDE recuperar dicha memoria.

Entonces en una configuracion normal, tendriamos: 96 Ks + 32 Ks = 128 Ks libre por la zona alta.

Y ahora la pregunta ¿como utilizarlos?

** Utilizacion de la memoria superior:

Bien, la primera parte sencilla. Si a continuacion de la linea del config que carga el EMM386.EXE, ya colocamos las instruccions "devicehigh" (en vez de device) y en el autoexec, cargamos los programas con "lh" (loadhigh) por delante de ellos, entonces estos programas se cargarán en memoria UMB, igualmente, el propio MSDOS, en cuanto puede, "mete" allí su zona de buffers, files, etc...... (por eso, realmente no "vemos" los 128 Ks libre nunca, porque el propio MSDOS, aunque no hayamos cargado nada, en cuanto se encuentre DOS=UMB, ya carga allí lo que puede).

Pero.... muy bien, ahora ya hemos terminado de cargar el DOS y empieza Windows a cargarse.

Si arrancamos en "solo símbolo del sistema" veremos con un mem /d/p la memoria superior que tenemos "antes" de entrar Windows. Y además la memoria libre que tenemos bajo MSDOS.

(recordad, que no haría falta nada más que : en el config, las lineas devicehigh= display.sys.... y el Country. Y en el autoexec, las dos lineas mode *no hay que ponerlas "lh" a estas. Y la linea keybsp con "lh". Con esto es suficiente para Windows. El resto de cosas, como ya hablaremos mas adelante: NO HACEN FALTA, se pueden quitar y ya veriamos como podemos recargarlas si hiciesen falta a posteriori para entrar en modo MSDOS)

Retomando lo anterior, sabemos la memoria libre, pero cuando entramos en Windows y damos el mismo comando, vemos que en la zona alta de memoria no nos queda nada....¿?

** Recuperacion de la memoria superior bajo windows

La memoria anterior se puede recuperar. Unicamente debemos añadir en la seccion [386enh] del System.ini (que está en el directorio de windows), la linea:

LocalLoadHigh=On

Y reiniciar. Puede..... que el sistema no nos arranque, enviando un mensaje de "imposible, o error al cargar el DOSMRG. Programa detenido".

En este caso, podemos hacer dos cosas:

1) Eliminar la linea anterior y resignarnos a no tener memoria superior.

2) Mas elegante: buscar al culpable y reordenar la carga. El posible culpable es que Windows,necesita "al menos" 4 Kbs en cada region de memoria superior (UMB). Pensemos que en la configuracion de memoria descrita anteriormente, tenemos dos regiones (de B000-B7FF y C800-DFFF). Antes de entrar a Windows,debemos "ver" en MSDOS puro al menos 4 Ks libres en cada una de ellas.

El punto 2) es muy sencillo en la configuracion que he descrito antes. Pero en maquinas con varias ROM BIOS (scsi, red, etc...) puede ser un poquillo mas complicado, y a veces, por ejemplo, no cargar el keyb en alta a proposito, para dejar esos 4 Ks. O bien cargarlo (forzado) en otra region.

** Bien hasta ahora hemos estado hablando de drivers de disposivivos, programas DLL's y diversos componentes de Windows. Pero realmete, ¿que son, y que funciones y para que sirven las DLL's?

LIBRERIAS DINAMICAS EN TIEMPO DE EJECUCION: DLL's
--------------------------------------------------

**** Bueno, y este será el siguiente capitulo......


Volver a Artículos y FAQs

 

     
 

Volver arriba Volver arriba

© 1997-2009 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto.