Práctica 2: Sector de arranque



Documentos relacionados
Práctica 2: Sector de arranque

Práctica 2: Sector de arranque

Sector de arranque. Introducción a la programación para ingeniería de computadores. Gustavo Romero López. Arquitectura y Tecnología de Computadores

Práctica 3: El teclado del PC

Práctica 3: El teclado del PC

Arquitectura de Sistemas

Proceso de arranque de un ordenador personal

Se encarga de realizar las funciones básicas de manejo y configuración del ordenador. La BIOS tiene más tareas fundamentales: Chequearse a sí misma.

Qué es una máquina virtual?

USO DEL COMANDO. Fdisk. Autor :. Alejandro Curquejo. Recopilación :. Agustí Guiu i Ribera. Versión :.. 1.0

aula) 1. Introducción 2. Instalación en el servidor

Instalación de Sistema Operativo Mac OsX Lion en VirtualBox.

Puede acceder a estas opciones a través del menú Inicio: Inicio/Configuración, o bien, a través del Icono Mi Pc situado en el Escritorio:

Capítulo 2. Cuestiones previas

... partes internas del computador!...

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Práctica 0. Emulador XENON de la computadora CESIUS

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Práctica Virtual Box.

DISCOS RIGIDOS. Forman el principal elemento de la memoria secundaria de un ordenador, llamada así en oposición a la memoria principal o memoria RAM

Seguidamente se muestra una pantalla para seleccionar nuestra localización, y comprobamos que la hora y demás es correcto. Podemos hacerlo fácilmente

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos.

FeriaOnline.com C/Llamaquique Nº 4 Tfno: Oviedo mail: info@feriaonline.com Url:

Práctica 2: Disco duro

Práctica 1. Introducción al SIEMENS 80C167

Documento descargado de Licencia de este documento: Reconocimiento NoComer cial Compar tir Igual 2.

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

NORMA (SEPA) 22/11/2013

ASISTENCIA TÉCNICA A LA SEGURIDAD INFORMÁTICA EN PYMES MANUAL CLONEZILLA

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

COMO HACER UNA COPIA DE SEGURIDAD DE TU SOFTWARE?

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

INSTALACIÓN DE ORACLE 8i (8.1.7) SOBRE NT

Tema 3. Estructura física y lógica del Disco Duro

Colegio Belen COMPUTACION

CÓMO CREAR NUESTRO CATÁLOGO

Módulo 8: Ofimática básica. Unidad didáctica 4: Introducción y modificación de datos. Access

Un kilobyte (KB) son 1024 bytes, un Megabyte (MB) son 1024 KB, un Gigabyte son 1024 Mb

SISTEMA CABILDO MANUAL DE INSTALACIÓN CLIENTE ERP CABILDO LA SOLUCIÓN TECNOLÓGICA MÁS COMPLETA E INTEGRAL PARA GOBIERNOS LOCALES

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

El Computador. Software

MACROS Y FORMULARIOS

Documentación del Terminal

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

GIROS Bancarios en NOTIN

1 MANUAL DE INSTALACIÓN

IES MARXADELLA LABORATORIO DE IMAGEN DIGITAL

SIMULADOR DE REDES DE PETRI ASINCRONICAS

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Coordinación en un Centro TIC Tema 4 Resolución de Incidencias

Manual de adminitración web

PROTEUS Depuración de programas para microprocesadores

10 En este caso indica la dirección GPIB del instrumento.

Práctica: Compartición y seguridad de los recursos de red

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

PARTICIONES. -- Home Edition --

Manual de Ayuda, Ultraportátil Toshiba NB / /iSE/2011/SC

Descubre gnulinex 1. Capítulo 20. Instalación de gnulinex

Mini-guía: Gestión Backup

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Ingresa Aquí y sé un experto en equipos Mikrotik

Vamos a ver las dos formas básicas de arrancar PowerPoint.

Programa de Fabricación para Android

INSTALACIÓN, UTILIZACIÓN Y OPTIMIZACIÓN

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

