In Drupal 7, when you went to extend Drupal core or other contrib modules, you created a new module. This module would contain the .info file that defined information about the module in a custom ini-like syntax. Then there was a .module file, which served as both the manifest of what functionality your module implemented and, of course, the implementation itself. Both of these have undergone substantial changes in Drupal 8. The .info files have been replaced by YAML files and, while the .module file still exists, many things that you would have placed in it have been moved out to separate files that are automatically discovered.