From time to time, the Fedora kernel maintainers get asked to build something into the kernel. That is, the functionality is included in the vmlinux binary that every Fedora machine runs as opposed to being built as a module that is only loaded if needed. Given that it is loaded on every machine, we tend to build functionality as modules as much as possible. While one person might need the driver for an ATI card, another will not and having that built into the kernel is wasteful for really no reason.
There are no set criteria that map exactly to whether something is built-in or not, but they generally follow the following guidelines:
- The option cannot be built as a module and is widely used
- The option is not a driver/filesystem and used by something that is a Fedora default
- The option is a driver and used by a wide variety of machines (keyboard/mouse drivers, VT support)
- The option is a filesystem and is used by all machines or is the default Fedora filesystem (tmpfs, ext4)
Again, the above are general guidelines but for the most part we try and limit the overall size of the vmlinux that is loaded to a core set of functionality.
If you find that the Fedora configuration options are not sufficient for your needs, you can rebuild the kernel and change options as you see fit. See Building a custom kernel for how.