16

私は、物理ストレージ デバイスが SSD であるか普通のスピン ディスクであるかを検出することでメリットが得られる OS ポータブル プログラムに取り組んでいます。

Linux には次のものがあります。

/sys/block/sdX/queue/rotational

SSDの場合は0または1を返しますが、これが最善の方法かどうかはわかりません.

Windows と UNIX では、それを検出する方法が見つかりませんでした。おそらくioctl DEVICE_SEEK_PENALTY_DESCRIPTOR、シーク ペナルティ (SSD ストレージ デバイスでは非常に低いはずです) を使用DeviceIoControlして確認するか、公称メディア ローテーション レート (これも必要です) を確認するために使用する必要があります。 SSD ストレージデバイスでは非常に低くなります)。

POSIX 互換 OS で SSD ディスクの検出を続行する方法についての推奨事項はありますか?

4

2 に答える 2

2

関連: https://unix.stackexchange.com/questions/65595/how-to-know-if-a-disk-is-an-ssd-or-an-hdd

しかし、IMO。OS を判別する POSIX メソッドを使用し、SSD を検出するさまざまな方法を使用できます。判別できない場合は、エンドユーザーに尋ねて、わからない場合は安全なデフォルトを使用してください。POSIX に準拠した方法がなかったら、私はそうするだろうと思います (ただし、最初に POSIX メーリング リストもチェックするでしょう)。これが役立つことを願っています。

于 2014-05-08T13:10:39.793 に答える
2

上記の Lorenzo Gatti のコメントと同じように、これを行う最善の方法は、ほぼ確実にユーザーに公開されるオプションであるということです。これを行う移植可能な方法はありません。他の OS (特に古い OS では、ユーザーがある程度最新の OS を使用しているという保証がない限り、これは問題です) にこれを行う方法がなかったとしても、私は驚かないでしょう。

本当に、「私はソリッドステートドライブを使用しています」という行に沿ったチェックボックスは、デフォルトでオフになっているため、おそらく最良のオプションでしょう。特に、SSD を搭載している可能性が高いのは (少なくとも今のところ) 技術に精通しているためです。彼らが何を持っているかを知るには十分です。

于 2014-05-08T15:48:23.510 に答える