𝖂𝖎ƙ𝖎𝖊

Boot: mudanças entre as edições

imported>Marciovinicius
(não havia erro algum em 'seqüência')
imported>Aleth Bot
m (Bot: Eliminação automática de afluentes - solicitado em Usuária:Aleth Bot/Unlink)
 
(168 edições intermediárias de mais de 100 usuários não estão sendo mostradas)
Linha 1: Linha 1:
Em [[computação]], '''boot''' é o termo em inglês para o [[processo de iniciação]] do [[computador]] que carrega o [[sistema operacional]] quando a máquina é ligada.
{{mais fontes|data=abril de 2017}}
{{outros significados|conceitos de ficção|Reboot (ficção)}}
[[Imagem:Binary executable file2.png|thumb|250px|Um BOOT hexadecimal do [[FreeBSD]].]]
Em [[informática]], '''boot''' é o termo em [[Língua inglesa|inglês]] para o processo de {{PEPB|arranque|inicialização}} do computador durante o carregamento do [[Sistema operativo|sistema operacional]] quando a máquina é ligada.


Muitos [[computadores]] podem executar apenas códigos existentes na memória de trabalho ([[ROM]] ou [[RAM]]); os sistemas operacionais modernos são normalmente armazenados em [[disco rígido]], [[CD-ROM]] ou outros dispositivos de armazenamento. Logo que o computador é ligado, ele não tem um sistema operacional na memória. O computador [[hardware]] não pode fazer as ações do sistema operacional, como carregar um programa do disco; assim um aparente insolúvel [[paradoxo]] é criado: para carregar o sistema operacional na memória, precisamos de um sistema operacional já carregado.
Muitos [[computadores]] podem executar apenas códigos existentes na [[memória de trabalho]] ([[Memória ROM|ROM]] ou [[Memória RAM|RAM]]); os sistemas operacionais modernos são normalmente armazenados em [[disco rígido]], [[CD-ROM]] ou outros dispositivos de armazenamento. Logo que o computador é ligado, ele não tem um sistema operacional na memória. O [[hardware]] do computador não pode fazer as ações do sistema operacional, como carregar um programa do disco; assim um aparente insolúvel [[paradoxo]] é criado: para carregar o sistema operacional na memória, precisamos de um sistema operacional já carregado.


== Sistema de iniciação ou Boot loader ==
== Carregador de inicialização ==
 
A solução para o paradoxo está na utilização de um pequeno e especial programa, chamado ''sistema de iniciação'', ''carregador'', ''boot loader'' ou ''bootstrap''. Este programa não tem a completa funcionalidade de um sistema operacional, mas é especialmente construído para que seja capaz de carregar um outro programa para permitir a iniciação do sistema operacional. Frequentemente, carregador de múltiplos estágios são usados, neste caso vários pequenos programas se complementam em sequência, até que o último deles carregue o sistema operacional.
A solução para o paradoxo está na utilização de um pequeno e especial programa, chamado ''sistema de iniciação'', ''boot loader'' ou ''bootstrap''. Este programa não tem a completa funcionalidade de um sistema operacional, mas é especialmente construído para que seja capaz de carregar um outro programa para permitir a iniciação do sistema operacional. Freqüentemente, boot loaders de múltiplos estágios são usados, neste caso vários pequenos programas se complementam em seqüência, até que o último deles carrega o sistema operacional.


Os primeiros computadores programáveis tinham chaves no painel frontal para permitir ao operador colocar o '''sistema de iniciação''' na memória antes de iniciar a CPU. Este poderia então ler o sistema operacional de um meio de armazenamento externo como uma [[fita de papel]].
Os primeiros computadores programáveis tinham chaves no painel frontal para permitir ao operador colocar o '''sistema de iniciação''' na memória antes de iniciar a CPU. Este poderia então ler o sistema operacional de um meio de armazenamento externo como uma [[fita de papel]].
Linha 11: Linha 13:
Uma hipotética [[linguagem de máquina]] para o sistema de iniciação, poderia ser tão simples como as oito instruções seguintes, que fazem a leitura dos dados da fita:
Uma hipotética [[linguagem de máquina]] para o sistema de iniciação, poderia ser tão simples como as oito instruções seguintes, que fazem a leitura dos dados da fita:


0: faça o registrador P = 8
# Faça o registrador P = 8
1: Verifique se a fita de papel está posicionada
# Verifique se a fita de papel está posicionada
2: Se não estiver retorne ao passo 1
# Se não estiver retorne ao passo 1
3: Leia um [[byte]] da fita
# Leia um [[byte]] da fita
4: Se chegou no fim da fita pule para o passo 8
# Se chegou no fim da fita pule para o passo 8
5: Armazene os dados lidos no endereço do registrador P
# Armazene os dados lidos no endereço do registrador P
6: incremente o registrador P
# incremente o registrador P
7: pule para 1
# pule para 1
 
