code: public static long freeSpaceKb(final String path, final long timeout) throws IOException {
          return INSTANCE.freeSpaceOS(path, OS, true, timeout);
      }
docs: Returns the free space on a drive or volume in kilobytes by invoking
  the command line.
  <pre>
  FileSystemUtils.freeSpaceKb("C:");       // Windows
  FileSystemUtils.freeSpaceKb("/volume");  // *nix
  </pre>
  The free space is calculated via the command line.
  It uses 'dir /-c' on Windows, 'df -kP' on AIX/HP-UX and 'df -k' on other Unix.
  <p>
  In order to work, you must be running Windows, or have a implementation of
  Unix df that supports GNU format when passed -k (or -kP). If you are going
  to rely on this code, please check that it works on your OS by running
  some simple tests to compare the command line with the output from this class.
  If your operating system isn't supported, please raise a JIRA call detailing
  the exact result from df -k and as much other detail as possible, thanks.
  
  @param path  the path to get free space for, not null, not empty on Unix
  @param timeout The timeout amount in milliseconds or no timeout if the value
  is zero or less
  @return the amount of free drive space on the drive or volume in kilobytes
  @throws IllegalArgumentException if the path is invalid
  @throws IllegalStateException if an error occurred in initialisation
  @throws IOException if an error occurs when finding the free space
  @since 2.0