Pourquoi les systèmes d'exploitation (généralement?) Ne peuvent pas accéder aux paramètres du BIOS?

20

La carte mère ne fournit-elle pas de bus entre le processeur et la puce du BIOS après le démarrage? Si oui, pourquoi pas?

Si le CPU peut contrôler la vitesse du ventilateur, je ne vois pas pourquoi il ne devrait pas pouvoir contrôler la configuration du BIOS.

Dmiters
la source
À ma connaissance, lorsque le BIOS tire le chargeur de démarrage, il cesse de fonctionner, attendez-vous en cas d'IPMI.
Linef4ult
Certains fabricants de cartes mères ont des utilitaires pour le faire, mais ces utilitaires sont spécifiques à cette carte mère, Windows ne l'a pas intégrée car cela pourrait être une mauvaise nouvelle si un logiciel malveillant l'utilisait ou un utilisateur moyen fouillant dans la configuration du bios.
Moab
Comme DavidPostill l'a déjà répondu. Windows (et d'autres systèmes d'exploitation) peuvent souvent accéder au BIOS. Cependant, cela dépend du chipset et de la carte mère et cela pourrait ne pas fonctionner à 100%. Si vous passez du micrologiciel du BIOS au micrologiciel UEFI, vous obtenez plus de contrôle.
Hennes
Cela fait un moment que je n'ai pas vu un PC avec un vrai BIOS. Si vous voulez dire UEFI, c'est juste sous /sys/firmware/efiLinux.
Dmitry Grigoryev
Une fois le contrôle transmis au système d'exploitation, le BIOS n'est pas utilisé. Vous pouvez même retirer la puce du BIOS pour en programmer une autre en cas de récupération du BIOS / reflasher un BIOS corrompu.
AStopher

Réponses:

44

Pourquoi les systèmes d'exploitation (généralement?) Ne peuvent pas accéder aux paramètres du BIOS?

Il est impossible de répondre à la question ci-dessus car le système d'exploitation peut accéder au BIOS.

Je répondrai ci-dessous à la question qui aurait pu être posée.


Comment les systèmes d'exploitation peuvent-ils accéder aux paramètres du BIOS?

Sous Windows et Unix, le système d'exploitation peut lire le BIOS.

les fenêtres

Exemple (en utilisant wmic):

F:\test>wmic bios /?

BIOS - Basic input/output services (BIOS) management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].

USAGE:

BIOS ASSOC [<format specifier>]
BIOS CREATE <assign list>
BIOS DELETE
BIOS GET [<property list>] [<get switches>]
BIOS LIST [<list format>] [<list switches>]


F:\test>wmic bios list brief
Manufacturer              Name                                        SerialNumber      SMBIOSBIOSVersion  Version
American Megatrends Inc.  BIOS Date: 09/05/11 11:20:58 Ver: 04.06.03  27546064-5001600  R1190V3            Sony - 20110905

Windows peut également écrire dans le BIOS (certains fabricants de cartes mères fournissent un programme de mise à jour du BIOS basé sur Windows.)

Voir par exemple Comment flasher le BIOS si nécessaire via Windows ou dans le BIOS .

Unix

Unix a des commandes similaires.

  • biosdecode analyse la mémoire du BIOS et imprime les informations sur toutes les structures.

  • Vous pouvez effectuer des appels BIOS en temps réel à partir de l'utilisateur root à l'aide d'applications C qui incluent l'ASM intégré (code assembleur).

Source Comment vider les données du BIOS dans un fichier


Lectures complémentaires

DavidPostill
la source
5
Je veux ajouter qu'avant Windows XP, vous pouviez faire - ce qui, au mieux de mes connaissances, pourrait être décrit comme - une astuce de pointeur pour accéder à la configuration à partir de debug.com - rappelez-vous qu'il y avait une astuce pour effacer la protection par mot de passe de certains bios des modèles. Les recherches sur le Web "debug.com" bios passwordsemblent apporter des informations pertinentes sur le sujet.
Theraot
1
toujours pas répondu "Pourquoi?" .... insatisfaisant ....
Zaibis
@Zaibis Il n'a pas besoin de répondre au "pourquoi". Le système d'exploitation peut accéder au BIOS, donc demander (et répondre) pourquoi ... impossible ... est une question vide de sens. J'ai un peu clarifié la réponse.
DavidPostill
1
"Unable" should be replaced by "able" as the OS can access the BIOS.Si vous vouliez juste que ce soit une phrase, vous devez la supprimer. Depuis que vous avez suivi vos conseils, leur question est restée sans réponse.
Zaibis
1
@Zaibis <soupir> Tout le monde a compris la réponse (y compris le PO qui a accepté la réponse). Je l'ai mis à jour spécialement pour vous;)
DavidPostill
19

Ils le peuvent, mais il n'y a pas grand-chose en termes d' interface standardisée avec les paramètres, surtout si vous voulez dire "BIOS" proprement dit (c'est-à-dire pré-UEFI).

Certaines parties du BIOS sont régies par des contrats logiciels entre le BIOS et le système d'exploitation exécuté au-dessus. Il y a longtemps, les routines du BIOS étaient utilisées pour toutes sortes de tâches quotidiennes comme la lecture et l'écriture de disques, l'affichage de choses à l'écran et l'impression sur une imprimante connectée, d'où le nom de "système d'entrée / sortie de base". Si le BIOS était adapté au matériel, le système d'exploitation pourrait prendre en charge différentes variantes matérielles sans avoir à avoir ses propres routines pour toutes ces choses. Mais à mesure que le matériel et les systèmes d'exploitation se compliquaient et dépassaient le nombre limité d'installations du BIOS, les systèmes d'exploitation ont commencé à fournir leurs propres pilotes pour presque tout, ne comptant que sur le BIOS pour le démarrage, la gestion de l'alimentation et la récupération des informations de configuration du système.

Mais le BIOS est également devenu plus compliqué et a gagné toutes sortes de paramètres et de capacités qui n'étaient pas régis par l'interface OS-BIOS, et même pour ce qui s'y trouve, spécifie uniquement les résultats , pas l' implémentation . Cela signifie que chaque fabricant de BIOS est libre de faire les choses comme il le souhaite, qu'il est libre de changer les choses quand il le souhaite tant que les systèmes d'exploitation continuent de fonctionner, et qu'il n'a pas à en révéler les détails à quiconque. Accéder aux données stockées par le BIOS est un jeu d'enfant, mais si vous avez un utilitaire qui peut donner un sens aux données, ou qui peut les modifier d'une manière que le BIOS comprendra réellement, alors il a probablement été créé par le Le fabricant du BIOS lui-même, ou c'est le résultat de la rétro-ingénierie.

Hobbs
la source
Ce serait cool si vous pouviez décrire la partie "morceau de gâteau" avec des détails techniques. Par exemple, supposons que je sache comment exécuter du code C arbitraire en mode noyau; maintenant, comment procéder pour vider le BIOS manuellement?
Mehrdad
6
@Mehrdad La zone de données du BIOS et la zone de données du BIOS étendue sont mappées aux adresses de mémoire principale et peuvent donc être lues et écrites directement avec les privilèges appropriés. (Habituellement, vous ne voulez pas faire ça ...) Voir par exemple wiki.osdev.org/Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29 et stanislavs.org/helppc/bios_data_area.html et bioscentral.com/misc /bda.htm pour plus d'informations sur la disposition BDA (la première donne également une brève introduction à une variante de la disposition EBDA). Ajoutez "BIOS Data Area" et "Extended BIOS Data Area" dans votre moteur de recherche préféré pour en savoir plus.
un CVn du