Bootloader (programari)

De la Viquipèdia, l'enciclopèdia lliure
GNU GRUB, un popular carregador d'arrencada de codi obert

Un carregador d'arrencada, també escrit com a carregador d'arrencada [1][2] o anomenat gestor d'arrencada [2] i carregador d'arrencada, és un programa informàtic que s'encarrega d'arrencar un ordinador.

Carregador d'arrencada de Windows

Quan s'apaga un ordinador, el seu programari — els sistemes operatius, el codi de l'aplicació i les dades — emmagatzemat a la memòria no volàtil. Quan l'ordinador està encès, normalment no té un sistema operatiu ni el seu carregador a la memòria d'accés aleatori (RAM). L'ordinador executa primer un programa relativament petit emmagatzemat a la memòria de només lectura (ROM, i més tard EEPROM, NOR flash) juntament amb algunes dades necessàries, per inicialitzar la memòria RAM (especialment en sistemes x86), per accedir al dispositiu no volàtil (generalment bloqueja el dispositiu, p. ex. flash NAND) o dispositius des dels quals els programes i dades del sistema operatiu es poden carregar a la memòria RAM.

Alguns sistemes informàtics anteriors, en rebre un senyal d'arrencada d'un operador humà o d'un dispositiu perifèric, poden carregar un nombre molt reduït d'instruccions fixes a la memòria en una ubicació específica, inicialitzar almenys una CPU i després apuntar la CPU a les instruccions i iniciar la seva execució. Aquestes instruccions solen iniciar una operació d'entrada des d'algun dispositiu perifèric (que l'operador pot seleccionar mitjançant un interruptor). Altres sistemes poden enviar ordres de maquinari directament a dispositius perifèrics o controladors d'E/S que provoquen una operació d'entrada extremadament senzilla (com ara "llegir el sector zero del dispositiu del sistema a la memòria a partir de la ubicació 1000"), carregant efectivament un petit nombre d'instruccions del carregador d'arrencada a la memòria; Aleshores es pot utilitzar un senyal de finalització del dispositiu d'E/S per iniciar l'execució de les instruccions per part de la CPU.

Els ordinadors més petits sovint utilitzen mecanismes de carregador d'arrencada menys flexibles però més automàtics per garantir que l'ordinador s'iniciï ràpidament i amb una configuració de programari predeterminada. En molts ordinadors d'escriptori, per exemple, el procés d'arrencada comença amb la CPU executant el programari contingut a la ROM (per exemple, la BIOS d'un IBM PC o compatible amb un IBM PC) en una adreça predefinida (algunes CPU, inclosa la sèrie Intel x86, estan dissenyats per executar aquest programari després del restabliment sense ajuda externa). Aquest programari conté una funcionalitat rudimentària per cercar dispositius aptes per participar en l'arrencada i carregar un petit programa des d'una secció especial (més habitualment el sector d'arrencada) del dispositiu més prometedor, normalment començant en un punt d'entrada fix, com ara l'inici del sector.

Primera fase de l'arrencada[modifica]

Els carregadors d'arrencada poden enfrontar-se a limitacions peculiars, especialment en mida; per exemple, a l'anterior IBM PC i compatibles, un sector d'arrencada normalment hauria de funcionar només en 32 KiB [3] (posteriorment es va relaxar a 64 KiB [4]) de memòria del sistema i només utilitza instruccions compatibles amb els processadors 8088/8086 originals. La primera etapa dels carregadors d'arrencada d'ordinadors (FSBL, carregador d'arrencada de la primera etapa) situat en discs fixos i unitats extraïbles ha d'encaixar als primers 446 bytes del registre d'arrencada mestre per tal de deixar espai per a la taula de particions de 64 bytes per defecte amb quatre entrades de partició i la signatura d'arrencada de dos bytes, que la BIOS requereix per a un carregador d'arrencada adequat — o fins i tot menys, quan característiques addicionals com més de quatre entrades de partició (fins a 16 amb 16 bytes cadascuna), una signatura de disc (6 bytes), una marca de temps de disc (6 bytes), una partició activa avançada (18 bytes) o carregadors especials d'arrencada múltiple també han de ser compatibles en alguns entorns. En registres d'arrencada de volums de disquet i superdisquet, s'ocupen fins a 59 bytes per al bloc de paràmetres de BIOS estès en volums FAT12 i FAT16 des de DOS 4.0, mentre que el FAT32 EBPB introduït amb DOS 7.1 requereix fins i tot 87 bytes, deixant només 423 bytes per al carregador d'arrencada. en assumir una mida de sector de 512 bytes. Per tant, els sectors d'arrencada de Microsoft imposaven tradicionalment certes restriccions al procés d'arrencada, per exemple, el fitxer d'arrencada s'havia d'ubicar en una posició fixa al directori arrel del sistema de fitxers i emmagatzemat com a sectors consecutius, condicions tenint en compte. de l'ordre SYS i lleugerament relaxat en versions posteriors de DOS. Aleshores, el carregador d'arrencada va poder carregar els tres primers sectors del fitxer a la memòria, que passava a contenir un altre carregador d'arrencada incrustat capaç de carregar la resta del fitxer a la memòria. Quan Microsoft va afegir suport LBA i FAT32, fins i tot van canviar a un carregador d'arrencada que arribava a més de dos sectors físics i utilitzava instruccions de 386 per raons de mida. Al mateix temps, altres venedors van aconseguir esprémer molta més funcionalitat en un únic sector d'arrencada sense relaxar les restriccions originals sobre només la memòria disponible mínima (32 KiB) i suport de processador (8088/8086). Per exemple, els sectors d'arrencada DR-DOS poden localitzar el fitxer d'arrencada al sistema de fitxers FAT12, FAT16 i FAT32 i carregar-lo a la memòria com a conjunt mitjançant CHS o LBA, fins i tot si el fitxer no està emmagatzemat en una ubicació fixa i en sectors consecutius.

