1. By source
- In-tree modules
Part of mainline Linux kernel. - Out-of-tree modules
Built separately (vendor / third-party).
2. By license
- GPL-compatible
- Proprietary
3. By functionality
- Device drivers (GPU, NIC, storage)
- Filesystem modules (ext4, xfs)
- Network stack modules (netfilter, bridges)
- Crypto modules
- Virtualization modules (kvm, vbox)
4. By load model
- Built-in (
=y) - Loadable (
=m) The .ko files that are controlled on runtime
5. By maintenance model
- Upstream-maintained
- Vendor-maintained
- Community-maintained (external)
These are the standard mental buckets used by kernel devs and distros.