Práctica 2: Sector de arranque

Documentos relacionados
Práctica 2: Sector de arranque

Práctica 2: Sector de arranque

Práctica 3: El teclado del PC

TEMA 2: Sistemas Operativos

Recopilación presentada por 1

Menú de Arranque en Windows VISTA

Lenguaje binario. Código ASCII. Medidas de la información

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

Tema 1: Arquitectura de ordenadores, hardware y software

BIOS (Basic I/O System) Ing. Víctor Valencia PNFSI - Arquitectura del Computador III

ESTRUCTURA BÁSICA DE UN ORDENADOR

Creación de un pendrive USB de instalación de SO

Procedimientos para el Montaje de Equipos Microinformáticos.

Informática Básica. 2º Diplomatura en Ciencias Empresariales Universidad Pública de Navarra. Informática Básica, DCE-UPNA 1

ARQUITECTURA Y FUNCIONAMIENTO DEL ORDENADOR

SISTEMAS OPERATIVOS Arquitectura de computadores

Práctica 5MODBUS: Bus Modbus

Arquitectura de computadoras

1-Componentes Físicos y Lógicos de un Ordenador.

TEMA 1: Concepto de ordenador

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Qué es un programa informático?

CURSO DE INFORMÁTICA. Unidades Penales Provincia de Buenos Aires Konrad Bucheli

INSTALACIÓN DE WINDOWS 7

Módulo 2: Cómo funcionan las computadoras

Monoalgorítmez: modelo funcional

Ordenador local + Servidor Remoto

INFORMATICAFACIL BIOS AMI. configuración. ekocop H T T P : / / I N F O R M A T I C A F A C I L. W O R D P R E S S. C O M

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb?

Los componentes de la tarjeta madre del PC. Sistemas Operativos. Febrero 2014.

Hecho por: Mario Alberto Romero Lòpez Materia: Estructura fisica y logica del pc

Consideraciones previas a la instalación de sistemas operativos libres y propietarios

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Gestión de Entrada-salida

Tema: Instalación de Linux.

MEMORIA EJERCICIO 1 EJERCICIO 2

Máquinas virtuales en Linux usando KVM y QEmu

1. DATOS e INFORMACIÓN.

SOPORTE FÍSICO O HARDWARE (I)

Tema 1: Introducción al S.O.

Herramientas Informáticas I Software: Sistemas Operativos

INSTRUCCIONES DE ACTUALIZACION LETAB720

Partes Internas y Externas de la Computadora

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

Introducción a los Sistemas Operativos

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Código: ARC-265. Horas Semanales: 6. Prelaciones: INI-154

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

Práctica ENS:Ensamblar y depurar

Tema 2. Soporte Lógico de los Ordenadores

Introducción a la arquitectura de computadores

1.El objetivo de un depurador

SELECCIÓN DE COMPONENTES PARA ENSAMBLE DE EQUIPOS DE COMPUTO. Ing. Eduardo Cruz Romero

2. Elementos de Arquitectura de Computadores

Instituto Nacional de San Rafael

Computadora y Sistema Operativo

Unidad I: Organización del Computador. Ing. Marglorie Colina

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

FALLAS Y SOLUCIÓN DE UNA PC

Tema: Administración y respaldo de información.

AmayaOS 0.06 UPGRADE. Guía de usuario. 1ª Edición

Partes y funciones básicas de un ordenador

CONCEPTOS BÁSICOS COMPUTADORA

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

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del sistema operativo ULPGC - José Miguel Santos Espino

Un sistema informático es encargado de recoger y procesar los datos y de transmitir la información.

SISTEMAS DE ARCHIVOS. Conrado Perea

Estructura del tema. Introducción Arranque de un PC. BIOS Procedimiento de arranque Configuración y actualización de la BIOS

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

Conceptos de Arquitectura de Computadoras Curso 2015

El ordenador. Llamamos ordenador a una máquina capaz de procesar información, es decir, de recibir datos, almacenarlos, hacer

Práctica de laboratorio: Mantenimiento del disco duro en Windows XP

3. Sistemas operativos

Ampliación Ficha 1: Componentes de un ordenador.

3. Sistemas operativos

Ashampoo Rescue Disc

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

Sistemas Operativos. Almacenamiento. Esteban De La Fuente Rubio L A TEX. 25 sep Universidad Andrés Bello

FUNCIONAMIENTO DEL ORDENADOR

PRÁCTICA 1: INTRODUCCIÓN AL ROUTER

Iniciación a la informática

OPERACIONES CON UNIDADES, DIRECTORIOS Y ARCHIVOS (3 puntos = 1 test + 2 supuesto práctico)

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

CURSO BÁSICO DE ALFABETIZACIÓN DIGITAL CENTRO INFORMÁTICO EMPEDRADO CONTENIDO: ELEMENTOS BÁSICOS DE

Ubuntu Server HOW TO : UBUNTU SERVER EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar un servidor de ubuntu.

Fundamentos de las TIC

Depurar programas

SISTEMAS BASADOS EN MICROPROCESADORES

Asignatura: ASSEMBLER INF-153 LABORATORIO 1

Relación de Problemas I

ÍNDICE. 1. Requisitos de Hardware Arranque del front-end Arranque de los nodos Utilización de lam, OpenMPI y Ganglia...

Por qué mi computadora no bootea desde el pendrive?

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es

CESDE ESCUELA DE INFORMÁTICA SISTEMAS OPERACIONALES I CUESTIONARIO MOMENTO 2

Dispositivos externos

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

Transcripción:

Práctica 2: Sector de arranque Gustavo Romero López Arquitectura y Tecnología de Computadores 27 de febrero de 2017 Gustavo Romero López Práctica 2: Sector de arranque 1 / 13

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. Existe un protocolo de arranque que se llama multiboot. Gustavo Romero López Práctica 2: Sector de arranque 2 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 3 / 13

El proceso de arranque de un PC (2) La BIOS busca la información de arranque en el registro de arranque principal 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. Gustavo Romero López Práctica 2: Sector de arranque 4 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 5 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 6 / 13

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 Gustavo Romero López Práctica 2: Sector de arranque 7 / 13

makefile 1 ASM = $( wildcard *. s) 2 OBJ = $( ASM :.s=.o) 3 BIN = $( basename $( ASM )) 4 ATT = $( ASM :.s=. att ) 5 6 all : $( ATT ) qemu 7 8 clean : 9 killall -q qemu - system - i386 true 10 $(RM) -rfv $( ATT ) $( BIN ) $( OBJ ) *~ 11 12 debug : clean qemu 13 gdb - ex target remote 127.0.0.1:1234 - ex b 16 $( BIN ) 14 15 qemu : $( BIN ) 16 killall -q qemu - system - i386 true 17 qemu - system - i386 -fda $( BIN ) -s &> / dev / null & 18 19 $( BIN ): $( OBJ ) 20 ld -- oformat binary - Ttext 0 x7c00 $< -o $@ 21 22 %.att : % 23 objdump -b binary -D -m i8086 $< > $@ 24 Gustavo Romero López Práctica 2: Sector de arranque 8 / 13

El más sencillo: boot.s 1. code16 # c ó digo de 16 bits 2 3. text # secci ón de có digo 4. globl _ start # punto de entrada 5 6 _start : 7 jmp. # bucle infinito 8 9. org 510 # posici ó n 510 10. word 0 xaa55 # firma Gustavo Romero López Práctica 2: Sector de arranque 9 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 10 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 11 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 12 / 13

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. Gustavo Romero López Práctica 2: Sector de arranque 13 / 13