GSoC <Generic input device layer> project community intro and sync

Marcel Moolenaar xcllnt at mac.com
Tue Apr 17 22:43:25 UTC 2007


On Apr 17, 2007, at 3:17 PM, Maxim Zhuravlev wrote:

> 2007/4/17, Marcel Moolenaar <xcllnt at mac.com>:
>
> Thanks for detailed useful reply.
>
>> As for vtc(4): I've not been working on input devices because of the
>> lack of a generic layer. Note that vtc(4) deals with the low-level
>> console as much as it deals with user-visible terminals, so from that
>> point of view, a user space stack will not address the need for  
>> having
>> console input when there's no (functional) user space -- this  
>> includes
>> early boot, the kernel debugger and single-user mode. I therefore  
>> doubt
>> that it will sufficiently (or at all) solve problems we already have.
>
> Yup. That's what I'm thinking about right now.
> One of possible decisions is to move stacking into the kernel and have
> an optional usermode part 'stacked' through a 2 'stub' drivers.

That's a possibility. I think it's reasonable to not provide a
fully-fledged stack when there's no user space. For example,
while i18n and l10n are important, I think that an english-only
or a Latin-only fallback mode makes matters simpler in case of
an emergency. The user interacting with the boot process or
working in single user mode is not an average user and can be
expected to adjust to the more limited fallback mode.

The question becomes to what extend the stack would live in
kernel space and to what extend there will be duplication or
control from user space.

>> Also, while multiplexing is an important feature I think that de-
>> multiplexing is important too.
>
> I guess, demux can be done by 'top' driver or by drivers layout. There
> are several ways, that have little impact on the total design.

Unfortunately, this goes beyond just input-stack only. A terminal
consists typically of input and output devices and can even include
audio devices for the historical beeps, keyclicks and other audible
cues. There needs to be a higher entity, like vtc(4), that manages
terminals and that will be in control of bundling devices into a
functional terminal. This would imply that any logic to control the
bundling would be part of that higher entity and not of the input
stack itself. This would significantly alter the design of the input
stack if the design of the input stack incorporates such control
(as I think is the case here).

Not to worry, I'm going to ask you to change your design :-)
Just think of it as food for thought.

-- 
Marcel Moolenaar
xcllnt at mac.com




More information about the freebsd-hackers mailing list