def loadJobStore(jobStoreString, config=None):
    """
    Loads a jobStore.

    :param jobStoreString: see exception message below
    :param config: see AbstractJobStore.__init__
    :return: a concrete subclass of AbstractJobStore
    :rtype : jobStores.abstractJobStore.AbstractJobStore
    """
    if jobStoreString[0] in '/.':
        jobStoreString = 'file:' + jobStoreString
    try:
        jobStoreName, jobStoreArgs = jobStoreString.split(':', 1)
    except ValueError:
        raise RuntimeError(
            'Job store string must either be a path starting in . or / or a contain at least one colon separating the name of the job store implementation from an initialization string specific to that job store. If a path starting in . or / is passed, the file job store will be used for backwards compatibility.'
            )
    if jobStoreName == 'file':
        from jobTree.jobStores.fileJobStore import FileJobStore
        return FileJobStore(jobStoreArgs, config=config)
    elif jobStoreName == 'aws':
        from jobTree.jobStores.awsJobStore import AWSJobStore
        return AWSJobStore.create(jobStoreArgs, config=config)
    else:
        raise RuntimeError("Unknown job store implementation '%s'" %
            jobStoreName)
