Re: kldunload kernel: How should the kernel behave when it is requested to unload itself

From: Zhenlei Huang <zlei_at_FreeBSD.org>
Date: Fri, 10 Nov 2023 09:07:03 UTC

> On Nov 10, 2023, at 1:28 AM, Tomoaki AOKI <junchoon@dec.sakura.ne.jp> wrote:
> 
> On Fri, 10 Nov 2023 00:10:13 +0800
> Zhenlei Huang <zlei@FreeBSD.org> wrote:
> 
>> Hi,
>> 
>> This is *NOT* joking.
>> 
>> While working on https://reviews.freebsd.org/D42527 I realized the
>> module kernel also has userrefs, that is to say, userland can request
>> to unload kernel, aka `kldunload kernel`.
>> 
>> This is interesting. Well no doubt that the loader can unload kernel.
>> Then after the kernel is loaded and has been initialized (SYSINIT), how
>> should it behave when it get an unload request?
>> 
>> I'm proposing https://reviews.freebsd.org/D42530 to do not allow unloading
>> the kernel. It is by intuition.
>> 
>> What do you think ?
>> 
>> 
>> Best regards,
>> Zhenlei
> 
> Possibly too paranoid, but the summery on D42530 looks a bit confusing.
> Would better to be
> 
> 'The userland or kernel shall not unload the module "kernel".'
> 
> or
> 
> 'The userland or kernel shall not unload the "kernel" module.'
> 
> .
> 
> The original SUMMARY could be read as, in meaning, 'The userland or
> kernel shall not unload *.ko.'
> 
> *.ko is sometimes called as "kernel module", although it stants for
> "kernel object".

Thanks for point that out. I'll polish before committing it.

> 
> -- 
> Tomoaki AOKI    <junchoon@dec.sakura.ne.jp>