DISEÑO DEL SECTOR DE ARRANQUE (BOOT SECTOR)
![]() |
Boot Sector |
Entorno.
El cometido principal de crear un bootsector, es obvia. Si se está crando un sistema operativo, el tiene que tener un mecanismo de arranque, por lo general en un disco de sistema, y no esperar que el sistema ya esté arrancado con otro sistema operativo, para tomar propiedad de sus recursos. Es por ello que aparece esta herramienta, creada a bajo nivel.
Uno de los grandes problemas a la hora de realizar dicha herramienta, es que, no debe superar un tamaño de 512 bytes, que es el tamaño del sector de un disquette, con lo que hay que hacer auténticos esfuerzos, para que sea eficiente en un código tan reducido, una función tan importante, es por ello que si se quiere hacer de una manera eficaz se debe programar en ensamblador. Además no puede ceñirse al estándar de creación de ficheros ejecutables .EXE, sino que debe de ser con respecto al .COM, cosa que no es muy complicada, pero hay que atenerse también a ciertas restricciones.
Para crear el disco de arranque se desarrolló otra herramienta, esta en PASCAL, para ubicar, en el disco de arranque que en principio es un disquette- tanto el bootsector, como un fichero que será ejecutado, tras acabar con la ejecución del bootsector. El fichero ejecutado será el ZEUS.EXE, que puede contener la inicialización del sistema y concluir con la carga de un shell, por ejemplo.
Para información adicional consultar en anexos temas sobre FAT (File Allocation Table), Master Boot Record y Particiones.
![]() |
Pseudocódigo del Boot Sector. |
Es difícil indicar en pseudocódigo, la secuencia de un programa en ensamblador, y es así porque por lo general, no hay nada que sobre o que su uso sea obvio. Vamos pues a ver la secuencia del boot sector.
|
![]() |
Creador de disco de Sistema |
Entorno
Lo que hace esta herramienta es leer el BOOTSECT.COM y ZEUS.EXE y los copia en la unidad de disquette. Por lo generla primero hace las actualizaciones en memoria y luego las escribe en el disquette.
Está claro que esta herramienta será de importante uso cuando haya un sistema sin sistema operativo, y queramos instaurar el ZEUS 98 OS, o bien si teniendo ya un sistema operativo instalado queremos arrancar bajo ZEUS 98 OS.
Esta puede ser la primera de un conjunto de herramientas, que hagan más humano el sistema operativo. Pero en sí, no es herramienta interna del sistema, ya que no puede funcionar bajo ZEUS 98 OS. Es una ayuda al grupo de desarrollo para llevar a buen fin la ejecución del Sistema Operativo. Funciona Bajo DOS 5.0 o superior o Windows 9x.
Tipos de datos predefinidos.
Se van a definir una serie de tipos de datos para hacer más asequible la programación del código desarrollado, éstos van a ser:
Tipos.
Sector.
Tipo: array [1..512]del tipo byte.
Cometido: Tipo básico de acceso a sectores de unidad de disco tipo FDD
Cilindro.
Tipo: array [1..18] de tipo sector.
Cometido: Tipo básico de acceso a cilindros de unidad de disco tipo FDD
Pista.
Tipo: array [1..2] de tipo cilindro.
Cometido: Tipo básico de acceso a pistas de unidad de disco tipo FDD
pPista.
Tipo: Pista *.
Cometido: Creación de pistas virtuales en memoria, para unidades de disco tipo FDD.
disco.
Tipo: array [1..80] del tipo pPista;
Cometido: Disco virtual en memoria, para unidades de disco tipo FDD.
fat.
Tipo: array[1..9] del tipo Sector.
Cometido: Contener la información básica sobre la situación de los ficheros, para unidades de disco tipo FDD.
Funciones.
Grabar_Pista.
|
Grabar_Disco.
|
Inicia_Raiz.
|
Inicia_Fat.
|
Copia_Fat.
|
Escribir_Fat.
|
Borrar_Pista.
|
Programa principal.
Vamos a ver el pseudocódigo del programa principal, no utiliza parámetros, ya que no le hacen falta. Obviamente, para que el programa se ejecute perfectamente hay que tener un disquette metido en la unidad de FDD.
Por defecto busca el BOOTSECT.COM como fichero de arranque y ZEUS.EXE como fichero para iniciar tras el arranque del sistema.
Las variables que se utilizan tienen fines temporales, con lo que omitimos su aparición. Veamos pues el pseudocódigo:
|
Diagrama de relación.
Vamos a ver como se interrelacionan los módulos de la herramienta BOOTSEC.
Última actualización de la página: 12/03/99
Esta página está hospedada en Consigue tu Página
Web Gratis