Sto lavorando su un programma portatile OS che trarrebbe vantaggio dalla rilevazione se un dispositivo di archiviazione fisico è un SSD o un semplice vecchio disco di selezione.Rilevamento di dispositivi di archiviazione SSD su sistemi POSIX
Su Linux si trova:
/sys/block/sdX/queue/rotational
che restituiscono 0 o 1 se SSD, ma non sono sicuro se questo è il modo migliore.
In Windows e UNIX non ho trovato alcun modo di rilevare, forse devo usare ioctl DEVICE_SEEK_PENALTY_DESCRIPTOR
e controllare la penelty (che dovrebbe essere molto bassa su un dispositivo di memorizzazione SSD) cercano, o forse utilizzare DeviceIoControl
controlla la supporti nominale velocità di rotazione (che dovrebbe anche essere molto bassa su un dispositivo di archiviazione SSD).
Qualche raccomandazione per me su come procedere con il rilevamento di dischi SSD su sistemi POSIX compatibili?
Non c'è un'interfaccia standard, quindi dovrai fare qualcosa di specifico per OS su tutta la linea. Sarebbe bello se ci fosse un modo multipiattaforma per determinarlo. Per Linux, IIRC 'rotational' sarà anche' 0' per pen drive USB. – Petesh
@Petesh Sarebbe difficile inserirlo nello standard POSIX, anche se non esiste un modo affidabile per rilevare i dispositivi di archiviazione SSD. –
L'applicazione probabilmente trarrebbe vantaggio da un'umile opzione impostata dall'utente, forse una bella tabella di tutti i dischi e se devono essere utilizzati in "modalità SSD", "modalità spinner" o "modalità disco RAM", "NAS sconosciuto modalità dispositivo "," modalità file system speciale divertente "e così via. Non perderei tempo a sviluppare una funzione di rilevamento che, in ogni caso, avrebbe probabilmente bisogno di revisione manuale e sostituzione. –