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.
|