MANUAL PREZI. Para iniciar, los usuarios deben crear una cuenta gratuita en el link:

SUBIR ARCHIVOS CON FTP. TRABAJAR EN UN SERVIDOR REMOTO. CREAR UNA PÁGINA WEB CON PROGRAMACIÓN PHP. (CU00814B)

Tablas dinámicas. Tablas dinámicas

2. ABRIR UN NUEVO DOCUMENTO DE TRABAJO

Instalable TC-FNMT para Windows Manual de usuario. Versión 1.4

Notas para la instalación de un lector de tarjetas inteligentes.

Es un dispositivo electrónico que está diseñado para recibir información de parte de un usuario (un ser humano), procesarla y devolver un resultado.

Actividad N 1. Primer procesador creado por Intel

PRACTICA 6.6 VPN Logmein Hamachi registrarse en la página instalación,

Manual de usuario del Directorio Activo

PRÁCTICA 3: ACRONIS TRUE IMAGE

FREEDOS 1.0. CURSO DE TÉCNICO EN SEGURIDAD DE REDES Y SISTEMAS José María Torres Corral

Sugar en Windows. Creación de una máquina virtual con la imagen de Sugar. Autor. Versión Fecha Setiembre Ubicación

INSTALACIÓN DE GATEWAYS SIP

Ahora comencemos!... Las operaciones matemáticas fundamentales pueden realizarse de forma rápida y sencilla con Miicrosofftt Excell.

TUTORIAL DE INSTALACIÓN PARA VIRTUALBOX

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

WINDOWS : COPIAS DE SEGURIDAD

, RECUPERACIoN DE DATOS:

Función de un disco duro 2009

El proceso de edición digital en Artelope y CTCE

Preparar todo lo necesario.

COMO HACER UNA INSTALACION LIMPIA DE WINDOWS XP (Formateando e Instalando XP)

Práctica nº Mn-5.1 Mantenimiento de sistemas microinformáticos. Disco Duro.

MANEJANDO FICHEROS Y CARPETAS

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES

V i s i t a V i r t u a l e n e l H o s p i t a l

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

Combinar comentarios y cambios de varios documentos en un documento

Transcripción:

Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Objetivos Creación de un sector de arranque. Partiendo desde el más sencillo iremos añadiendo capacidades. Utilizaremos as, ld y qemu. Proceso incremental... El más simple posible. Simple y energéticamente eficiente. Imprimir un mensaje a través de la BIOS. Imprimir un mensaje directamente en la memoria de video.

El proceso de arranque de un PC (1) Nada más encender un ordenador se ejecuta un programa especial denominado sistema básico de entrada/salida o BIOS, del inglés Basic Input/Output System. Este programa es almacenado en una memoria no volátil para evitar que se borre al apagar el ordenador. La función de la BIOS es inicializar todo el hardware del ordenador, desde los registros de la CPU hasta los contenidos de la memoria, pasando por los controladores de dispositivos. Una vez hecho esto, una parte del mismo llamada gestor de arranque, busca el SO, lo carga en memoria y lo ejecuta. Para esto debe localizar donde se encuentra el núcleo del SO. El proceso de arranque de un PC (2) La BIOS busca la información de arranque en el registro principal de arranque o MBR, del inglés Master Boot Record, o simplemente sector de arranque. Es un sector de 512 bytes al principio del disco duro que contiene una secuencia de instrucciones necesaria para cargar el sistema operativo y una tabla donde están definidas las particiones del disco duro. También el primer sector de cada partición, en la arquitectura del PC, tiene la misión de arrancar el sistema operativo. Normalmente el MBR lo único que hace es ejecutar el sector de arranque de la partición marcada como arrancable.

