[Kos-dev] Driver TTY

Thomas Petazzoni kos-dev@enix.org
Tue, 06 May 2003 10:39:08 +0200


This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enigA512DD362CBA6D2F8A0695CE
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

Hello,

Comme je l'avais annoncé, j'ai commencé à refaire le driver de tty pour
qu'il fonctionne avec le nouveau système (simple pour l'instant) de
kernel ressources et de user ressources.

Je me suis aperçu que l'ancien driver était assez mal conçu : les
entrées clavier étaient faites par le driver clavier (module klavier/)
alors que la sortie était faite directement par le driver tty (écriture
directe dans la mémoire vidéo). Bref, clairement, il faudrait faire un
peu d'ordre dans ceci, de manière à avoir :
 * klavier -> s'occupe du clavier
 * console -> s'occupe de l'affiche sur une console
 * tty -> permet de regrouper les 2

Soit klavier et console exportent des interfaces au sens "karm", soit
une interface spécifique est utilisée. J'avoue préferer la première
solution, mais je ne suis pas sûr que ce soit la meilleure. Qu'en
pensez-vous ?

Par ailleurs, ce modèle de fonctionnement pose deux questions :
 * Qui doit être bloquant en lecture : le driver klavier ou bien le
driver tty ? Dans le cas ou c'est tty (ce qui est le cas actuellement je
crois), comment tty va-t-il se débloquer lors d'une saisie au clavier ?
 * Pour les consoles multiples, comment cela peut-il se passer ? A
priori, il n'y a qu'une seule console et qu'un seul clavier, donc
/dev/klavier et /dev/console, et à partir de là, tty doit créer
/dev/tty0, /dev/tty1, /dev/tty2, etc... C'est donc tty qui doit gérer ce
probleme des consoles multiples. Comment est-il signalé de la volonté de
l'utilisateur de changer de console ? Pour le moment, on filtre les
Alt+Fx et je pense qu'on n'a pas trop d'autre solution. Comment tty
signale-t-il à /dev/console qu'il veut changer de console ? Par une
interface spéciale lui permettant de dire quelle est l'adresse de la
console à afficher ?

Si on résume, on aurait :
 * klavier qui exporte INTERFACE_CHAR_INPUT (lecture)
 * console qui exporte INTERFACE_CHAR_OUTPUT (écriture) et
INTERFACE_CONSOLE (changement de console)
 * tty qui exporte INTERFACE_CHAR

Dernière question : dans le cas de console sur port série, comment cela
va-t-il se passer ?

Voila quelques questions en vrac, j'attends vos suggestions ;-)

Bonne journée,

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni@enix.org - UIN : 34937744
Web: http://www.enix.org/~thomas/
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7

--------------enigA512DD362CBA6D2F8A0695CE
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE+t3Ss9lPLMJjT96cRAtY0AKCC2qbUZckYuneC9uappfL9wfw2igCgwYGZ
CKvgbtkIHbxQLvJH9/uPKJc=
=/+0u
-----END PGP SIGNATURE-----

--------------enigA512DD362CBA6D2F8A0695CE--