Segona fase de l'arrencada[modifica]

Els carregadors d'arrencada de segona etapa, com ara GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR o iBoot, no són ells mateixos sistemes operatius, però són capaços de carregar un sistema operatiu correctament i transferir-hi l'execució; el sistema operatiu s'inicialitza posteriorment i pot carregar controladors de dispositiu addicionals. El carregador d'arrencada de la segona etapa no necessita controladors per al seu propi funcionament, sinó que pot utilitzar mètodes d'accés a l'emmagatzematge genèrics proporcionats pel microprogramari del sistema, com ara la BIOS o el firmware obert, tot i que normalment amb una funcionalitat de maquinari restringida i un rendiment inferior.[5] Es poden configurar molts carregadors d'arrencada per oferir a l'usuari diverses opcions d'arrencada. Aquestes opcions poden incloure diferents sistemes operatius (per a l'arrencada dual o múltiple des de diferents particions o unitats), diferents versions del mateix sistema operatiu (en cas que una versió nova tingui problemes inesperats), diferents opcions de càrrega del sistema operatiu (p. ex., arrencar en un mode de rescat o segur), i alguns programes autònoms que poden funcionar sense un sistema operatiu, com ara provadors de memòria (per exemple, memtest86+), un intèrpret d'ordres bàsic (com a GNU GRUB) o fins i tot jocs (vegeu Llista de jocs d'arrencada de PC).[6] Alguns carregadors d'arrencada també poden carregar altres carregadors d'arrencada; per exemple, GRUB carrega BOOTMGR en lloc de carregar Windows directament. Normalment, una opció predeterminada es preselecciona amb un retard durant el qual un usuari pot prémer una tecla per canviar l'opció; després d'aquest retard, l'opció predeterminada s'executa automàticament perquè l'arrencada normal es pugui produir sense interacció.

Referències[modifica]

  1. «GNU GRUB - GNU Project - Free Software Foundation (FSF)» (en anglès). www.gnu.org. [Consulta: 27 setembre 2021].
  2. 2,0 2,1 «systemd-boot» (en anglès). www.freedesktop.org. [Consulta: 27 setembre 2021].
  3. Sakamoto, Masahiko. «Why BIOS loads MBR into 7C00h in x86?» (en anglès). glamenv-septzen.net, 13-05-2010. [Consulta: 22 agost 2012].
  4. Compaq computer corporation. «BIOS boot specification 1.01» (en anglès), 11-01-1996. [Consulta: 21 desembre 2017].
  5. «Chapter 6 - Troubleshooting startup and disk problems». A: Windows NT server resource kit (en anglès). Microsoft. 
  6. «Tint» (en anglès). coreboot. [Consulta: 20 novembre 2010].