|
Por Sheldon Leemon
Una serie
que explora la versión 2.0 del DOS de Amiga.
Esta, nuestra primera entrega, investiga cosas que debe saber
antes de modificar su startup-sequence del AmigaDOS
NOTA:
Las fotos con recuadro en azul pueden ser ampliadas para ver detalles.
Situando el ratón encima de la foto durante unos instantes, podrás ver
una pequeña descripción y lo que ocupa la ampliación.
La versión
2 incorpora, con diferencia, el conjunto de cambios más significativos
al Amiga DOS desde que el sistema operativo fue comercializado en la
versión 1.0 en 1985. Ciertas modificaciones que no se muestran
de forma patente, pueden alterar algunas de las "reglas" que
hemos venido tomando como buenas.
Los programas
del directorio WBStartup se ejecutan automáticamente cuando
arranca, normalmente en el orden en que han sido situados.
|
Añadiendo
el Tooltype DONOTWAIT a un icono de programa, ordenamos al WBStartup
no esperar a que el programa termine antes de iniciar el siguiente
del directorio. |
Un área
que incluye muchos de estos cambios, es el procedimiento de arranque.
En todas las versiones 1.x del Workbench, el Kickstart lee las preferencias
del usaurios del DEVS:, el archivo de conifguración del sistema,
antes de abrir la ventana inicial CLI. En este momento, comienza a ejecutar
el S:, el script startup-sequence, y para entonces, el Kickstart ya
ha abierto una ventana del Workbench configurada según las preferencias
del usuario, como el tipo de pantalla (interlazada o no interlazada)
y el font (Topaz 8 ó 9). Editar el archivo startup-sequence en
las versiones 1.x, se ha convertido, con el tiempo, en una tradición,
ya que no hay demasiadas formas de crear problemas añadiéndole
comandos.
Sin embargo
en la versión 2 todo el sistema de preferencias ha cambiado drásticamente.
La configuración es almacenada en archivos individuales en el
disco del Workbench dentro del SYS:, directorio del Prefs/env-archive/sys,
que controla el dispositivo lógico ENVARC:. El script startup-sequence
crea los directorios env y env/sys en el disco RAM y asigna el directorio
env: a RAM:env. Entonces, copia todos los archivos y directorios desde
ENVARC: a ENV:, incluyendo los archivos de preferencias, que van a ENV:sys.
Más
tarde, en el startup-sequence, se ejcuta el programa IPrefs, IPrefs
no sólo lee los archivos de preferencias en ENV:sys y establece
la configuración inicial, sino que también revisa dichos
archivos y altera la configuración cuando detecta cambios. Cuando
se selecciona la opción use en uno de los editores de Preferences,
se puede escribir una nueva versión del archivo de preferencias
en ENV:sys. Iprefs lee el nuevo archivo en ENV:sys y cambia la configuración.
Dado que ENV: está asignado al disco RAM, este cambio se amntiene
sólo hasta que se reseta o e apaga el orneador. Sin embargo,
cuadno se selecciona la opción Save, el archivo también
se copia en el directorio ENVARC:, convirtiendo el cambio en permanente.
Este nuevo
procedimiento funciona muy bien y tiene además una serie de beneficios.
Permite a Commodore añadir fácilmente objetos de preferencia,
como el sonido o el Postscript Preferences, sin necesidad de mejora
de la ROM. Este esquema también sirve como modelo para fabricantes
de hardware y programadores. Siguiendo el ejemplo de Commodore, cualquier
compañía puede crear su propio editor de preferencias
con el mismo aspecto y espíritu que el de Commodore, y usar sus
propios programas para controlar los archivos de preferencias creados
por dichos programas.
Ya que el kickstart
copia automáticamente los contenidos del directorio env-archive
a ENV:, se puede incluso salvar copias de archivo de variables de entorno
en este direcotrio. Asi se crean versiones permanentes de estas variables,
no habiendo necesidad de crearlas en cada sesión con el comandos
SETENV.
EL SCREEN
Como en el
viejo Kickstart, IPrefs debe ajustar las preferencias de pantalla (tales
como modo, font y overscan) antes de abrir ninguna pantalla o ventana.
Si se abre una pantalla del Workbench antes de que las nuevas preferencias
sean establecidas, Kickstart cerrará dicha pantalla para que
IPrefs pueda abrir primero el archivo de preferencias. El problema consiste
en que el Workbench no puede cerrar una pantalla que contenga ventanas
que no controle directamente (como la ventana de Shell). para evitar
esta situación, el nuevo Kickstart no abre ningún dispositivo
hasta que sea absolutamente necesario para mostrar un texto de un programa,
un mensaje de erorr o un requester. Esa es la razón por la que
la pantalla permanece en blanco más tiempo con la versión
2.0 que con la 1.3.
Si examina
el archivo startup-sequence de la versión 2.0, verá que
los mensajes de los comandos que estén antes de IPrefs serán
eliminados, ya sea con un switch Quiet o redirigiendolos hacia NIL:.
Si escribe un comando propio al comienzo del 2.0 startup-sequence y
éste genera algún texto antes de que IPrefs ajuste las
preferencias de pantalla y de font, Shell se verá forzado a abrir
una ventana en una pantalla por defecto. Cuando Iprefs se ejecute, será
incapaz de cerrar la pantalla anterior del Workbench que conteine la
ventana del Shell, y se quejará emitiendo este misterioso mensaje
en un requester:
Intuition is attempting
to reset the Workbench screen.
Please close all windows
except drawers.
Si obtiene
este mensaje cada vez que arranca sus sistema, problablemente habrá
añadido una línea de comandos en algún punto del
startup-sequence antes que Iprefs. La solución más simple
es redirigir el nuevo comando hacia NIL:. Si, por ejemplo, el programa
se llamase MICOMANDO, y necesitase los parámetros "parámetros",
cambie la línea de comandos de
MICOMANDOS parámetro
a
MICOMANDO >NIL: parámetros
La otra razón
por la cual puede ver este mensaje otra vez es que haya cambiado las
preferencias de font o de pantalla después de abrir un programa
que sitúa una ventana en la pantalla del Workbench hasta que
todas las ventanas de los programas "visitantes" sean cerradas.
AQUI, NO ALLI
El nuevo esquema
de preferencias no es la única cosa que debemos tener en cuenta
al modificar el archivo de startup-sequence. Gran número de funciones
del sistema (como la descripción del monitor) están incluidas
en el script en la versión 2.0, y Commodore añadirá
más en el futuro.Lo esencial es ejecutar los comandos del archivo
startup en el orden correcto, y el riesgo más importante es provocar
que el sistema se detenga, debido a una edición sin cuidado de
este archivo.
Para minimizar
el riesgo, la versión 2.0 introduce el concepto de archivo "user-startup".
Si se sitúa este archivo script en el directorio S:, el Kickstart
lo ejecuta automáticamente como parte del rpocedimiento de arranque.
Commodore aconseja a todos sus usuarios añadir nuevos comandos
y asignaciones a este archivo "user-startup", en lugar de
editar el archivo startup-sequence. Es también una buena idea
asegurarse que los programas diseñados para editarel script de
arranque (como scripts de instalación de disco duro) actúen
sobre el archivo user-startup y no sobre el archivo startup-sequence.
|
En
la versión 2 todo el sistema de preferencias ha cambiado
drásticamente. La configuración es almacenada
en archivos
individuales en el disco del Workbench dentro del directorio
denominado SYS
|
|
Naturalmente,
modificar tanto el user-startup como el startup-sequence requiere alguna
familiaridad con editores de texto y con el CLI del AmigaDOS. Dada que
uno e los logros del nuevo sistema operativo es liberar al usuario de
utilizar interfaces no visuales y complicados para el usuario, la versión
2.0 de AmigaDOS introduce un sistema diseñado completamente para
ser utilizado con iconos, ejecutando ciertos programas cada vez que
se arranca el ordenador.
El nuevo disco
del Workbench contiene un nuevo directorio llamado WBStartup. Para ejecutar
automáticamente un porgrama cuando se encienda el sistema, sólo
se ha de situar su icono dentro del directorio WBStartup. Así
de simple.
Es importante
saber que los programas del directorio WbStartup se ejecutan en el orden
en que aparecen en el directorio. Este orden corresponde generalmente
al orden en que se han dispuesto dentro del directorio. el orden se
puede ver mediante el comando LIST.
(LIST Sys:WBStartup)
desde el CLI. (DIR no sirve en este caso ya que ordena los programas
alfabéticamente).
Si el orden
de ejecución es un issue, por ejemplo, un programa no se ejecutará
si no se ha arrancado antes ARexx; esto normalmente se puede modificar
llevando todos los archivos del directorio WBStartup al disco RAM, borrandolos
de WBStartup y situandolos de nuevo en la forma corecta. Si esto no
funciona, se puede añadir el comando que se debe ejecutar primero
a s:, user-startup script, que se ejecuta antes que los iconos de WBStartup.
otro punto
a tener en cuenta es que espera a que cada programa termine antes de
ser lanzado el siguiente. Si algún programa no finaliza en un
par de segundos, el Workbench muestra el siguiente requester:
Program "Nombre del
programa" hast not yet returned.
Should I wait some more?
Se puede ordenar
al sistema no esperar a que temrine un programa añadiendo una
línea ToolType que diga DONOTWAIT al icono del programa. Sólo
haga click una vez sobre el icono, seleccione Information del menú
Tools, selecione el botón New bajo ToolTypes, teclee DONOTWAIT,
pulse retorno y seleccione Save.
Los programas
Commodities como Blanker y ClickToFront (situados en el directorio Tools)
son excelentes candidatos para el directorio WBStartup, pero muchos
de estos programas despliegan una ventana de parámetros cuando
se inician, incluso si los parámetros han sido previamente salvados.
Si añade la línea ToolType CX_POPUP=NO al icono de un
programa Commoditie, éste no abrirá una ventana de parámetros
cuando se ejecute.
Cuando
piense sobre ello, probablemente descubrirá cientos de programas
que quiera ejecutar automáticamente: ARexx, antivirus, "mejoradores"
de teclado (Keyboard enhancers), agendas, un reloj y otros muchos. usando
el directorio WBStartup, podrá modificar el procedimiento de
arranque con gran sencillez y sin temor de crear algún oscuro
error en un archivo script.
|