No Windows, todos os drivers estão em arquivos separados, distintos do kernel.
No Linux, os drivers são um tipo de módulo. Você pode ter todos os drivers de dispositivos como módulos, alguns incorporados ao kernel e alguns restantes como módulos, ou todos integrados no kernel. Você pode criar um kernel Linux que tenha o carregamento do módulo desativado e, nesse caso, todo o hardware com o qual ele deverá funcionar deve ser incluído como parte do kernel.
Para o Linux, você precisa de dispositivos que precisem estar acessíveis durante a inicialização para serem integrados ao kernel. Isso inclui drivers de controlador de disco, drivers de rede (para inicialização de rede), porta serial ou drivers de console VGA (para exibir mensagens de diagnóstico) e drivers de barramento para hardware intermediário necessário para a CPU acessar esses dispositivos (por exemplo, controlador USB, PCIe, IDE, e / ou possivelmente drivers de chipset).
Tenho certeza de que é possível que o Windows inclua drivers como parte do kernel. Isso pode ser feito em algumas versões incorporadas ou personalizadas do Windows, mas não no Windows PC padrão, tanto quanto eu sei. Eu realmente acho que alguns drivers muito elementares estão tecnicamente dentro do kernel (como VgaSave e Beep), mas eu posso estar errado.
O Windows pode marcar alguns drivers como drivers "Boot Time", que geralmente seriam da mesma categoria que os drivers identificados acima. Se você acessar o modo de segurança, verá os nomes de vários drivers percorrendo, esses são todos os drivers de tempo de inicialização.