The most frequently asked question, of course, is how do I get started? To help with precisely this, a long and very detailed answer lies within the kernel documentation here: HOWTO do Linux kernel development: https://www.kernel.org/doc/html/latest/process/howto.html#howto-do-linux-kernel-development.
As a matter of fact, you can generate the full Linux kernel documentation (via the make pdfdocs command, in the root of the kernel source tree); once successful, you will find this PDF document here: <root-of-kernel-source-tree>/Documentation/output/latex/development-process.pdf.
It is a very detailed guide to the Linux kernel development process, including guidelines for code submission. A cropped screenshot of this document is shown here:
As part of this kernel development process, to maintain quality standards...