No, kernel immediately stops execution of all normal processes once it gets into a kernel panic, and there’s no way for processes to hook into this functionality. It is intended to be the emergency stop state when the kernel realizes it doesn’t know what’s going on and it would be dangerous to continue executing. So it does the bare minimum to report the issue and then stops even its own execution.
There’s also a softer variant of the kernel panic called kernel oops that should let the user choose to continue if they think the risk of data corruption doesn’t outweigh losing all data currently in memory. But just like the kernel panic, it is handled completely inside the kernel and userspace is frozen until the user chooses to continue.
This is intended for situations where systemd runs into an unrecoverable issue while booting (for example you have misconfigured fstab and a required disk is missing). Without this, you just get thrown into the terminal with some error messages that might not make much sense to you if you don’t have a decent understanding of Linux. Now, you get a more newbie friendly message and a QR code that should bring you somewhere you can learn more about possible causes and troubleshooting steps.
Yeah, that makes sense. So it’s for the situations where you end up in an emergency shell.
Some better presentation of kernel panic would be nice (which I think is the closest equivalent to a Windows BSoD), but I guess it would require kernel support.
Finally, my life is complete. We have achieved feature parity with Windows.
Seriously, the BSOD QR-code is a great way to have a more inclusive system. Hardened geeks can still sift through the boot log to find problems and newbies can just get help online. Win-win.
It makes sense to use the words that people are most used to, and bluescreen/BSOD has been the go-to lingua for describing a crash/error screen - even if not blue - since a while now.
I’d just like to interject for a moment. What you’re referring to as Linux,
is in fact, systemd/Linux, or as I’ve recently taken to calling it, systemd plus Linux.
Linux is not an operating system unto itself, but rather another free component
of a fully functioning systemd system made useful by the systemd corelibs, shell
utilities and vital system components comprising a full OS as defined by IBM.
Many computer users run a modified version of the systemd system every day,
without realizing it. Through a peculiar turn of events, the version of systemd
which is widely used today is often called “Linux”, and many of its users are
not aware that it is basically the systemd system, developed by Lennart Poettering.
There really is a Linux, and these people are using it, but it is just a
part of the system they use. Linux is the kernel: the program in the system
that allocates the machine’s resources to the other programs that you run.
The kernel is an essential part of an operating system, but useless by itself;
it can only function in the context of a complete operating system. Linux is
normally used in combination with the systemd operating system: the whole system
is basically systemd with Linux added, or systemd/Linux. All the so-called “Linux”
distributions are really distributions of systemd/Linux.
Add comment