[systemd-devel] systemd-consoled: architecture

David Herrmann dh.herrmann at gmail.com
Tue Dec 17 08:13:42 PST 2013


Hi

On Fri, Dec 13, 2013 at 9:12 PM, Jonathan de Boyne Pollard
<j.deboynepollard-newsgroups at ntlworld.com> wrote:
> There's an adage that holds that the best design is a stolen design.  On that
> basis, I recommend reading about how the Hurd console system works.
>
>   http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/hurd-daemons.html#console
>   http://gnu.org./software/hurd/hurd/console.html
>
> The Hurd people have, as I have, already been through the process that you're
> going through, although their console client daemon doesn't render to
> graphics mode.
>
> Two notes:
>
>  * We all steal from screen(1).  Hurd has a "server" that maintains the
>    state of multiple virtual consoles, and a "client" that gathers raw input
>    and that displays the text contents of the console on an output device.

There is no need for that indirection if you render in gfx mode. The
systemd-consoled binary just runs on a single session and displays a
console whenever the session is active. So it is basically an xterm
but rendering to DRM directly instead of X11.

>  * Good old conservative Hurd goes with CTRL+ALT+F1 meaning "switch to
>    virtual terminal #1".  Decide to go with something different, and you
>    will open up a can of worms.  Or at least a can of questions from
>    system administrators who ask why you didn't make the system extensible
>    enough so that they could use WINKEY+L and CTRL+ALT+DEL as their
>    "switch to the screenlock/greeter session" hotkeys.  (-:

systemd-consoled doesn't care for session-switching / VT-switching. If
you want multiple consoles, simply run it twice (or thrice or
whatever). The kernel VT layer (or in case CONFIG_VT=n systemd-logind)
is responsible for session-switching.

Thanks
David


More information about the systemd-devel mailing list