Le démarrage de l'ordinateur implique à la fois le matériel de l'ordinateur et le système d'exploitation. Sur les machines les plus simples, généralement des systèmes embarqués, le système d'exploitation est placé dans une petite mémoire ROM et est lancé automatiquement au démarrage de l'ordinateur. Mais sur les ordinateurs personnels actuels, le système d'exploitation est placé sur une mémoire de masse, comme un disque dur ou une clé USB. Le processus de démarrage est alors plus compliqué. Aucun ordinateur ne boote directement depuis le disque dur ou une clé USB, ce qui fait qu'il y a forcément une mémoire ROM dans un ordinateur moderne. Elle sert lors du démarrage de l'ordinateur pour le configurer à l'allumage et démarrer son système d'exploitation. Cette mémoire ROM est appelée le firmware, et ce n'est autre que le BIOS sur les ordinateurs anciens, l'UEFI sur les ordinateurs récents.
Sur les ordinateurs modernes, le démarrage est un processus qui demande de nombreuses étapes, la majorité se passant avant le lancement du système d’exploitation. Le démarrage commence quand l'utilisateur appuie sur le bouton d’alimentation. Le courant passe alors dans les différents circuits de l'ordinateur, qui s'allument. Le processeur est conçu pour démarrer l’exécution d'un programme à une adresse bien précise, adresse à laquelle se trouve le "firmware". Le "firmware" s’exécute alors et commence son travail. Il effectue beaucoup de choses, mais la première est de tester le bon fonctionnement du processeur, de la mémoire et des périphériques cruciaux. Cette étape de test est appelée le "power self-on test". Si une erreur est rencontrée, le démarrage stoppe et le BIOS émet une suite de bips caractéristique. Mais si aucune erreur n'est rencontrée, le "firmware" poursuit le démarrage et accède alors au disque dur. Précisément, il lit le premier secteur du disque dur et lance un programme de démarrage spécialisé, appelé le "bootloader", dont le but est de lancer le système d'exploitation.
Le "bootloader" et les partitions.
Le "firmware" accède en premier au disque dur, avant de laisser la main au système d'exploitation. Diverses informations sont placés dans les premiers secteurs du disque dur, pour déterminer quels sont les systèmes d'exploitations installés, comment est partitionné le disque dur, comment lancer le système d'exploitation, etc. Suivant que l'on parle du BIOS ou de l'UEFI ou de leur équivalent sur les MAC et autres architectures, ces informations ne sont pas stockées de la même manière. Mais on peut quand même donner quelques généralités sur ces informations de démarrage.
Le chargeur d’amorçage.
En premier lieu, il faut parler du chargeur d'amorçage ("bootloader"), un morceau de logiciel qui démarre le système d'exploitation. Il le copie en mémoire, démarre le noyau et les services en espace utilisateur, et bien d'autres choses. Il existe de nombreux chargeur d'amorçage, certains sont des logiciels libres, d'autres des logiciels propriétaires. Tous les systèmes d’exploitation modernes fournissent leur propre chargeur d'amorçage. Sur les systèmes Microsoft, le chargeur d'amorçage utilisait le BIOS et correspondait à deux fichiers : le NTLDR (NT LoaDeR ou Chargeur d'amorçage de Windows NT) et un fichier de configuration boot.ini. Depuis Vista, le chargeur d'amorçage est winload.exe et sa configuration est stockée dans le registre. Apple a son propre chargeur d'amorçage appelé Bootcamp. Les chargeurs d'amorçage open Source sont eux plus nombreux, mais les plus connus sont de loin GRUB, Coreboot, et LILO/eLILO. 
Il faut noter que certains bootloaders permettent de lancer plusieurs systèmes d'exploitation différents. Attention, je ne veux pas dire que l'on peut lancer plusieurs systèmes d’exploitation en même temps, comme c'est le cas avec les techniques de virtualisation. Je veux dire que l'on peut lancer au choix Windows, Linux, ou un autre OS. Il est possible d'installer plusieurs systèmes d'exploitation sur un ordinateur et de décider lequel lancer au démarrage. 
La table des partitions.
Un autre point important pour le démarrage est que les partitions du disque dur sont gérées avant même le lancement du système d'exploitation. Pour rappel, partitionner un disque dur signifie le diviser en plusieurs morceaux, qui seront considérés par le système d'exploitation comme autant de disques durs séparés. Les informations sur les partitions sont mémorisées dans une table des partitions, qui stocke la taille et le premier secteur de chaque partition, ainsi que quelques informations complémentaires.
Le démarrage sur les ordinateurs personnels de type PC.
Sur les ordinateurs de type PC, au jeu d'instruction x86, il existe deux standards pour les "firmware" : le BIOS pour les ordinateurs anciens, et l'UEFI, pour les ordinateurs récents. Le processus de démarrage est différent pour les deux. Notamment, les informations de démarrage sur le disque dur ne sont pas organisées de la même manière. Le BIOS n'utilise que le premier secteur du disque dur, alors que l'UEFI prend plus de place. La table des partitions n'est pas la même suivant que l'on parle d'un ordinateur avec un BIOS ou utilisant l'UEFI.
Le "Master Boot Record" et le BIOS.
Sur les PC avec un BIOS, les informations de démarrage sont stockées dans le Master Boot Record (MBR), le premier secteur du disque dur, qui joue un rôle important lors du démarrage de l'ordinateur. Le BIOS est conçu pour lire MBR, récupérer le "bootloader" dans le MBR, puis lancer le noyau et le reste du système d'exploitation.
Le MBR est structuré comme illustré ci-dessous, en trois grandes parties aux usages différents.
La table des partitions.
Les informations de chaque partition sont codées sur 16 octets, de la manière indiquée ci-dessous. La partition correspond évidemment à un bloc de secteurs consécutifs. Vu que la taille d'une partition est codée sur 32 bits, la taille d'une partition ne peut pas dépasser les 4 Giga-secteurs. Sur les mémoires de masse qui ont des secteurs de 512 Kio, cela correspond à une capacité totale de 2,2 Téraoctets.
Afin de dépasser la limite de 4 partitions, il est possible de subdiviser une partition en sous-partitions, appelées partitions logiques. Pour cela, la partition subdivisée doit être définie comme une partition dite étendue dans le MBR (le type de la partition doit avoir une valeur bien précise). Les informations sur une partition logique sont mémorisées dans un secteur situé au début de la partition logique, dans une structure appelée Extended Boot Record. Celui-ci a une structure similaire au MBR, à quelques détails près. Premièrement, seules les deux premières entrées de la table des partitions sont censées être utilisées. La première indique l'adresse de la prochaine partition logique (ce qui fait que les EBR forment une liste chaînée), tandis que la seconde sert pour les informations de la partition logique proprement dite. De plus, la place normalement réservée au chargement de système d'exploitation est remplie de zéros.
Le "bootloader".
Le "bootloader" du MBR est très petit, trop petit pour contenir le moindre code substantiel. Il ne peut pas à lui seul démarrer le système d'exploitation, charger le noyau et autre. Sa réelle utilité est de charger un second "bootloader", plus consistent, depuis le disque dur. On distingue ainsi le bootloader" de première étape, localisé dans le MBR, et le bootloader" de seconde étape situé sur le disque dur. Le premier lit la table des partitions, détecte quelles sont les partitions actives (celles bootables) et décide depuis laquelle charge le second "bootloader". Le second "bootloader" démarre le noyau, les drivers, puis lance les logiciels en espace utilisateur. Les "bootloaders" de première étape les plus connus sont coreboot et Libreboot pour les logiciels open source, mais les systèmes d'exploitations usuels fournissent aussi leurs propres "bootloaders". Les "bootloaders" de seconde étape les plus connus sont GNU GRUB, rEFInd, BOOTMGR, Syslinux, NTLDR (Windows uniquement) et iBoot (mac).
Les tables GUID et l'UEFI.
Afin de faire face aux limitations de ce système, le MBR est progressivement remplacé par des table de partitionnement GUID. Avec elle, la table des partitions peut contenir 32 partitions différentes. La table des partitions contient donc 32 entrées, une pour stocker les informations sur chaque partition. Ces entrées sont précédées par un en-tête, qui contient des informations générales permettant au système de fonctionner. Cet en-tête est lui-même précédé par un MBR tout ce qu'il y a de plus normal, pour des raisons de compatibilité.
Les adresses de chaque partition sont des adresses LBA codées sur 8 octets (64 bits), ce qui permet de gérer des partitions plus grandes qu'avec le MBR, allant jusqu’à 2,2 téraoctets. Voici à quoi ressemble une entrée de la table des partitions.
L'UEFI utilise les tables de partition GUID pour faire son travail, mais il dispose d'un mode de compatibilité avec le MBR au cas où. Les PC avec des BIOS ne sont pas censés utiliser les partitions GUID, car cela fait partie du standard UEFI, mais quelques BIOS en sont cependant capables.