Channel creation is entirely on the ircd. When an user joins a non-existent channel they "create" it. Channel meta data is stored in the ircd's chanrec memory space and the channel has a creation time, users, modes, topic etc. When the last user leaves, the channel is destroyed until the next time it's created.
Channel registration and management is the sole realm of services. It's entirely possible to have a non-existent channel that is registered as well as having an existing channel that is unregistered.
The question is, do you want to prevent users from creating new channels? In which case you need the ircd module. If you want to allow users to create channels that are already registered, you need an Anope module. So which do you need?