Objetivos Nuestra misión en estas prácticas será escribir un sector de arranque. Necesitaremos: un ensamblador: gas. un enlazador: ld. una máquina virtual: qemu, que emula un PC y así no tener que reiniciar el ordenador cada vez que queramos probar un nuevo sector de arranque, y de camino nos ahorra problemas al no tener que modificar el MBR de nuestro ordenador. Detalles importantes (1) Al arrancar el PC funciona en modo real y sólo acepta código de 16 bits. Cómo se le indica al gas que genere código de 16 bits? =.code16 La BIOS carga el sector de arranque en la dirección 0x7C00. Cómo hacemos que un programa se ejecute en la dirección 0x7C00? = el ensamblador no puede hacerlo sólo y necesitamos el enlazador = -Ttext 0x7C00 Para empezar nos conformaremos con que nuestro sector de arranque no haga nada y deje colgado el ordenador. Cómo conseguir esto? = bucle infinito: jmp.

Detalles importantes (2) La BIOS reconocerá el sector de arranque si ocupa 512 bytes y está correctamente firmado. Esto quiere decir que su última palabra debe ser 0xAA55. Cómo conseguir esto? =.org 510.word 0xAA55 El ejecutable debe tener formato binario. Cómo se le indica a gas que use dicho formato? = El ensamblador no puede hacerlo directamente y requiere la ayuda del enlazador: = --oformat binary Makefile ASM = $(wildcard *.s) OBJ = $(ASM:.s=.o) BIN = $(basename $(ASM)) all: clean: qemu: %.o: qemu $(RM) -rfv $(BIN) $(OBJ) core.* *~ $(OBJ) $(BIN) qemu -fda $(BIN) -s &> /dev/null & %.s $(AS) $*.s -o $@ %: %.o $(LD) --oformat binary -Ttext 0x7C00 $*.o -o $@

El más sencillo: boot.s. c o d e 1 6 # c o d i g o de 16 b i t s. t e x t # s e c c i o n de c o d i g o. g l o b l s t a r t # punto de e n t r a d a s t a r t : jmp. # s a l t a a e s t a misma l i n e a. o r g 510 # p o s i c i o n de memoria 510.word 0xAA55 # marca d e l s e c t o r de a r r a n q Sugerencias Podemos comprobar que el sector de arranque va a ser reconocido mediante la orden: file sector de arranque. Podemos probar el sector de arranque escribiéndolo en un disco de 3,5 mediante la orden dd if=sector de arranque of=/dev/fda (hay que ser root). Podemos depurar el sector de arranque de forma remota a través del puerto serie: lanzar qemu con la opción -s. ejecutar gdb o ddd y escribir: target remote 127.0.0.1:1234 Podemos ver el código binario con algún visualizador hexadecimal como ghex. Para desensamblar el sector de arranque necesitaremos... objdump -d sector de arranque.o. ndisasm -b 16 sector de arranque.

Sector de arranque energéticamente eficiente: energy.s Modificar el sector de arranque anterior de forma que en lugar de ejecutar un bucle infinito deshabilite las interrupciones ( cli ) y después detenga el procesador ( hlt ). El fichero Makefile proporcionado sólo funciona cuando hay un único fichero ensamblador por directorio, así que cree un directorio nuevo (mkdir) para el nuevo sector de arranque. Comprobar que ahora qemu en efecto no utiliza el 100 % del tiempo del procesador mediante la orden top. Imprimir un mensaje a través de la BIOS Vamos a modificar el sector de arranque anterior de forma que imprima un mensaje a través de la interrupción 0x10 de la BIOS. Dicha función requiere: ah = 0x0e al = carácter que deseamos imprimir bh = 0 bl = color del carácter y del fondo Lista de colores: 0x00 negro, 0x01 azul, 0x02 verde, 0x03 cian, 0x04 rojo, 0x05 magenta, 0x06 marrón, 0x07 gris, 0x08 gris oscuro, 0x09 azul brillante, 0x0a verde brillante, 0x0b cian brillante, 0x0c rosa, 0x0d magenta brillante, 0x0e amarillo, 0x0f blanco.

Imprimir un mensaje a través de la memoria de video La memoria de video comienza en la posición 0xb8000 Está formada por 2000 palabras. Cada palabra está compuesta por un byte de color y otro que indica el carácter a mostrar. Los códigos de color son los mismos que hemos visto para la BIOS.