TacOS-team/tacos — Issue #139: [tty] Mauvais fg_process
Author: MaximeCheramy
Created: 2012-03-09 22:59:50+00:00
State: open
Labels: Bug, Majeur

C'est peut être à l'origine de certains bugs donc je mets en majeur. J'explique la situation :

Lorsqu'on lance TacOS, on lance le process init qui lance getty sur /dev/tty0 et qui lance mishell. Le foreground process qui est lié à /dev/tty0 est donc mishell à ce moment là.

Plus précisément, le fg_process est modifié dans la fonction init_stdfd qui est appelée lors de la création d'un processus en utilisant le ctrl_tty du nouveau processus. Bon et ce ctrl_tty est hérité du père.

Donc si je tape ls, le foreground process devient pidof(ls) et lorsqu'il se termine, le fg_process est remis au ppid.

Là où ça devient marrant c'est lorsqu'on lance getty /dev/tty1. Là on fait un process avec le ctrl_tty à /dev/tty0 (hérité du père) mais stdin, stdout et stderr mis à /dev/tty1. Le problème c'est que le fg_process de tty0 est modifié quand même. Et donc à partir de là, c'est du grand n'importe quoi.

Ce qui manque c'est probablement une fonction permettant de changer le ctrl_tty du processus qui fait l'appel. J'ai juste un peu peur de faire un truc moche... Je vais travailler dans cette direction car je n'ai pas d'autres idées pour le moment.