web-dev-qa-db-ja.com

システム情報はどこから来ますか

例えば:

lshw-リストハードウェアプログラムはどこで情報を読み取りますか? (つまり、ソフトウェアレベルでは、おそらくいくつかのROMチップがここにあり、もちろんケースもあります)

基本的に、マシンとシステムの内部に関するすべて(ユーザーが知りたいと思う可能性がある)は、仮想ファイルシステムを備えたカーネルによってユーザーに提供されます。つまり、procfsは/procにマウントされていますよね?したがって、(プロセス/ユーザーランド以外のもの)を読み取る唯一の方法です(実際のシステムソフトウェア/カーネル/ OS情報を意味し、すべてが通知される分離されたプロセスではありません)は、その仮想ファイルシステムを使用することです。

カーネルはどのようにそれを取得しますか? ROMチップ/センサーをI/Oハードウェアとして認識し、メモリマップされた物理アドレスを持っているということですか?

CPUの場合、x86には、cpuinfoをレジスターに入れて、追加の命令で読み取ることができる特別な命令があることを私は知っています。(つまり、lscpu

2
Junaga

X86ハードウェアでは、BIOSから情報を取得するためのAPIである [〜#〜] dmi [〜#〜] から多くの情報を取得します。詳細については github:lshw

1
steve