Quando um programa aplicativo é carregado e executado, ele pode adquirir recursos (por exemplo, memória de solicitação, arquivos abertos). Quando o programa termina, o kernel pode desalocar esses recursos (se o programa não tiver sido limpo após ele mesmo) porque o aplicativo é executado no modo de usuário enquanto o kernel é executado no modo de supervisor.
Um módulo carregável do kernel pode ser carregado e descarregado de maneira semelhante a um programa aplicativo. Mas o kernel não pode (ou não) supervisionar o módulo do kernel, já que o módulo é parte do kernel e também é executado no modo privilegiado como parte do kernel.
Portanto, antes que um módulo do kernel seja descarregado, ele deve desalocar todo e qualquer recurso que tenha adquirido, bem como desativar qualquer hardware que possa ter sido ativado. A rotina de saída é a última chance que o módulo tem para executar essas operações, ou pode deixar o sistema em um estado instável.