Hardware (UNIX server product)
1824944 メンバー
3632 オンライン
109678 解決策
新規ポスト

/dev/memに書き込むには?

 
T_Ka
コントリビューター

/dev/memに書き込むには?

可用性の評価で、メモリをクラッシュさせたいです。

そこで、/dev/memを操作すれば物理メモリを直接操作できるかと考えたのですが、

ddをすると、

# dd if=/dev/zero of=/dev/mem

I/O error

また、mmapで読もうとしたのですが、

mmaped=mmap(0,sysconf(_SC_PAGESIZE),PROT_READ,MAP_SHARED,open("/dev/mem",O_RDONLY),0);

→MAP_FAILED

となってしまいました。

これらは、単純なコマンドのミスをしているのでしょうか?

その場合、どのように書けばいいでしょうか?

よろしくお願いします。
1件の返信1
nadachi
レギュラーアドバイザー

/dev/memに書き込むには?

11.11で、"man mem"とすると、

"Byte addresses in mem are interpreted as

physical memory address.

References to non-existent locations cause

errors to be returned."

とあります。

> # dd if=/dev/null of=/dev/mem

の場合、"mem"のbyte offset 0 から書こうと

するわけですから、このメモリアドレスがないと

エラーになるのでは ?

カーネルメモリの内容を書き換えて、故意に

システム停止を起こす、というのはやったことは

ありますが、あんまりおおっぴらに書くのは気が

引けます。/dev/memのデバイスファイルの

パーミッション設定が間違っていなければ、"root"

でしかできない操作ではありますが。( adb で、

forkコードの先頭の命令をBREAK命令に書き換えました。)

HP-UXシステムだと、システムを正規の方法で

なく落とすには、MP (management processor)のコンソールから RST (リセット)をする手もあります。または、"TOC"ボタンを押す手もあります。