Nos computadores modernos o processo de iniciação começa com a execução pela [[Unidade central de processamento|CPU]] de um programa contido na memória [[ROM]] (o [[BIOS]] do [[IBM PC]]) em um endereço predefinido (a CPU é programada para executar este programa depois de um [[reset]] automaticamente). Este programa contém funcionalidades rudimentares para procurar por dispositivos que podem conter um sistema operacional e que são, portanto, passíveis de participar de um boot. Definido o dispositivo é carregado um pequeno programa de uma seção especial deste.
 
=== Carregador de inicialização de primeiro estágio ===
Carregadores de boot podem enfrentar restrições peculiares, especialmente em tamanho. Por exemplo, no IBM PC e compatíveis, um setor de inicialização normalmente deveria trabalhar apenas em 32 KB<ref name="msakamoto-mbr">{{citar web|autor =Masahiko Sakamoto|título=Why BIOS loads MBR into 7C00h in x86?|data=13 de maio de 2010|url=http://www.glamenv-septzen.net/en/view/6|website=Glamenv-Septzen.net|acessodata=2012-08-22}}</ref> (posteriormente aumentado para 64 KB<ref name="BBS_101">{{citar web|autor1 =Compaq Computer Corporation|autor2 =Phoenix Technologies Ltd|autor3 =Intel Corporation|data=11 de janeiro de 1996|título=BIOS Boot Specification 1.01|url=https://acpica.org/sites/acpica/files/specsbbs101.pdf|acessodata=21 de dezembro de 2017}}</ref>) de memória do sistema e não usar as instruções não suportadas pelos processadores [[Intel 8088|8088]]/8086 originais.
 
O primeiro estágio de carregadores de inicialização de PC (do inglês first-stage boot loader - FSBL), localizado em [[Disco rígido|discos fixos]] e [[unidades removíveis]], deve caber nos primeiros 446 [[byte]]s do [[Registro Mestre de Inicialização]] para deixar espaço para a [[tabela de partição]] padrão de 64 bytes com quatro entradas de partição e [[Master Boot Record#Considerações de programação|assinatura de boot]] de dois bytes, que o BIOS requer para um carregador de inicialização adequado - ou até menos, quando recursos adicionais como mais de quatro entradas de partição (até 16 com 16 bytes cada), uma [[Master Boot Record#Identidade do disco|assinatura de disco]] (6 bytes), um [[Master Boot Record#Leiaute de setor|timestamp de disco]] (6 bytes), uma [[Partição Ativa Avançada]] (18 bytes) ou carregadores especiais de múltipla inicialização também devem ser suportados em alguns ambientes.


Nos computadores modernos o processo de iniciação começa com a execução pela [[Unidade Central de Processamento|CPU]] de um programa contido na memória [[ROM]] (A [[BIOS]] do [[IBM PC]]) em um endereço predefinido (A CPU é programada para executar este programa depois de um [[reset]] automaticamente). Este programa contém funcionalidades rudimentares para procurar por dispositivos que podem conter um sistema operacional e que são, portanto, passíveis de participar de um boot. Definido o dispositivo é carregado um pequeno programa de uma seção especial deste.
Nos [[Volume Boot Record|Registros de Inicialização por Volume]] de [[disquete]] e [[superfloppy]], até 59 bytes são ocupados pelo [[BIOS parameter block|Extended BIOS Parameter Block]] nos volumes [[File Allocation Table#FAT12|FAT12]] e [[File Allocation Table#FAT16 inicial|FAT16]] desde o DOS 4.0, enquanto o [[File Allocation Table#FAT32|FAT32]] EBPB, introduzido com o DOS 7.1, requer até 71 bytes, deixando apenas 441 bytes para o gerenciador de inicialização ao assumir um tamanho de setor de 512 bytes.<ref>{{citar web|url=https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-boot-init-shutdown-process.html|título=1.2. A Detailed Look at the Boot Process|publicado=Red Hat Enterprise Linux 3|acessodata=24 de dezembro de 2013|data=2003}}</ref> Os setores de inicialização da Microsoft, portanto, impunham tradicionalmente certas restrições no processo de inicialização, por exemplo, o arquivo de inicialização tinha que estar localizado em uma posição fixa no diretório raiz do sistema de arquivos e armazenado como setores consecutivos, condições atendidas pelo comando <code>[[SYS (comando)|SYS]]</code> e ligeiramente relaxado em versões posteriores do DOS. O carregador de inicialização pôde então carregar os três primeiros setores do arquivo na memória, o que continha outro gerenciador de inicialização integrado capaz de carregar o restante do arquivo na memória.


=== Segundo estágio do sistema de iniciação ===
Quando eles adicionaram o suporte a LBA e FAT32, eles até mudaram para um carregador de inicialização de dois setores usando 386 instruções. Ao mesmo tempo, outros fornecedores conseguiram espremer muito mais funcionalidades em um único setor de inicialização, sem afrouxar as restrições originais sobre a única memória mínima disponível e suporte ao processador. Por exemplo, os setores de inicialização do DR-DOS podem localizar o arquivo de inicialização no sistema de arquivos FAT12, FAT16 e FAT32 e carregá-lo na memória como um todo via CHS ou LBA, mesmo se o arquivo não estiver armazenado em um local fixo e em setores consecutivos.


O pequeno programa normalmente não é o sistema operacional, mas apenas um segundo estágio do sistema de iniciação, assim como o [[Lilo]] ou o [[Grand Unified Bootloader|Grub]]. Ele será então capaz de carregar o sistema operacional apropriado, e finalmente transferir a execução para ele. O sistema irá inicializar, e deve carregar [[device driver]]s e outros programas que são necessários para a operação normal de um sistema operacional.
Exemplos de carregadores de inicialização de primeiro estágio incluem o [[coreboot]], o [[Libreboot]] e o [[Das U-Boot]].


O processo de iniciação é considerado completo quando o computador está pronto para ser operado pelo usuário. [[Computador Pessoal|Computadores pessoais]] modernos tipicamente levam cerca de um minuto para executar o processo de iniciação (deste tempo cerca de 15 segundos são devidos a cada chamada do processo de iniciação, e o resto para a carga do sistema operacional), no entanto, sistemas mais complexos como servidores podem levar vários minutos para terminar o processo de iniciação e iniciar todos os serviços; para garantir maior disponibilidade, estes iniciam alguns serviços antes dos outros.
=== Carregador de inicialização de segundo estágio ===
Carregadores de inicialização de segundo estágio, como [[GNU GRUB]], [[BOOTMGR]], [[Syslinux]], [[NTLDR]] ou [[BootX]], não são sistemas operacionais em si, mas são capazes de carregar um sistema operacional adequadamente e transferir a execução para ele. O sistema operacional subsequentemente se inicializa e pode carregar [[drivers de dispositivo]] extras. O carregador de inicialização de segundo estágio não precisa de drivers para sua própria operação, mas pode usar métodos genéricos de acesso a armazenamento fornecidos pelo firmware do sistema, como o BIOS ou o [[Open Firmware]], embora normalmente com funcionalidade de hardware restrita e desempenho mais baixo.


Muitos sistemas embutidos, ou [[embedded system]]s, podem iniciar instantaneamente -- por exemplo, esperar um minuto para uma televisão ligar é inaceitável. Assim, estes sistemas tem seu sistema operacional inteiro na ROM ou na [[memória flash]], e podem tê-los executados diretamente.
Muitos carregadores de inicialização (como o GNU GRUB, o BOOTMGR do Windows e o NTLDR do Windows NT/2000/XP) podem ser configurados para dar ao usuário várias opções de inicialização. Essas opções podem incluir diferentes sistemas operacionais (para [[Multi boot|multi inicialização]] de diferentes partições ou unidades), diferentes versões do mesmo sistema operacional (no caso de uma nova versão ter problemas inesperados), diferentes opções de carregamento do sistema operacional (por exemplo, inicialização em modo de recuperação ou em [[Modo à prova de falhas|modo seguro]]), e alguns programas autônomos que podem funcionar sem um sistema operacional, como testadores de memória (por exemplo, [[memtest86+]]), um shell básico (como no GNU GRUB) ou até mesmo jogos.


Em [[computação]], uma '''seqüência de iniciação''' são as operações que um computador faz quando ele é ligado, que carregam um  [[sistema operacional]].
Alguns carregadores de inicialização também podem carregar outros carregadores de inicialização, por exemplo, o GRUB carrega o BOOTMGR em vez de carregar o Windows diretamente. Normalmente, uma escolha padrão é pré-selecionada com um atraso de tempo durante o qual um usuário pode pressionar uma tecla para alterar a escolha. Após esse atraso, a opção padrão é executada automaticamente para que a inicialização normal possa ocorrer sem interação.


== Dispositivos de iniciação da BIOS ==
O processo de inicialização pode ser considerado completo quando o computador está pronto para interagir com o usuário ou o sistema operacional é capaz de executar programas do sistema ou programas aplicativos.


Um dispositivo de iniciação é qualquer dispositivo que deve ser iniciado antes da carga do sistema operacional. Isto inclui os dispositivos de entrada como o ([[teclado (computador)|teclado]] dispositivos de saída como o [[Monitor]]), e os dispositivos de armazenamento como ([[drive de disquete]], [[disco rígido]], [[CD-ROM]], etc.). Um caso especial de dispositivo de iniciação são os que podem carregar o sistema operacional (Em antigas máquinas PC, o drive de disquete e o disco rígido).
Muitos [[sistemas embarcados]] devem inicializar imediatamente. Por exemplo, esperar um minuto para que uma [[televisão digital]] ou um [[Receptor GPS|dispositivo de navegação GPS]] seja iniciado é geralmente inaceitável. Portanto, tais dispositivos possuem sistemas de software em ROM ou [[memória flash]] para que o dispositivo possa começar a funcionar imediatamente. Pouco ou nenhum carregamento é necessário, porque o carregamento pode ser pré-calculado e armazenado na ROM quando o dispositivo é fabricado.


Em uma [[BIOS]] moderna, o usuário pode selecionar vários dispositivos para fazer a iniciação, por exemplo [[disquete]], [[Superdisk]], [[Disco Rígido]], [[SCSI]], [[CDROM]], [[Zip drive]], ou [[Universal Serial Bus|USB]] (USB-FDD, USB-ZIP, USB-CDROM, USB-HDD).  
Sistemas grandes e complexos podem ter procedimentos de inicialização que prosseguem em várias fases até que finalmente o sistema operacional e outros programas estejam carregados e prontos para execução. Como os sistemas operacionais são projetados como se nunca iniciassem ou parassem, um carregador de boot poderia carregar o sistema operacional, configurar-se como um mero processo dentro desse sistema e transferir irrevogavelmente o controle para o sistema operacional.<ref>{{citar web|url=http://www.ibm.com/developerworks/library/l-linuxboot/|título=Inside the Linux boot process|publicado=IBM DeveloperWorks|acessodata=24 de dezembro de 2013|data=31 de maio de 2006|autor=M. Tim Jones}}</ref> O carregador de boot termina normalmente como qualquer outro processo.


Por exemplo, podemos instalar o [[Microsoft Windows]] no primeiro disco rígido e o [[Linux]] no segundo. Alterando os parâmetros da BIOS, podemos modificar qual [[sistema operacional]] a carregar.
== Dispositivos de iniciação do BIOS ==
Um dispositivo de iniciação é qualquer dispositivo que deve ser iniciado antes da carga do sistema operacional. Isto inclui os dispositivos de entrada como o [[teclado (computador)|teclado]] , dispositivos de saída como o [[Monitor]], e os dispositivos de armazenamento como [[drive de disquete]], [[disco rígido]], [[CD-ROM]], etc. Um caso especial de dispositivo de iniciação são os que podem carregar o sistema operacional (Em antigas máquinas PC, o drive de disquete e o disco rígido).


== [[Seqüência de iniciação]] no PC (IBM-PC compatível)==
Em uma [[BIOS]] moderna, o usuário pode selecionar vários dispositivos para fazer a iniciação, por exemplo [[disquete]], [[Superdisk]], [[Disco Rígido]], [[SCSI]], [[Cdrom]], [[Zip drive]], ou [[Universal Serial Bus|USB]] (USB-FDD, USB-ZIP, USB-CDROM, USB-HDD).


Ao iniciar o processo de iniciação, a [[Unidade Central de Processamento|CPU]] do [[Computador Pessoal]] executa a instrução localizada no registrador de memória FFFFFFFF0h da [[BIOS]]. Este registrador de memória corresponde a última posição de memória da BIOS. Ele contém uma instrução que faz com que a execução seja desviada para o local na BIOS onde começa o programa inicial. Este programa executa um auto-teste ([[POST]]), que é um teste para verificar o funcionamento de diversos dispositivos no computador. Então, a BIOS busca em uma lista de dispositivos pré-configurados até encontrar um que pode ser o dispositivo de iniciação. Se não encontra este dispositivo, um erro é apresentado e o processo de iniciação termina. Se o dispositivo de iniciação é encontrado, a BIOS carrega e executa o [[MBR]] (Registro mestre de iniciação). Em muitos casos, o MBR verifica a [[tabela de partições]] em busca de uma partição ativa. Se uma partição ativa é encontrada, o MBR carrega e executa o setor de iniciação da partição. O setor de iniciação é específico do sistema operacional, entretanto em muitos sistemas sua principal função é carregar e executar o [[kernel]].
Por exemplo, podemos instalar o [[Microsoft Windows]] no primeiro disco rígido e o [[Linux]] no segundo. Alterando os parâmetros da BIOS, podemos indicar em qual dispositivo está o [[sistema operacional]] a carregar.


== Sequência de iniciação no [[Computador pessoal|PC]] ==
Ao iniciar o processo de iniciação, a [[Unidade Central de Processamento|CPU]] do [[computador pessoal]] executa a instrução localizada no registrador de memória  do [[BIOS]]. Este registrador de memória corresponde a última posição de memória da BIOS. Ele contém uma instrução que faz com que a execução seja desviada para o local no BIOS onde começa o programa inicial.
Este programa executa um auto-teste ([[POST]]), que é um teste para verificar o funcionamento de diversos dispositivos no computador. Então, o BIOS busca em uma lista de dispositivos pré-configurados até encontrar um que pode ser o dispositivo de iniciação. Se não encontra este dispositivo, um erro é apresentado e o processo de iniciação termina. Se o dispositivo de iniciação é encontrado, o BIOS carrega e executa o [[MBR]] (Registro mestre de iniciação).
Em muitos casos, o MBR verifica a [[tabela de partições]] em busca de uma partição ativa. Se uma partição ativa é encontrada, o MBR carrega e executa o setor de iniciação da partição. O setor de iniciação é específico do sistema operacional, entretanto em muitos sistemas sua principal função é carregar e executar o [[núcleo (informática)|núcleo]].
== Boot - android ==
Partição do sistema que contém toda informação necessária para o funcionamento do celular ou tablet, sem ela, o dispositivo não seria capaz de funcionar. Aí se encontram o Bootloader (independente do sistema principal e encarregado pela coordenação geral para funcionamento de qualquer Android, verificando se o sistema está OK e, normalmente, vem bloqueado de fábrica, o que impede sua alteração) e o Kernel Linux (gerencia os recursos do sistema, permitindo que APPs façam uso dele). A cada nova instalação, os dados dessa partição são modificados, permitindo o uso dos softwares instalados no acionamento do gadget.
== Origem do termo ==
== Origem do termo ==
{{Variante-português|Atacador|Cadarço}}
O termo "boot" deriva do inglês ''booting'' que, por sua vez, deriva do termo ''[[bootstrapping]]'' (de ''boot straps'' - o {{PBPE|cadarço|atacador}} de bota ). Em computação, todas as três expressões têm o mesmo significado. O termo faz alusão às histórias sobre o [[Barão de Münchhausen]], que, segundo a lenda, era capaz de erguer-se do pântano (para não se molhar) se puxando pelos cadarços de suas próprias botas (''pulling himself by his own '''boot straps'''''). Ou seja, o termo procura dar a imagem de um processo aparentemente impossível pelo qual o sistema se ergue (ou se coloca em funcionamento) por seu próprio esforço.<ref>{{citar web|url=http://phrases.org.uk/meanings/290800.html|título=Pull yourself up by your bootstraps|publicado=The Phrase Finder|acessodata=24 de dezembro de 2013|autor=Gary Martin}}</ref>


O termo "boot" deriva do inglês [http://en.wikipedia.org/wiki/Booting ''booting'' (En)] que, por sua vez, deriva do termo [http://en.wikipedia.org/wiki/Bootstrapping_%28computing%29 ''bootstrapping'' (En)] (de ''boot straps'' - cadarços de bota). Em computação, todas as três expressões têm basicamente o mesmo significado. O termo faz alusão às histórias sobre o [[Bar%C3%A3o_de_M%C3%BCnchhausen | Barão de Münchhausen]], que, segundo a lenda, era capaz de se erguer do pântano (para não se molhar) puxando pelos cadarços das próprias botas (''pulling himself by his own '''boot straps'''''). Ou seja, o termo procura dar a imagem de um processo aparentemente impossível pelo qual o sistema se ergue (ou se coloca em funcionamento) por seus próprios esforços.
== Arquivo bootável ==
Um '''arquivo bootável''', também conhecido pelo nome em inglês '''bootable file''' é um arquivo que executa no boot. Um exemplo são as instalações de [[sistemas operacionais]], como as do [[Windows XP]], [[Windows Vista]], [[Windows 7]], [[eComStation]], [[Linux]], [[OS/2]], [[Windows 8]], entre outros.


=={{Ver também}}==
== Ver também ==
*[[Boot disk]] and [[LiveCD]]
{{Portal|Tecnologias de informação}}
*[[Linux Loader]] ([[Lilo]])
* [[Boot disk]] e [[Live CD]]
*[[GRUB]]
* [[Boot Manager]] ([[OS/2]])
*[[NT Loader]]
* [[Linux Loader]] ([[Lilo]])
*[[Microreboot]]
* [[GRUB]]
*[[Restartability]]
* [[NT Loader]]
*[[Crash-only software]]
* [[Microreboot]]
*[[Boot-Remoto]]
* [[Restartability]]
* [[Crash-only software]]
* [[Boot-Remoto]]
* [[Vírus de Boot]]


=={{Ligações externas}}==
{{referências}}
*[http://en.tldp.org/HOWTO/Kernel-HOWTO/linux_boot_process.html Linux Boot Process]
 
*[http://am.xs4all.nl/phpwiki/index.php/jumping%20bootfloppy Jumping bootfloppy]
== Ligações externas ==
{{Commons|Booting}}
* {{Link|en|http://code.google.com/p/akernelloader/|Códigos de um IPL em GNU Assembly}}
* {{Link|pt|http://www.psafe.com/blog/|PSafe blog}}
 
{{Sistema Operativo}}
 
{{Título em itálico}}


[[Categoria:Sistemas operativos]]
[[Categoria:Sistemas operativos]]
 
[[Categoria:Inicialização de computadores]]
[[ca:Carregador de l'arrencada]]
[[Categoria:BIOS]]
[[de:Booten]]
[[Categoria:Gestores de arranque| ]]
[[en:Booting]]
[[Categoria:Verbos do inglês]]
[[es:Arranque]]
[[fr:Boot]]
[[he:אתחול]]
[[id:Booting]]
[[it:Boot]]
[[ja:ブート]]
[[nl:Boot (computer)]]
[[ru:Загрузчик ОС]]
[[simple:Booting]]
[[sl:Zagonski nalagalnik]]
[[uk:Завантажник ОС]]

Edição atual tal como às 06h09min de 26 de agosto de 2022

Predefinição:Outros significados

Um BOOT hexadecimal do FreeBSD.

Em informática, boot é o termo em inglês para o processo de arranque (português europeu) ou inicialização (português brasileiro) do computador durante o carregamento do sistema operacional quando a máquina é ligada.

Muitos computadores podem executar apenas códigos existentes na memória de trabalho (ROM ou RAM); os sistemas operacionais modernos são normalmente armazenados em disco rígido, CD-ROM ou outros dispositivos de armazenamento. Logo que o computador é ligado, ele não tem um sistema operacional na memória. O hardware do computador não pode fazer as ações do sistema operacional, como carregar um programa do disco; assim um aparente insolúvel paradoxo é criado: para carregar o sistema operacional na memória, precisamos de um sistema operacional já carregado.

Carregador de inicialização

A solução para o paradoxo está na utilização de um pequeno e especial programa, chamado sistema de iniciação, carregador, boot loader ou bootstrap. Este programa não tem a completa funcionalidade de um sistema operacional, mas é especialmente construído para que seja capaz de carregar um outro programa para permitir a iniciação do sistema operacional. Frequentemente, carregador de múltiplos estágios são usados, neste caso vários pequenos programas se complementam em sequência, até que o último deles carregue o sistema operacional.

Os primeiros computadores programáveis tinham chaves no painel frontal para permitir ao operador colocar o sistema de iniciação na memória antes de iniciar a CPU. Este poderia então ler o sistema operacional de um meio de armazenamento externo como uma fita de papel.

Uma hipotética linguagem de máquina para o sistema de iniciação, poderia ser tão simples como as oito instruções seguintes, que fazem a leitura dos dados da fita:

  1. Faça o registrador P = 8
  2. Verifique se a fita de papel está posicionada
  3. Se não estiver retorne ao passo 1
  4. Leia um byte da fita
  5. Se chegou no fim da fita pule para o passo 8
  6. Armazene os dados lidos no endereço do registrador P
  7. incremente o registrador P
  8. pule para 1

Nos computadores modernos o processo de iniciação começa com a execução pela CPU de um programa contido na memória ROM (o BIOS do IBM PC) em um endereço predefinido (a CPU é programada para executar este programa depois de um reset automaticamente). Este programa contém funcionalidades rudimentares para procurar por dispositivos que podem conter um sistema operacional e que são, portanto, passíveis de participar de um boot. Definido o dispositivo é carregado um pequeno programa de uma seção especial deste.

Carregador de inicialização de primeiro estágio

Carregadores de boot podem enfrentar restrições peculiares, especialmente em tamanho. Por exemplo, no IBM PC e compatíveis, um setor de inicialização normalmente deveria trabalhar apenas em 32 KB[1] (posteriormente aumentado para 64 KB[2]) de memória do sistema e não usar as instruções não suportadas pelos processadores 8088/8086 originais.

O primeiro estágio de carregadores de inicialização de PC (do inglês first-stage boot loader - FSBL), localizado em discos fixos e unidades removíveis, deve caber nos primeiros 446 bytes do Registro Mestre de Inicialização para deixar espaço para a tabela de partição padrão de 64 bytes com quatro entradas de partição e assinatura de boot de dois bytes, que o BIOS requer para um carregador de inicialização adequado - ou até menos, quando recursos adicionais como mais de quatro entradas de partição (até 16 com 16 bytes cada), uma assinatura de disco (6 bytes), um timestamp de disco (6 bytes), uma Partição Ativa Avançada (18 bytes) ou carregadores especiais de múltipla inicialização também devem ser suportados em alguns ambientes.

Nos Registros de Inicialização por Volume de disquete e superfloppy, até 59 bytes são ocupados pelo Extended BIOS Parameter Block nos volumes FAT12 e FAT16 desde o DOS 4.0, enquanto o FAT32 EBPB, introduzido com o DOS 7.1, requer até 71 bytes, deixando apenas 441 bytes para o gerenciador de inicialização ao assumir um tamanho de setor de 512 bytes.[3] Os setores de inicialização da Microsoft, portanto, impunham tradicionalmente certas restrições no processo de inicialização, por exemplo, o arquivo de inicialização tinha que estar localizado em uma posição fixa no diretório raiz do sistema de arquivos e armazenado como setores consecutivos, condições atendidas pelo comando SYS e ligeiramente relaxado em versões posteriores do DOS. O carregador de inicialização pôde então carregar os três primeiros setores do arquivo na memória, o que continha outro gerenciador de inicialização integrado capaz de carregar o restante do arquivo na memória.

Quando eles adicionaram o suporte a LBA e FAT32, eles até mudaram para um carregador de inicialização de dois setores usando 386 instruções. Ao mesmo tempo, outros fornecedores conseguiram espremer muito mais funcionalidades em um único setor de inicialização, sem afrouxar as restrições originais sobre a única memória mínima disponível e suporte ao processador. Por exemplo, os setores de inicialização do DR-DOS podem localizar o arquivo de inicialização no sistema de arquivos FAT12, FAT16 e FAT32 e carregá-lo na memória como um todo via CHS ou LBA, mesmo se o arquivo não estiver armazenado em um local fixo e em setores consecutivos.

Exemplos de carregadores de inicialização de primeiro estágio incluem o coreboot, o Libreboot e o Das U-Boot.

Carregador de inicialização de segundo estágio

Carregadores de inicialização de segundo estágio, como GNU GRUB, BOOTMGR, Syslinux, NTLDR ou BootX, não são sistemas operacionais em si, mas são capazes de carregar um sistema operacional adequadamente e transferir a execução para ele. O sistema operacional subsequentemente se inicializa e pode carregar drivers de dispositivo extras. O carregador de inicialização de segundo estágio não precisa de drivers para sua própria operação, mas pode usar métodos genéricos de acesso a armazenamento fornecidos pelo firmware do sistema, como o BIOS ou o Open Firmware, embora normalmente com funcionalidade de hardware restrita e desempenho mais baixo.

Muitos carregadores de inicialização (como o GNU GRUB, o BOOTMGR do Windows e o NTLDR do Windows NT/2000/XP) podem ser configurados para dar ao usuário várias opções de inicialização. Essas opções podem incluir diferentes sistemas operacionais (para multi inicialização de diferentes partições ou unidades), diferentes versões do mesmo sistema operacional (no caso de uma nova versão ter problemas inesperados), diferentes opções de carregamento do sistema operacional (por exemplo, inicialização em modo de recuperação ou em modo seguro), e alguns programas autônomos que podem funcionar sem um sistema operacional, como testadores de memória (por exemplo, memtest86+), um shell básico (como no GNU GRUB) ou até mesmo jogos.

Alguns carregadores de inicialização também podem carregar outros carregadores de inicialização, por exemplo, o GRUB carrega o BOOTMGR em vez de carregar o Windows diretamente. Normalmente, uma escolha padrão é pré-selecionada com um atraso de tempo durante o qual um usuário pode pressionar uma tecla para alterar a escolha. Após esse atraso, a opção padrão é executada automaticamente para que a inicialização normal possa ocorrer sem interação.

O processo de inicialização pode ser considerado completo quando o computador está pronto para interagir com o usuário ou o sistema operacional é capaz de executar programas do sistema ou programas aplicativos.

Muitos sistemas embarcados devem inicializar imediatamente. Por exemplo, esperar um minuto para que uma televisão digital ou um dispositivo de navegação GPS seja iniciado é geralmente inaceitável. Portanto, tais dispositivos possuem sistemas de software em ROM ou memória flash para que o dispositivo possa começar a funcionar imediatamente. Pouco ou nenhum carregamento é necessário, porque o carregamento pode ser pré-calculado e armazenado na ROM quando o dispositivo é fabricado.

Sistemas grandes e complexos podem ter procedimentos de inicialização que prosseguem em várias fases até que finalmente o sistema operacional e outros programas estejam carregados e prontos para execução. Como os sistemas operacionais são projetados como se nunca iniciassem ou parassem, um carregador de boot poderia carregar o sistema operacional, configurar-se como um mero processo dentro desse sistema e transferir irrevogavelmente o controle para o sistema operacional.[4] O carregador de boot termina normalmente como qualquer outro processo.

Dispositivos de iniciação do BIOS

Um dispositivo de iniciação é qualquer dispositivo que deve ser iniciado antes da carga do sistema operacional. Isto inclui os dispositivos de entrada como o teclado , dispositivos de saída como o Monitor, e os dispositivos de armazenamento como drive de disquete, disco rígido, CD-ROM, etc. Um caso especial de dispositivo de iniciação são os que podem carregar o sistema operacional (Em antigas máquinas PC, o drive de disquete e o disco rígido).

Em uma BIOS moderna, o usuário pode selecionar vários dispositivos para fazer a iniciação, por exemplo disquete, Superdisk, Disco Rígido, SCSI, Cdrom, Zip drive, ou USB (USB-FDD, USB-ZIP, USB-CDROM, USB-HDD).

Por exemplo, podemos instalar o Microsoft Windows no primeiro disco rígido e o Linux no segundo. Alterando os parâmetros da BIOS, podemos indicar em qual dispositivo está o sistema operacional a carregar.

Sequência de iniciação no PC

Ao iniciar o processo de iniciação, a CPU do computador pessoal executa a instrução localizada no registrador de memória do BIOS. Este registrador de memória corresponde a última posição de memória da BIOS. Ele contém uma instrução que faz com que a execução seja desviada para o local no BIOS onde começa o programa inicial.

Este programa executa um auto-teste (POST), que é um teste para verificar o funcionamento de diversos dispositivos no computador. Então, o BIOS busca em uma lista de dispositivos pré-configurados até encontrar um que pode ser o dispositivo de iniciação. Se não encontra este dispositivo, um erro é apresentado e o processo de iniciação termina. Se o dispositivo de iniciação é encontrado, o BIOS carrega e executa o MBR (Registro mestre de iniciação).

Em muitos casos, o MBR verifica a tabela de partições em busca de uma partição ativa. Se uma partição ativa é encontrada, o MBR carrega e executa o setor de iniciação da partição. O setor de iniciação é específico do sistema operacional, entretanto em muitos sistemas sua principal função é carregar e executar o núcleo.

Boot - android

Partição do sistema que contém toda informação necessária para o funcionamento do celular ou tablet, sem ela, o dispositivo não seria capaz de funcionar. Aí se encontram o Bootloader (independente do sistema principal e encarregado pela coordenação geral para funcionamento de qualquer Android, verificando se o sistema está OK e, normalmente, vem bloqueado de fábrica, o que impede sua alteração) e o Kernel Linux (gerencia os recursos do sistema, permitindo que APPs façam uso dele). A cada nova instalação, os dados dessa partição são modificados, permitindo o uso dos softwares instalados no acionamento do gadget.

Origem do termo

O termo "boot" deriva do inglês booting que, por sua vez, deriva do termo bootstrapping (de boot straps - o cadarço (português brasileiro) ou atacador (português europeu) de bota ). Em computação, todas as três expressões têm o mesmo significado. O termo faz alusão às histórias sobre o Barão de Münchhausen, que, segundo a lenda, era capaz de erguer-se do pântano (para não se molhar) se puxando pelos cadarços de suas próprias botas (pulling himself by his own boot straps). Ou seja, o termo procura dar a imagem de um processo aparentemente impossível pelo qual o sistema se ergue (ou se coloca em funcionamento) por seu próprio esforço.[5]

Arquivo bootável

Um arquivo bootável, também conhecido pelo nome em inglês bootable file é um arquivo que executa no boot. Um exemplo são as instalações de sistemas operacionais, como as do Windows XP, Windows Vista, Windows 7, eComStation, Linux, OS/2, Windows 8, entre outros.

Ver também

Erro de script: Nenhum módulo desse tipo "Portal".

Referências

  1. Masahiko Sakamoto (13 de maio de 2010). «Why BIOS loads MBR into 7C00h in x86?». Glamenv-Septzen.net. Consultado em 22 de agosto de 2012 
  2. Compaq Computer Corporation; Phoenix Technologies Ltd; Intel Corporation (11 de janeiro de 1996). «BIOS Boot Specification 1.01» (PDF). Consultado em 21 de dezembro de 2017 
  3. «1.2. A Detailed Look at the Boot Process». Red Hat Enterprise Linux 3. 2003. Consultado em 24 de dezembro de 2013 
  4. M. Tim Jones (31 de maio de 2006). «Inside the Linux boot process». IBM DeveloperWorks. Consultado em 24 de dezembro de 2013 
  5. Gary Martin. «Pull yourself up by your bootstraps». The Phrase Finder. Consultado em 24 de dezembro de 2013 

Ligações externas

Commons
O Commons possui imagens e outros ficheiros sobre Boot

Predefinição:Sistema Operativo

talvez você goste