smartmontools SVN Rev 4357
Utility to control and monitor storage systems with "S.M.A.R.T."
This is the main index page. Here we present a short introduction of the smartmontools software architecture and its components.
Please refer to the further tabs and links to get detailed information on each class and method.
The smartmontools package contains two utility programs (smartctl and smartd) to control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (SMART) built into most modern ATA, SCSI and NVMe disks.
Smartmontools supports ATA/ATAPI/SATA-3 to -8 disks, SCSI disks and tape devices and NVMe devices. It should run on any modern Darwin (Mac OS X), Linux, FreeBSD, NetBSD, OpenBSD, Solaris, OS/2, Cygwin, QNX, eComStation or Windows system.
Each different port and OS needs to provide it's own interface. It is meant to isolate the OS dependent parts of the code and to provide a debugging interface.
The following ports currently exist:
Already adapted to new c++ Interface
Still working with old interface
To port smartmontools to the OS of your choice, please:
As the smartmontools have to handle different types of devices, we have multiple device drivers.
The outside view presents only the interface classes:
In this case we access the device via ATA pass through in native mode.
By the help of ata_device_with_command_set we currently integrate the old os-specific legacy drivers, until they will be replaced by their new implementations of ata_device or scsi_device.
Here we use the SCSI instruction set.
Here we use the NVME instruction set.
If a controller understands ATA pass through SCSI, we use this driver.