Boot, BIOS, Bootloader

Documentos relacionados
X86 - Modo Protegido (32bits) Introdução (parte 1)

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

Gerenciamento de Memória

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

Projeto 1 - Bootloader

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

Sistemas de arquivos

ESTRATÉGIAS DE ALOCAÇÃO AULA 11 Sistemas Operacionais Gil Eduardo de Andrade


ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Endereçamento e Formato de Instruções

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

Administração Sistemas Operacionais de Rede

MEMÓRIA LÓGICA E FÍSICA (1)

Memória Principal. Tiago Alves de Oliveira

Computação L. Apresentação da Disciplina e Conceitos Básicos de Computadores

TE244 Exercícios Carlos Marcelo Pedroso, Universidade Federal do Paraná

EL68E Sistemas Embarcados Prof. Douglas RENAUX

Sistemas de Arquivos. (Aula 23)

SISTEMAS DE ARQUIVOS. Uma das funções de um sistema operacional, é organizar as informações nas memórias de um computador ou dispositivo móvel.

Armazenamento Secundário

Sistemas de Arquivos. Sistemas de Arquivos - Exemplos

AGT0001 Algoritmos Aula 01 O Computador

GERENCIAMENTO DE PROCESSOS

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Introdução. Gerenciamento de Armazenamento

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Gerência de Memória. Paginação

NEANDERWIN. Algumas características do processador Neander são:

Sistemas Operativos 10º ano

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Gerenciador de Boot Simples

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Estruturas de Sistemas Operacionais

Gerência de Memória. Segmentação

x86 Assembly Mini-Course

ção de Computadores I

Do Inglês HARD DISK inicialmente designado Winchester (nome de código da IBM durante o desenvolvimento do projecto)

Memória. Função: armazenamento de dados e instruções h FFFF FFFE h FFFF FFFF h byte.

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

Computadores e Programação (DCC/UFRJ)

ULA (ALU) - UNIDADE DE ARITMÉTICA E LÓGICA

Introdução à Informática

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

Arquitetura de Computadores. Revisão Volnys Bernal. Agenda. Revisão: Arquitetura de Computadores. Sobre esta apresentação

Aula 06. Slots para Memórias

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

ORGANIZAÇÃO DE COMPUTADORES

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

Hierarquia. Hierarquia

Memória virtual. Sistemas Segmentados

Linguagem de Montagem do NeanderX

LINGUAGEM C PARA O 8051

Para facilitar o entendimento das rotinas escritas em assembly, apresentadas em aula, estudar as seguintes instruções da linguagem assembly:

SSC0611 Arquitetura de Computadores

Sistemas de Computação

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída

INTRODUÇÃO A SISTEMAS DE ARQUIVO E GERENCIA DE MEMÓRIA

SSC0112 Organização de Computadores Digitais I


Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

Implementação de Diretórios (1)

Sistemas de Computação para Controle e Automação CIC132. Assembly. Assembly. Notas. Décima quarta aula: Introdução a programação Assembly

Prof. Benito Piropo Da-Rin. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

LINGUAGEM C PARA O 8051

Hierarquia de Diretórios da Família Linux. Sistemas Operacionais 1

Transcrição:

Boot, BIOS, Bootloader Prof. Alexandre Beletti POST da BIOS O primeiro a ser executado é o POST Verifica presença de dispositivos (Ex: teclado, monitor, etc) Verifica se a memória RAM está OK (teste básico) O POST carrega o software da BIOS no final da memória RAM (Ex: 0xFFFFF0) 1

POST da BIOS Coloca um JMP no primeiro byte na memória. CS:IP é setadoem 0 O processador executará o endereço 0x00000 Esse endereço está com um salto: JMP 0xFFFFF0 A BIOS assume o controle... O que a BIOS faz? BIOS Carrega o vetor de interrupções na RAM (IVT) Faz uso da INT 0x19 para localizar um dispositivo bootável Procura pelo SETOR 1, HEAD 0, TRACK 0 Um setor tem 512 bytes somente Esse 512 bytes são carregados a partir do endereço 0x7C00 (o Bootloader!) 2

Bootloader Está armazenado na MBR É sempre o primeiro setor de um disco Tem o tamanho máximo de 512 bytes É carregado na BIOS pela INT 0x19 no endereço 0x7C00 Exemplo de um Boot Loader org 0x7c00 ; We are loaded by BIOS at 0x7C00 bits 16 ; We are still in 16 bit Real Mode Start: cli hlt times 510 -($-$$) db 0 dw 0xAA55 ; Clear all Interrupts ; halt the system ; We have to be 512 bytes. ;Clear the rest of the bytes with 0 ; Boot Signiture 3

Montando e Gravando Montando o código em ASM: nasm f bin boot1.asm o boot1.bin Gravando em um disquete: partcopy0 200 f0 0 = endereço inicial 200 = endereço final (0x200 = 512 decimal) -f0 = disquete 0 ou A: ou /dev/fd0 Bootloader no BOCS 4

Modos do Processador Prof. Alexandre Beletti Modos do Processador x86 -PC Real Mode Protected Mode Unreal Mode Virtual 8086 Mode 5

