Page 1 of 1

Kernel land window managers

Posted: Mon Oct 15, 2018 4:26 pm
by AndrewAPrice
For people with kernel land window managers, do you have two GUI toolkits? One for drawing things such as system alerts and other dialogs not tied to a process (e.g. "This program is not responding"), window titles, and other popups. One for providing a UI toolkit to user applications?

Or do you share a UI toolkit?

Re: Kernel land window managers

Posted: Tue Oct 16, 2018 1:53 am
by alexfru
I don't think you need two. What you probably need is access and resource control, so the system stuff can show up and not be misused (by broken or malicious software).

Re: Kernel land window managers

Posted: Tue Oct 16, 2018 9:20 pm
by Qbyte
In my OS, the display server resides in the kernel and there is no window manager because all graphics (including window decorations, if any) are drawn by the client. Whether or not you should have separate graphics libraries for kernel and user space can depend upon other design choices you have made, but in general there's no need to have two. For instance, you could make the graphics/gui library a trusted part of the OS as well, and therefore you don't have to worry about potential security issues when your kernel makes direct use of them. Another option is to have your your kernel spawn or talk to a separate user-land process whenever it wants to display a pop-up or other message to the user, so that a corrupted or buggy graphics library it makes use of can't crash the system. These solutions enable you to use a single graphics/gui toolkit for the whole system, which is generally the more elegant and preferred design.

Re: Kernel land window managers

Posted: Thu Oct 18, 2018 11:50 am
by nakst
My OS has a per-user "desktop" process.
It is the default debugger process. So when a process crashes, the kernel sends a message to it. It can then display a dialog box with an error message. Since it runs in userland, it can use the standard UI library.
It also has other special roles, such as displaying the taskbar.