I had a version that pulled the factory methods into the OS specific files, but it seemed awkward to have 2 versions of configuration, one for the file and one for the hashtable.  Since the config file parser has to be modified in tandem, it seemed reasonable to leave this here for now.  One option for the future implementation might be to have the config file parser produce a hash table, which would still get the enforcement of the parser.

I'd like to take a pragmatic approach and fix it when I actually start adding a new OS.