Modo Real Endereços SEGMENTO:OFFSET Limitado a 1Mbde memória Registradores de 16 bits Sem Memória Virtual ou Memória Protegida Modo Real - Endereçamento Você deseja acessar mais do que 64Kbytes que um endereço de 16 bits permite (de 0 até 65535 ou de 0x0000 até 0xFFFF) Quando temos mais de 64Kb precisamos dividir a memória em partes (SEGMENTOS) Lembre-se dos registradores de segmento do x86 de 16 bits (CS, DS, SS e ES) 6

Modo Real - Endereçamento Temos então o Endereço Real que é: (SEGMENTO x 16d) + OFFSET Ex: No endereço 07C0:0000, o primeira parte (07C0) é o segmentoe a segunda parte (0000) é o offset Podemos representar um mesma referência a memória com combinações de SEGMENTOS e OFFSET distintos Modo Real - Endereçamento 0007:7B90 0008:7B80 0009:7B70 000A:7B60 000B:7B50 000C:7B40 0047:7790 0048:7780 0049:7770 004A:7760 004B:7750 004C:7740 Endereço: 0x7C00 Os endereços ao lado representam todos a mesma coisa! 7

Overlapped Segments O fato de você ter possibilidades distintas de referenciar um único byte na RAM pode gerar o que chamamos de Overlapped Segments Modo Protegido Faz uso de Descriptor Tables Permite o uso de processadores em 32 bits Permite endereçar mais de 4Gb de RAM A maioria dos Sistemas Operacionais faz uso de Modo Protegido 8

Modo Unreal É o modo real mas com 4Gb Mudamos o processador para o Modo Protegido Carregamos um Descriptor Voltamos para o Modo Real Modo Virtual 8086 É um Modo Protegido com um Modo Real de 16 bits emulado Lembre-se: As Interrupções da BIOS são disponíveis somente no Modo Real! 9

OEM Parameter Block BIOS Parameter Block Prof. Alexandre Beletti OEM Parameter Block O propósito desse bloco é descrever o sistema de arquivos presente no disco Por exemplo, caso isso não exista o Windows irá exibir que o Disco Não Está Formatado Ele deve estar incluída no programa que será o nosso Bootloader(ou no primeiro estágio do Bootloaderno caso de Bootloadercom dois estágios) 10

Exemplo de OEM Parameter Block Organização do Disco FAT12 Boot Sector Extra Reserved Sectors File Allocation Table 1 File Allocation Table 2 Root Directory (FAT12/FAT16 Only) Data Region containng files and directories. 11

Características da FAT12 Possui duas FATs(a segunda é uma cópia da primeira) Os setores extras reservados são determinados pelo OEM Blockna bpbreservedsectors O diretório ROOT (raiz) é uma tabela de formada por registros de 32 bytes Registro da Tabela FAT12 1 de 2 Bytes 0-7 : DOS File name (Padded with spaces)bytes 8-10 : DOS File extension (Padded with spaces)bytes 11 :File attributes. This is a bit pattern:bit0 :Read Only Bit 1 :Hidden Bit 2 :System Bit 3 :Volume Label Bit 4 :This is a subdirectory Bit 5 :Archive Bit 6 :Device (Internal use) Bit 6 :Unused Bytes 12 :UnusedBytes13 :Create time in msbytes14-15 :Created time, using the following format:bit0-4 :Seconds (0-29) Bit 5-10 : Minutes (0-59) 12

Registro da Tabela FAT12 2 de 2 Bit 11-15 : Hours (0-23) Bytes 16-17 :Created year in the following format:bit0-4 : Year (0=1980; 127=2107 Bit 5-8 : Month (1=January; 12=December) Bit 9-15 :Hours (0-23) Bytes 18-19 :Last access date (Uses same format as above) Bytes 20-21 :EA Index (Used in OS/2 and NT, dontworry about it) Bytes 22-23 :Last Modified time (See byte 14-15 for format) Bytes 24-25 :Last modified date (See bytes 16-17 for format) Bytes 26-27 : First Cluster Bytes 28-32 :File Size Procurando e Lendo na FAT12 Prof. Alexandre Beletti 13

Procurando e Lendo na FAT12 1. Carregando a Tabela do Diretório Root 2. Encontrando o Estágio 2 do Bootloader(Ex) 3. Carregando a FAT Carregando a Tabela do Diretório Root Calcule o Tamanho do Diretório Root= Divida o número de Entradas do Root pelo Número de Bytes por Setor Calcule o Endereço do Root= Número de FATs somado com o Setores Reservados 14

Encontrando o Estágio 2 do Bootloader(Por Exemplo...) Os 11 primeiros bytes das entradas de 32 bytes do diretório ROOT são o nome do arquivo Basta verificar se o nome encontrado é o desejado, caso contrário incremente 32 bytes (tamanho do registro) Repita o procedimento anterior até encontrar ou dizer que o arquivo não existe Carregando a FAT Quando encontramos o arquivo precisamos dos últimos 2 campos do registro: Bytes 26-27 : First Cluster Bytes 28-32 : File Size Agora em FirstCluster temos o endereço do primeiro cluster do arquivo 15