オペレーティングシステムが(通常?)BIOS設定にアクセスできないのはなぜですか?


20

マザーボードは、起動後にCPUとBIOSチップの間にバスを提供しませんか?もしそうなら、なぜですか?

CPUがファンの速度を制御できる場合、BIOS構成を制御できない理由がわかりません。


私の理解では、BIOSがブートローダーをプルすると、IPMIが発生する可能性があります。
Linef4ult

一部のマザーボードメーカーにはそれを行うユーティリティがありますが、これらのユーティリティはそのマザーボードに固有のものです。Windowsには、マルウェアが使用されたり、BIOS設定で突っついている平均的なユーザーにとっては悪いニュースになる可能性があるため、組み込まれていません。
モアブ

DavidPostillがすでに答えたように。多くの場合、Windows(および他のオペレーティングシステム)はBIOSにアクセスできます。ただし、これはチップセットとマザーボードに依存するため、100%オフになるとは限りません。ただし、BIOSファームウェアからUEFIファームウェアに移行すると、より多くの制御が可能になります。
ヘネス

実際のBIOSを搭載したPCを見たのは久しぶりです。UEFIを意味する場合/sys/firmware/efi、Linux のすぐ下にあります。
ドミトリーグリゴリエフ

制御がOSに引き渡された後、BIOSは使用されません。BIOSチップを取り出して、破損したBIOSのBIOSリカバリ/再フラッシュのインスタンスで別のチップをプログラムすることもできます。
-AStopher

回答:


44

オペレーティングシステムが(通常?)BIOS設定にアクセスできないのはなぜですか?

OS はBIOSにアクセスできるため、上記の質問には答えられません。

以下の質問に答えることができます。


オペレーティングシステムはどのようにBIOS設定にアクセスできますか?

WindowsおよびUnixでは、OSはBIOSを読み取ることができます。

例(を使用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はBIOSに書き込むこともできます(一部のマザーボードメーカーはWindowsベースのBIOSアップデータを提供しています)。

たとえば、WindowsまたはBIOSで必要に応じてBIOSをフラッシュする方法を参照してください。

Unix

Unixにも同様のコマンドがあります。

  • biosdecodeはBIOSメモリを解析し、すべての構造に関する情報を出力します。

  • 組み込みASM(アセンブリコード)を含むCアプリケーションを使用して、rootユーザーからリアルタイムBIOS呼び出しを行うことができます。

ソースBIOSデータをファイルにダンプする方法


参考文献


5
私はWindows XPより前にそれを追加したいと思います-私の知っている限りでは何を記述することができますか-debug.comからセットアップにアクセスするためのポインタの策略-いくつかのBIOSのパスワード保護を消去するトリックがあったことを思い出してくださいモデル。Web "debug.com" bios password検索は、トピックに関するいくつかの関連情報をもたらすようです。
Theraot

1
まだ「なぜ?」に答えていない....不満
....-ザイビス

@Zaibis「なぜ」と答える必要はありません。OS はBIOSにアクセスできるので、理由を尋ねる(そして答える)...できない...は無意味な質問です。答えを少し明確にしました。
DavidPostill

1
"Unable" should be replaced by "able" as the OS can access the BIOS.フレーズを意味するだけの場合は、削除する必要があります。あなたのアドバイスに従うので、彼らはまだあなたが取り組んでいない質問です。
ザイビス

1
@Zaibis <sigh>他の誰もが答えを理解しました(答えを受け入れたOPを含む)。特にあなたのために再び更新しました;)
DavidPostill

19

それらはできますが、特に「BIOS」(つまり、UEFI以前)を意味する場合は、そこにある設定への標準化されたインターフェースの方法はあまりありません。

BIOSの特定の部分は、BIOSとその上で実行されるOSとの間のソフトウェア契約によって管理されます。昔、BIOSルーチンは、ディスクの読み取りや書き込み、画面上での表示、接続されたプリンターへの印刷など、あらゆる種類の日常的なタスクに使用されていたため、「基本入出力システム」と呼ばれています。BIOSがハードウェアと一致していれば、OSはこれらすべてのことに対して独自のルーチンを持たなくても、異なるハードウェアバリアントをサポートできます。しかし、ハードウェアおよびOSがより複雑になり、限られたBIOS機能セットを超えると、OSは起動、電源管理、およびシステム構成情報の取得をBIOSのみに依存して、ほぼすべてに独自のドライバーを提供し始めました。

しかし、BIOSもより複雑になり、OS-BIOSインターフェイスによって管理されていないあらゆる種類の設定と機能を獲得しました。そこにあるものでさえ、実装ではなく結果のみを指定します。つまり、すべてのBIOS製造業者は、好きなことを自由に行うことができ、OSを実行し続ける限り、好きなときにいつでも自由に変更でき、詳細を誰にも伝える必要はありません。BIOSによって保存されたデータにアクセスするのは簡単ですが、データを理解できるユーティリティがある場合、またはBIOSが実際に理解できるように変更できるユーティリティがある場合は、おそらくBIOSメーカー自身、またはリバースエンジニアリングの結果です。


技術的な詳細で「ケーキ」の部分を説明できたらいいですね。たとえば、カーネルモードで任意のCコードを実行する方法を知っていると仮定します。BIOSを手動でダンプするにはどうすればよいですか?
Mehrdad

6
@Mehrdad BIOSデータ領域と拡張BIOSデータ領域はメインメモリアドレスにマップされているため、適切な権限で直接読み書きできます。(通常はそれをしたくない...)たとえば、wiki.osdev.org / Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29stanislavs.org/helppc/bios_data_area.htmlおよびbioscentral.com/miscを参照してください。BDAレイアウトの詳細については、/ bda.htm(最初のセクションでは、EBDAレイアウトの1つのバリアントについて簡単に紹介しています)。詳細については、「BIOSデータエリア」と「拡張BIOSデータエリア」をお気に入りの検索エンジンにフィードしてください。
CVn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.