Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Consideration sur les notions de facilite de configuration

15 réponses
Avatar
Yannick Patois
En francais, Bonjour,

A mon tour de demarrer le troll de l'ete.

Je vais tenter de definir le contexte dans lequel je me place, puis par
rapport a ce contexte de definir une notion de "facilite de
configuration", et voir ensuite comment elle s'applique aux systemes
existants et conclure.

Tout d'abord, le contexte. Je ne m'interesse pas ici aux hackers, mais
bien aux personnes non specialites et qui ne le seront jamais mais qui
doivent utiliser et configurer leur ordinateur au quotidien (cas de la
plupart des ordinateurs familiaux). Ces personnes ont aucunes notions
theoriques en informatique, et une experience limite des systemes
d'exploitation. De plus elles n'ont ni le temps ni la motivation d'en
apprendre beaucoup.

Fournir a ces personnes un systeme fiable, robuste qu'ils puissent
utiliser sans faire trop appel a une aide exterieur me parait important.

Je vais definir la Facilite de Configuration pour Non Experts (FCNE),
par rapport a la population defini precedemment: qu'est-ce qui pour elle
sera plus simple ?

Bien sur, toute generalisation est abusive, et je risque de me planter
parfois, j'espere toutefois arriver a exprimer des tendances averees.



Mais tout d'abord, un peu de definitions.

Soit \Omega l'ensemble des etats de configurations possibles sur une
machine. Je restreint volontairement \Omega aux elements
"configurables", meme si cette notion reste un peu flou, je pense que le
discours reste valide si l'on etends \Omega a l'ensemble des etats
possibles (en gros 2^{40.10^9*8}*2^{256*2^20*8}*2^10, en imaginant un
disque dur de 40Go, 256 Mo de RAM et environ 1000 etats de la PROM).

L'etat E0 est un etat initial fonctionnel de la machine. Ce peut etre
l'etat juste apres installation du systeme, ou mieux, l'etat juste
*avant* installation du systeme, mais je prendrai la premiere
definition, moins generale mais qui possede plus de proprietes
interessante et suffit a la discussion.

Un sous-ensemble de \Omega est \Omega_{ok}, qui sont les etats dans
lequel le systeme fonctionne de maniere satisfaisante pour
l'utilisateur. Cette notion est tres floue mais ne peut etre evitee dans
la mesure ou c'est celle qui preocupe l'utilisateur. Nous allons
cependant nous interesser a un sous-ensemble un peu plus large mais
mieux defini, \Omega_{okc} qui est le sous-ensemble des etats de
configurations dans lesquels l'utilisateur a acces au systeme de
configuration de maniere totalement fonctionnel (il permet d'acceder a
l'ensemble des etats de configuration, ceci suppose bien sur que celui
ci soit stable - voir ci-dessous -).

\Omega_{ok} etant tres vague quoi que central, je vais introduire
\Omega_{coherent}, qui est l'ensemble des etats de configuration qui
sont fonctionnels et susceptible de repondre au besoin d'un utilisateur
non expert (par exemple, un etat dans lequel apache charge le module php
mais dans lequel aucunes extensions n'a ete defini pour l'appeler n'est
pas coherent).

Le systeme de configuration est une fonction F_c qui fait passer le
systeme d'un etat E1 vers un etat E2 (E1, E2 inclus dans \Omega) sous
l'action de l'utilisateur.

Un systeme de configuration donnee ne permet pas forcement d'adresser
tout \Omega, mais plus probablement un sous-ensemble \Omega_{Fc(E0)}
depuis un etat initial E0 (accessible en une ou plusieurs etapes, par
exemple, E3=Fc_2(Fc_{1}(E0)) appartient bien a \Omega_{Fc(E0)}.

Simplification d'ecriture: \Omega_{Fc(E0)} sera ecrit \Omega0 dans la suite.

Je dis que le systeme de configuration est stable si quelque soit E_1 et
E_2 appartenant a \Omega0 alors il exite une serie fini de
transformation Fc_i tel que E_2=O_{tous les i}Fc_i (E_1) (O est ici la
composition de fonctions: Fc_1(Fc_2(Fc_3(....Fc_i(E1)).


- Il est evident que \Omega0 est inclus dans \Omega_{okc}, l'inverse
n'est pas forcement vrais: jette par des vent mauvais dans un etat E1
hors de \Omega0, il est possible qu'une serie de fonctions Fc nous y
ramene, c'est meme souhaitable (sinon le systeme doit etre repare par un
expert).

- Avoir un systeme de configuration stable est important. L'inverse veut
dire que l'on peu arriver dans des etats dont on ne peut plus revenir.

- Un systeme de configuration performant minimise probablement le nombre
d'etapes pour passer d'un etat a un autre.

- Une intervention exterieur (reboot sur CD ou disquette) est elle dans
\Omega0 ? Pour la discussion, je considererai que non, meme si en
pratique c'est parfois difficilement evitable. Ceci parce que sinon on a
trivialement \Omega0=\Omega, meme si c'est pas forcement "facile" a
obtenir. C'est pour cela aussi que \Omega0 a ete defini comme l'etat
*apres* installation. De la meme facon, un reboot en "mode sans echec"
ou avec des arguments autres que ceux par defaut sera considere comme
hors \Omega0 (essentiellement parceque ce sont des etats que
l'utilisateur non expert ne veut pas avoir a connaitre).

Dans la pratique, bien des systemes de configurations ne sont pas
stables (mettre "0" comme runlevel par defaut, par exemple).



Passons maintenant aux axiomes:

*** A/ Je pretends ici que si \Omega0 est inclus dans \Omega_{okc} la
FCNE est meilleure.

En francais, cela signifie que le systeme est plus simple a configurer
pour un non expert si quelque soit les erreurs que celui-ci fait, il se
retrouve toujours dans un etat ou il peut la corriger a partir de son
interface de configuration.

Justification: L'utilisateur non expert fera des erreurs (l'expert
aussi, mais moins et il aura access a des methodes d'experts pour les
corriger), si ces erreurs peuvent ammener la machine dans un etat ou le
systeme de configuration qu'il connait ne marche plus, il est coince et
doit faire appel a un expert.

*** B/ Je pretends que si \Omega0 est inclus dans \Omega_{coherent} la
FCNE est meilleure.

En francais, cela veut dire que le systeme est plus simple a configurer
si aucune fonction de configuration accessible ne peut mettre le systeme
dans un etat qui serait d'aucun interet pour un utilisateur non expert.

Limitation: j'aurais aime mettre \Omega_{ok}, mais cela me semble
impossible, il y a a developper la dessus, en gros, il faut que
l'interface de configuration lui presente des choix qu'il puisse
comprendre afin de les faire dans son interet.

Justification: en gros la meme que ci-dessus.

*** C/ Je pretends ici que plus l'ensemble des Fc est reduite meilleurs
est la FCNE.

Il doit exister peu de manieres differentes d'arriver dans un meme etat
E afin de ne pas compliquer la tache d'apprentissage.



- Considerations pour le hacker

Le hacker veut un controle maximal sur sa machine, pour lui, plus
\Omega0 se rapproche de \Omega, plus il est heureux, meme si en
contrepartis son systeme de configuration n'est plus stable, voir meme
peut planter serieusement.

Pour lui \Omega_{okc} se limite a "je peux deplanter en rebootant sur un
CD de rescue", et \Omega_{coherent}, il le fait avec ses petits doigts.

On voit deja que cela se distingue serieusement de ce que j'ai presente
des souhaits de l'utilisateur non expert.


- Consequences pratiques

* La configuration texte n'est pas adaptee a l'utilisateur non expert.

Justification: la config texte casse souvent les axiomes A et B et
toujours C.
Exemple, un fichier de config avec cette ligne:
RhostsAuthentication no

Casser C:
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication NO
(Une multitude de fonctions de configs ammene au meme resultat)

Casser B:
RhostsAuthentication yes
(L'utilisateur familial n'a pas besoin de cette option)
RhostsAuthentication Oui
RhostsAuthentication @#78)*&2
(ces deux entrees sont invalides, sshd se casse la figure, le systeme
est hors \Omega_{coherent})

Pour casser A, il faut suffit de modifier un fichier de config de base.
Par exemple, mettre dans un des script d'init la chaine:
reboot


- Qualites d'une interface graphique

Le gros probleme des interfaces graphiques de configuration sous linux,
et que souvent leur \Omega0g (espace de configuration accessible par
l'interface graphique) est:
a- tres petite devant \Omega0t (configuration par interface texte)
b- Ne couvre pas \Omega_{coherent}, ni meme \Omega_{ok}

a/ On y peut rien, on sait que c'est comme ca, c'est meme voulu.
b/ Tant que \Omega0g n'atteint pas \Omega_{ok}, le systeme est non
administrable par un utilisateur non expert.

Par contre, elles sont souvent assez bonne sur:
c/ stable
d/ inclus dans \Omega_{coherent}

Malheureusement, ce n'est pas parfait ici non plus, or ces points sont
cruciaux.

Pour moi, c'est sur le point b/ qu'il faut mettre les efforts dans la
mesure ou l'on souhaite pouvoir confier des machine a un environemment
non expoert type familial.


- Pour conclure, comparaison (subjective).

- Sous MacOS <10, on a \Omega0g a peu pres egal a \Omega_{coherent},
mais insufisant pour couvrir \Omega_{ok}. Tres stable et sort peu de
\Omega_{coherent}.

- Sous MacOS X, on a \Omega0g plus reduit que \Omega_{coherent}, mais
ouvrant a peu pres \Omega_{ok}, et \Omega0t, pour completer.

- Sous Windows, on a \Omega0g plus reduit que \Omega_{coherent},
probablement insufisant pour \Omega_{ok}, completer tient du cauchemar.

- Sous Linux, on a \Omega0g tres petit devant \Omega_{coherent},
totalement insufisant pour \Omega_{ok}, \Omega0t complete parfaitement.



Bref bref bref...


Yannick, qui a sans doute ecrit pas mal de conneries...


--
_/ Yannick Patois \___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: patois@calvix.org | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |

10 réponses

1 2
Avatar
nicolas bigeard
A mon tour ... troll de l'été



perso, je dis pas mal. J'ai rien compris.

nico


Avatar
Xavier Combelle
nicolas bigeard wrote:
A mon tour ... troll de l'été




perso, je dis pas mal. J'ai rien compris.

c'est donc un mauvais troll


Tentative d'interprétation:
Un bon système de configuration pour un non informaticien
est un système de configuration graphique qui garanti
que toute modification de la configuration laissera l'application
en état de fonctionner.

Là où je ne rejoint pas l'auteur est sur la nécessité de l'interface
graphique.
Je pense qu'un fichier texte peut fonctionner aussi bien, dans la mesure
où l'application refuse de démarrer avec un fichier invalide. Par
contre, une application sera non-expert-friendly si et seulement si elle
est capable de redonner au non-expert la dernière configuration qui
fonctionnait (voire un historique des dernières configurations).

Je ne nie pas l'utilité de l'interface graphique, celle-ci permettant de
modifier de façon conviviale le fichier texte. Cependant, d'un point de
vue d'implémentation, il est important que le module de vérification de
la cohérence des données soit distinct du module de saisie.



Avatar
Michel Billaud
Xavier Combelle writes:

nicolas bigeard wrote:
A mon tour ... troll de l'été
perso, je dis pas mal. J'ai rien compris.



c'est donc un mauvais troll


Tentative d'interprétation:
Un bon système de configuration pour un non informaticien
est un système de configuration graphique qui garanti
que toute modification de la configuration laissera l'application
en état de fonctionner.


Un firewall passoire qui laisse tout passer, ou rien passer, est il en
état de fonctionner ?

Un utilisateur ignare configure son firewall avec les pieds, n'ayant
aucune idée claire de ce qu'il faut laisser entrer/sortir.
L'interface de configuration lui permet de le faire aisément. Est-ce
un bon système de configuration ?

MB






Là où je ne rejoint pas l'auteur est sur la nécessité de l'interface
graphique.
Je pense qu'un fichier texte peut fonctionner aussi bien, dans la
mesure où l'application refuse de démarrer avec un fichier
invalide. Par contre, une application sera non-expert-friendly si et
seulement si elle est capable de redonner au non-expert la dernière
configuration qui fonctionnait (voire un historique des dernières
configurations).

Je ne nie pas l'utilité de l'interface graphique, celle-ci permettant
de modifier de façon conviviale le fichier texte. Cependant, d'un
point de vue d'implémentation, il est important que le module de
vérification de la cohérence des données soit distinct du module de
saisie.



--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)




Avatar
Yannick Patois
Xavier Combelle wrote:
nicolas bigeard wrote:
A mon tour ... troll de l'été
perso, je dis pas mal. J'ai rien compris.


c'est donc un mauvais troll



En effet.

Tentative d'interprétation:
Un bon système de configuration pour un non informaticien
est un système de configuration graphique qui garanti
que toute modification de la configuration laissera l'application
en état de fonctionner.


Y'en a un qui suit ;)

Là où je ne rejoint pas l'auteur est sur la nécessité de l'interface
graphique.
Je pense qu'un fichier texte peut fonctionner aussi bien, dans la mesure
où l'application refuse de démarrer avec un fichier invalide.


Oui, mais la tu as un systeme non fonctionnel.
La question est moins graphique/non graphique que interactif/non interactif.

Un systeme de config simple est intactif: il propose un jeu de choix
restreint qui evolue en fonction des choix precedents.

A ma connaissance, seul un systeme "graphique" peut faire cela aisement
(il peut etre curses, bien sur, mais vi me parait un peu juste la quand
meme).

contre, une application sera non-expert-friendly si et seulement si elle
est capable de redonner au non-expert la dernière configuration qui
fonctionnait (voire un historique des dernières configurations).


Mieux serait "si ca fonctionne pas, relancer l'appli avec la derniere
configuration qui marchait". Mais c'est pas optimal. Le fichier de
config fautif ne devrait jamais avoir ete ecrit par l'outils de
configuration.

Je ne nie pas l'utilité de l'interface graphique, celle-ci permettant de
modifier de façon conviviale le fichier texte. Cependant, d'un point de
vue d'implémentation, il est important que le module de vérification de
la cohérence des données soit distinct du module de saisie.


C'est une meilleure garantis de fonctionnement, en effet. Surtout que
les répercutions d'une configuration vont bien plus loin que la seule
application configurée, parfois.

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |




Avatar
Yannick Patois
Salut,

Michel Billaud wrote:
Xavier Combelle writes:
nicolas bigeard wrote:
A mon tour ... troll de l'été
Un bon système de configuration pour un non informaticien



est un système de configuration graphique qui garanti
que toute modification de la configuration laissera l'application
en état de fonctionner.
Un firewall passoire qui laisse tout passer, ou rien passer, est il en

état de fonctionner ?


Non.

Un utilisateur ignare configure son firewall avec les pieds, n'ayant
aucune idée claire de ce qu'il faut laisser entrer/sortir.
L'interface de configuration lui permet de le faire aisément. Est-ce
un bon système de configuration ?


Non, pas au sens que j'ai defini precedemment. C'est un bon systeme pour
un expert (maximum de liberté) pas pour un non expert (qui a besoin
d'etre guidé). Une machine dans un état insecure n'est pas dans un etat
de fonctionnement correct (pas dans Omega_{ok}, dans le jargon precedent).

L'interface de configuration du firewall, ne doit probablement pas meme
exister en tant que telle a ce niveau, ce n'est pas un concept
manipulable par le non-expert.

Sur un tel systeme, le firewall est configure par defaut a un niveau de
securite eleve (tout est bloqué en entre, par exemple), et l'utilisateur
ne peut pas agir directement sur ce point.

Tu peux juste imaginer un melange d'exploration automatique et de
d'entrees des donnes de l'utilisateur qui decrive au systeme la
topologie de son réseau fmailial: "Ici le PC de mon conjoint, la celui
de mon fils, par la c'est internet", ce qui permetra dee definir le
routage, apres que l'utilisateur ait autorisé ou interdit la sortie vers
internet de chacune de ces machines et la nature des connexions
partagées "partage de disque" (montages NFS) par exemple.

Le firewall n'apparait qu'en creux dans les configs. Par exemple,
lorsque l'utilisateur demande a lancer un serveur web, on lui demande
"qui poura y acceder" ? La validation du réseau local ne posera aucun
probleme, par contre, trouver une option permettant de le rendre visible
du réseua nécéssitera un passage en mode "avancé" de l'interface, ainsi
qu'une justificatioin de ces précautions. De meme, la requete "je veux
pouvoir me connecter en ssh depuis le bureau", reconfigurera le firewall
(si possible restreint aux IPs du bureau), et controlera au prealable la
qualité du mot de pase de l'utilisateur autorisé, ou l'utilisation
correcte d'une clef ssh.

L'un des points important, qu'il me semble que seul une interface
interactive peutr resoudre elegemment est cette interaction entre de
multiples aspects de la config, comme par exemple entre le serveur
apache et le firewall. Lorsque l'utilisateur demande a pouvoir faire
voir son web local a un utilisateur distant, il faut a la fois
reconfigurer le fichier de config d'apache et celui du firewall, par
exemple.

Toute la difficulté consiste a faire un systeme a la fois archi-blindé
et en meme temps suffisement souple pour que l'ensemble des souhaits
d'un utilisateur non experts soit satisfait.

Vaste programme... C'est prouquoi je suis partit d'un langage très
formel pour tenter de le définir.

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |





Avatar
Michel Billaud
Yannick Patois writes:

Salut,

Michel Billaud wrote:
Xavier Combelle writes:
nicolas bigeard wrote:
A mon tour ... troll de l'été
Un bon système de configuration pour un non informaticien



est un système de configuration graphique qui garanti
que toute modification de la configuration laissera l'application
en état de fonctionner.
Un firewall passoire qui laisse tout passer, ou rien passer, est il en

état de fonctionner ?


Non.

Un utilisateur ignare configure son firewall avec les pieds, n'ayant
aucune idée claire de ce qu'il faut laisser entrer/sortir.
L'interface de configuration lui permet de le faire aisément. Est-ce
un bon système de configuration ?


Non, pas au sens que j'ai defini precedemment. C'est un bon systeme
pour un expert (maximum de liberté) pas pour un non expert (qui a
besoin d'etre guidé). Une machine dans un état insecure n'est pas dans
un etat de fonctionnement correct (pas dans Omega_{ok}, dans le
jargon precedent).


La notion d'état de fonctionnement correct ne tient pas debout,
du moins toute seule, si on néglige le contexte.

Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)

L'interface de configuration du firewall, ne doit probablement pas
meme exister en tant que telle a ce niveau, ce n'est pas un concept
manipulable par le non-expert.

Sur un tel systeme, le firewall est configure par defaut a un niveau
de securite eleve (tout est bloqué en entre, par exemple), et
l'utilisateur ne peut pas agir directement sur ce point.


Il peut sortir de la configuration par défaut.


Tu peux juste imaginer un melange d'exploration automatique et de
d'entrees des donnes de l'utilisateur qui decrive au systeme la
topologie de son réseau fmailial: "Ici le PC de mon conjoint, la celui
de mon fils, par la c'est internet", ce qui permetra dee definir le
routage, apres que l'utilisateur ait autorisé ou interdit la sortie
vers internet de chacune de ces machines et la nature des connexions
partagées "partage de disque" (montages NFS) par exemple.


Le béotien ne veut pas savoir ce qu'est un montage NFS. Le partage de
disque n'est même pas un concept de base pour lui. D'ailleurs ce n'est
pas un but mais un moyen technique. Ce qu'il veut, exprimé dans ses
propres termes, c'est "retrouver ses documents lorsqu'il travaille sur
l'autre ordinateur". Chose qu'on peut d'ailleurs faire sans aucun
partage de disque (par exemple par des sessions à distance).

Alors c'est mal barré pour qu'il soit capable de préciser "la nature
des connexions" entre ses ordinateurs et internet.

La vraie solution, c'est de renoncer à la démagogie-marketing, et de
lui expliquer que non, il n'arrivera pas à quelque chose de correct
avec un ordinateur si il ne se donne pas la peine de se renseigner et
de réfléchir.

MB

--
Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)






Avatar
Yannick Patois
Salut,

Michel Billaud wrote:
Yannick Patois writes:
Michel Billaud wrote:
Un utilisateur ignare configure son firewall avec les pieds, n'ayant
aucune idée claire de ce qu'il faut laisser entrer/sortir.
L'interface de configuration lui permet de le faire aisément. Est-ce
un bon système de configuration ?
Non, pas au sens que j'ai defini precedemment. C'est un bon systeme

pour un expert (maximum de liberté) pas pour un non expert (qui a
besoin d'etre guidé). Une machine dans un état insecure n'est pas dans
un etat de fonctionnement correct (pas dans Omega_{ok}, dans le
jargon precedent).


La notion d'état de fonctionnement correct ne tient pas debout,
du moins toute seule, si on néglige le contexte.
Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)


Tu as raison. Pour le moment l'environement exterieur n'arrive que par
le reseau, l'analyse reste valable -stricto-sensus- que pour les taches
dans lesquels le reseau n'est pas implique. Pour ce qui ets du reseau,
il me semble que dans les utilisations non expertes, le nombre d'etats a
considere est relativement faible.

Sur un tel systeme, le firewall est configure par defaut a un niveau
de securite eleve (tout est bloqué en entre, par exemple), et
l'utilisateur ne peut pas agir directement sur ce point.
Il peut sortir de la configuration par défaut.



Non, justement, ce que je dis est qu'il ne doit pas pouvoir.

Tu peux juste imaginer un melange d'exploration automatique et de
d'entrees des donnes de l'utilisateur qui decrive au systeme la
topologie de son réseau fmailial: "Ici le PC de mon conjoint, la celui
de mon fils, par la c'est internet", ce qui permetra dee definir le
routage, apres que l'utilisateur ait autorisé ou interdit la sortie
vers internet de chacune de ces machines et la nature des connexions
partagées "partage de disque" (montages NFS) par exemple.


Le béotien ne veut pas savoir ce qu'est un montage NFS.


Tout a fait.

Le partage de
disque n'est même pas un concept de base pour lui. D'ailleurs ce n'est
pas un but mais un moyen technique. Ce qu'il veut, exprimé dans ses
propres termes, c'est "retrouver ses documents lorsqu'il travaille sur
l'autre ordinateur". Chose qu'on peut d'ailleurs faire sans aucun
partage de disque (par exemple par des sessions à distance).


Ou placer la limite en terme de notions a maitriser n'est pas evident,
quel vocabulaire employer non plus.

Y'a beaucoup de travail a faire la dessus.

Cependant, sous MacOS comme sous Windows (il me semble pour ce dernier),
il existe une interface pour dire "je veux 'partager' ce dossier avec
d'autres" suivit d'une configuration plus precise de ce que "autre" veut
dire. Et cela corresponds bien a un montage reseau du dossier (qui sous
UNIX utilisera sans doute NFS).

J'ai assez confiance en MacOS pour savoir faire des interfaces
comprehensibles par les non experts, je pense que le concept doit donc
leur etre accessible.

Alors c'est mal barré pour qu'il soit capable de préciser "la nature
des connexions" entre ses ordinateurs et internet.


Ils n'en sont pas capable, bien sur, ils indiquent ce qu'ils veulent faire.

La vraie solution, c'est de renoncer à la démagogie-marketing, et de
lui expliquer que non, il n'arrivera pas à quelque chose de correct
avec un ordinateur si il ne se donne pas la peine de se renseigner et
de réfléchir.


Je suis de plus en plus convaincu que ce mode de pensee n'est pas realiste.

Disons le autrement: l'interface doit faire tout son possible pour
alleger la charge de renseignements et de reflexions dont l'utilisateur
a besoin pour realiser une fonction donnee. Il est certain que l'on ne
peut pas arriver a zero, mais l'experience prouve que l'on peut la
reduire tres tres fortement. Les premiers ordinateurs n'etaient utilise
que par des specialistes, tous docteurs en maths ou ingenieurs de haut
niveau. Aujourd'hui, le plus grand nombre peut arriver a se debrouiller
snas trop de casse avec un Mac, lui faire faire ce qu'il souhaite et
l'administrer raisonablement. Je suis persuade que l'on peut encore
ameliorer cela. Pourquoi ne pas le faire, ou au moins essayer ?


Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |



Avatar
Michel Billaud
Yannick Patois writes:

Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)


Tu as raison.


Forcément.


Pour le moment l'environement exterieur n'arrive que par
le reseau, l'analyse reste valable -stricto-sensus- que pour les
taches dans lesquels le reseau n'est pas implique.


Bin non. Si le sous-système qu'on considère pour la configuration
c'est la machine avec son systeme d'exploitation et ses applications,
l'utilisateur installateur est à l'*extérieur*.

Donc l'analyse n'est valable que pour les taches qui ne mettent pas
en jeu l'utilisateur. Tout de suite, ça limite la conversation.


Ou placer la limite en terme de notions a maitriser n'est pas evident,
quel vocabulaire employer non plus.
Y'a beaucoup de travail a faire la dessus.


Les ordinateurs ne sont quand même pas une nouveauté.


Alors c'est mal barré pour qu'il soit capable de préciser "la nature
des connexions" entre ses ordinateurs et internet.


Ils n'en sont pas capable, bien sur, ils indiquent ce qu'ils veulent faire.


Ils peuvent certes cliquer sans comprendre. Ca n'explosera pas.


La vraie solution, c'est de renoncer à la démagogie-marketing, et de
lui expliquer que non, il n'arrivera pas à quelque chose de correct
avec un ordinateur si il ne se donne pas la peine de se renseigner et
de réfléchir.


Je suis de plus en plus convaincu que ce mode de pensee n'est pas realiste.

Disons le autrement: l'interface doit faire tout son possible pour
alleger la charge de renseignements et de reflexions dont
l'utilisateur a besoin pour realiser une fonction donnee. Il est
certain que l'on ne peut pas arriver a zero, mais l'experience prouve
que l'on peut la reduire tres tres fortement.


realiser la fonction, c'est vraiment le dernier stade. Déjà il faut savoir
ce qu'on a besoin de faire, choisir un compromis entre ce qu'on veut faire
et ce que permet le systeme, et ensuite lancer les actions qui permettont
de le faire.


Les premiers ordinateurs
n'etaient utilise que par des specialistes, tous docteurs en maths ou
ingenieurs de haut niveau.


Faut pas exagerer, il y a avait aussi beaucoup de physiciens (je dis
ça pour voir si MT dort). Ceci dit les premiers ordinateurs n'avaient pas de
carte son, de modem ADSL, de firewall et d'imprimantes USB ni de Wifi,
encore moins de voisinage réseau et autres partages de fichiers.


Aujourd'hui, le plus grand nombre peut arriver a se debrouiller snas
trop de casse avec un Mac, lui faire faire ce qu'il souhaite


Il faut dire que le niveau d'exigence concernant ce qu'on veut faire
avec un ordinateur a considérablement baissé. Dans le temps c'était
un investissement qui amenait un gain de productivité considérable par
ce que ça automatisait le traitement des informations. Investissement
financier et intellectuel: pour automatiser il faut programmer, donc
réfléchir. Maintenant c'est un tourne-disque / telex à peine amélioré.
Un pur produit de consommation avec une valeur d'échange mais pas de
valeur d'usage. Ca sert à faire tourner les usines où travaillent les
délocalisés asiatiques qui font prospérer les fonds de pension.

et l'administrer raisonablement.


C'est quoi, raisonnablement ?

Je suis persuade que l'on peut encore ameliorer cela. Pourquoi ne pas le
faire, ou au moins essayer ?

--

Michel BILLAUD
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)


Avatar
Yannick Patois
Michel Billaud wrote:
Yannick Patois writes:
Ce qui peut être ou ne pas être correct, ce sont des couples
(etat de la machine, environnement)
Tu as raison.

Forcément.



C'est un axiome? ;-)


Pour le moment l'environement exterieur n'arrive que par
le reseau, l'analyse reste valable -stricto-sensus- que pour les
taches dans lesquels le reseau n'est pas implique.
Bin non. Si le sous-système qu'on considère pour la configuration

c'est la machine avec son systeme d'exploitation et ses applications,
l'utilisateur installateur est à l'*extérieur*.


Certe. Cependant le systeme doit rester en etat quelque soit les actions
de l'utilisateur. Une fois configure, qu'importe ce qu'il fait.

Et s'il modifie la config, nous sommes de retours dans le sujet.

Donc l'analyse n'est valable que pour les taches qui ne mettent pas
en jeu l'utilisateur. Tout de suite, ça limite la conversation.


Donc non.

La particularite de l'environemment reseau par rapport a ce point est
que si, par exemple, l'utilisateur debranche le cable reseau et branche
le modem a la place (ou change de FAI), la configuration doit etre
affectee pour que le systeme demeure operationel.

Ou placer la limite en terme de notions a maitriser n'est pas evident,
quel vocabulaire employer non plus.
Y'a beaucoup de travail a faire la dessus.
Les ordinateurs ne sont quand même pas une nouveauté.



Non, mais on peut voir que c'est pas encore ca...


Alors c'est mal barré pour qu'il soit capable de préciser "la nature
des connexions" entre ses ordinateurs et internet.
Ils n'en sont pas capable, bien sur, ils indiquent ce qu'ils veulent faire.

Ils peuvent certes cliquer sans comprendre. Ca n'explosera pas.



Le but de l'interface bien faite est justement de permetre que des
clics, y compris quasiment au hasard (on a affaire a un non expert) ne
mette jamais la machine dans un etat non fonctionnel ou non secure.


Disons le autrement: l'interface doit faire tout son possible pour
alleger la charge de renseignements et de reflexions dont
l'utilisateur a besoin pour realiser une fonction donnee. Il est
certain que l'on ne peut pas arriver a zero, mais l'experience prouve
que l'on peut la reduire tres tres fortement.
realiser la fonction, c'est vraiment le dernier stade. Déjà il faut savoir

ce qu'on a besoin de faire, choisir un compromis entre ce qu'on veut faire
et ce que permet le systeme, et ensuite lancer les actions qui permettont
de le faire.


Il faut donc determiner le minimum absolut d'informations necessaire
entre le stade "savoir ce qu'on a besoin" et "lancer les actions" etg
ensuite mettre en place l'interface qui ne demande que cela et sache
partir du besoin exprime.


Les premiers ordinateurs
n'etaient utilise que par des specialistes, tous docteurs en maths ou
ingenieurs de haut niveau.
Ceci dit les premiers ordinateurs n'avaient pas de

carte son, de modem ADSL, de firewall et d'imprimantes USB ni de Wifi,
encore moins de voisinage réseau et autres partages de fichiers.


Et pourtant ils sont devenu plus simples a utiliser.


Aujourd'hui, le plus grand nombre peut arriver a se debrouiller snas
trop de casse avec un Mac, lui faire faire ce qu'il souhaite
Il faut dire que le niveau d'exigence concernant ce qu'on veut faire

avec un ordinateur a considérablement baissé. Dans le temps c'était
un investissement qui amenait un gain de productivité considérable par
ce que ça automatisait le traitement des informations. Investissement
financier et intellectuel: pour automatiser il faut programmer, donc
réfléchir.


Oui. Mais ces travaux exigeants ont aussi profite de la simplification
de l'interface. Entre perforer des cartes en Fortran et utiliser
Mathematica, y'a un gain enorme en productivite, y compris pour le
docteur en math.

Dans un tout autre domaine, pense aux films d'animations. Il y aura des
codeurs pour le rendu, mais aussi beaucoup de monde pour coder
l'interface que les graphistes (non informaticiens) vont utiliser pour
decrire et manipuler les objets du film. Entre tapper des coordonnees de
polygones dans un .pov et utiliser des curseurs et des menus dans une
apllication dediee a l'animations de personnages, par exemple, la
quantite de connaissance a maitriser (et la productivite) est incomparable.


Maintenant c'est un tourne-disque / telex à peine amélioré.


Dans ce cas, on doit pouvoir en rendre l'administration aussi simple que
celle de ces deux objet, non ?

et l'administrer raisonablement.
C'est quoi, raisonnablement ?



Que la machine fonctionne 10 ans sans qu'il faille jamais faire appel a
un expert pour decoincer une situation bloquee, tout en permetant a
l'utilisateur de faire ce qu'il souhaite.
En reconnaisant bien sur, que cela pourait etre ameliore par le passage
d'un expect.

Yannick

--
_/ Yannick Patois ___________________________________________________
| web: http://feelingsurfer.net/garp/ | Garp sur irc undernet |
| email: | |
| ATTAC dans le Pays de Gex: http://attacgex.ouvaton.org |



Avatar
Christophe Delage
In article <cel3cs$ig1$, Yannick Patois wrote:
En francais, Bonjour,


Bonjour,

A mon tour de demarrer le troll de l'ete.

Je vais tenter de definir le contexte dans lequel je me place, puis par
rapport a ce contexte de definir une notion de "facilite de
configuration", et voir ensuite comment elle s'applique aux systemes
existants et conclure.


Tout d'abord, le contexte. Je ne m'interesse pas ici aux hackers, mais
bien aux personnes non specialites et qui ne le seront jamais mais qui
doivent utiliser et configurer leur ordinateur au quotidien (cas de la
plupart des ordinateurs familiaux). Ces personnes ont aucunes notions
theoriques en informatique, et une experience limite des systemes
d'exploitation. De plus elles n'ont ni le temps ni la motivation d'en
apprendre beaucoup.

Fournir a ces personnes un systeme fiable, robuste qu'ils puissent
utiliser sans faire trop appel a une aide exterieur me parait important.

Je vais definir la Facilite de Configuration pour Non Experts (FCNE),
par rapport a la population defini precedemment: qu'est-ce qui pour elle
sera plus simple ?

Bien sur, toute generalisation est abusive, et je risque de me planter
parfois, j'espere toutefois arriver a exprimer des tendances averees.



Mais tout d'abord, un peu de definitions.

Soit Omega l'ensemble des etats de configurations possibles sur une
machine. Je restreint volontairement Omega aux elements
"configurables", meme si cette notion reste un peu flou, je pense que le
discours reste valide si l'on etends Omega a l'ensemble des etats
possibles (en gros 2^{40.10^9*8}*2^{256*2^20*8}*2^10, en imaginant un
disque dur de 40Go, 256 Mo de RAM et environ 1000 etats de la PROM).

L'etat E0 est un etat initial fonctionnel de la machine. Ce peut etre
l'etat juste apres installation du systeme, ou mieux, l'etat juste
*avant* installation du systeme, mais je prendrai la premiere
definition, moins generale mais qui possede plus de proprietes
interessante et suffit a la discussion.

Un sous-ensemble de Omega est Omega_{ok}, qui sont les etats dans
lequel le systeme fonctionne de maniere satisfaisante pour
l'utilisateur. Cette notion est tres floue mais ne peut etre evitee dans
la mesure ou c'est celle qui preocupe l'utilisateur. Nous allons
cependant nous interesser a un sous-ensemble un peu plus large mais
mieux defini, Omega_{okc} qui est le sous-ensemble des etats de
configurations dans lesquels l'utilisateur a acces au systeme de
configuration de maniere totalement fonctionnel (il permet d'acceder a
l'ensemble des etats de configuration, ceci suppose bien sur que celui
ci soit stable - voir ci-dessous -).

Omega_{ok} etant tres vague quoi que central, je vais introduire
Omega_{coherent}, qui est l'ensemble des etats de configuration qui
sont fonctionnels et susceptible de repondre au besoin d'un utilisateur
non expert (par exemple, un etat dans lequel apache charge le module php
mais dans lequel aucunes extensions n'a ete defini pour l'appeler n'est
pas coherent).


Perso, j'aime pas utiliser des lettres grecques pour les machins
pas bien definis, mais heureusement, dans la suite, ca s'arrange.

Le systeme de configuration est une fonction F_c qui fait passer le
systeme d'un etat E1 vers un etat E2 (E1, E2 inclus dans Omega) sous


coquille: appartenant, pas inclus.

l'action de l'utilisateur.

Un systeme de configuration donnee ne permet pas forcement d'adresser
tout Omega,


j'ajouterai meme qu'une fonction de configuration n'est pas definie
sur tout Omega. (genre, dans l'etat "j'ai efface le fichier
/etc/important" comment je modifie le fichier /etc/important ?)

F_c est une fonction de Omega dans mathcal{P}(Omega).
(comme ca, F_c(E) = emptyset si pas definie)

et on peut rajouter :
pour tout E dans Omega, |F_c(E)| leq 1
parcequ'un processus de configuration est un processus deterministe,
c'est bien connu. (sic)

mais plus probablement un sous-ensemble Omega_{Fc(E0)}
depuis un etat initial E0 (accessible en une ou plusieurs etapes, par
exemple, E3ü_2(Fc_{1}(E0)) appartient bien a Omega_{Fc(E0)}.

Simplification d'ecriture: Omega_{Fc(E0)} sera ecrit Omega0 dans la suite.


avec ma definition, on peut rendre Omega encore plus cryptique :
(Cup_{c} F_c)^*(E0), c'est mieux non ? :)

Je dis que le systeme de configuration est stable si quelque soit E_1 et
E_2 appartenant a Omega0 alors il exite une serie fini de
transformation Fc_i tel que E_2=O_{tous les i}Fc_i (E_1) (O est ici la
composition de fonctions: Fc_1(Fc_2(Fc_3(....Fc_i(E1)).


Je recapitule ce que j'ai cru comprendre :
- tu as un ensemble Omega
- tu appelles "systeme de configuration" un paquet de fonctions
partielles sur Omega
- tu choisis E0 dans Omega
- tu consideres Omega0 la partie de Omega atteignable par ton
"systeme de configuration"
- tu dis que Omega0 est stable s'il est fortement connexe (pour
parler "graphes" parceque c'est classe d'utiliser le vocabulaire
d'une autre theorie, juste pour faire joli ;-))

(si j'ai bon, j'ai une remarque, la def du sys de conf est pas super
claire, elle dit "un sys de conf est _une_ fonction F_c". j'aurais
prefere "est une famille (F_c) de fonctions")

- Il est evident que Omega0 est inclus dans Omega_{okc}, l'inverse
n'est pas forcement vrais: jette par des vent mauvais dans un etat E1
hors de Omega0, il est possible qu'une serie de fonctions Fc nous y
ramene, c'est meme souhaitable (sinon le systeme doit etre repare par un
expert).

- Avoir un systeme de configuration stable est important. L'inverse veut
dire que l'on peu arriver dans des etats dont on ne peut plus revenir.


clair, c'est meme le principal, je dirais.

- Un systeme de configuration performant minimise probablement le nombre
d'etapes pour passer d'un etat a un autre.

- Une intervention exterieur (reboot sur CD ou disquette) est elle dans
Omega0 ?


dans (F_c) tu veux dire ?

Pour la discussion, je considererai que non, meme si en
pratique c'est parfois difficilement evitable. Ceci parce que sinon on a
trivialement Omega0=Omega, meme si c'est pas forcement "facile" a
obtenir.


je pense franchement qu'il y a des tas d'etats non atteignables (pas
seulement des "pas facile" a atteindre) dans les sys de conf qu'on
rencontre dans le vrai monde.
par exemple, les etats tels que tous les bits de la RAM sont a 0,
meme si t'as un un cd de boot, je parie que t'y arrive pas.
meme en ecrivant un noyau from scratch, je sais pas si c'est possible.

C'est pour cela aussi que Omega0 a ete defini comme l'etat
*apres* installation. De la meme facon, un reboot en "mode sans echec"
ou avec des arguments autres que ceux par defaut sera considere comme
hors Omega0 (essentiellement parceque ce sont des etats que
l'utilisateur non expert ne veut pas avoir a connaitre).

Dans la pratique, bien des systemes de configurations ne sont pas
stables (mettre "0" comme runlevel par defaut, par exemple).


interdire les arguments au noyal, c'est violent comme contrainte
sur le sys de conf. :-)

Passons maintenant aux axiomes:

*** A/ Je pretends ici que si Omega0 est inclus dans Omega_{okc} la
FCNE est meilleure.


le contraire, plutot ("Il est evident que Omega0 est inclus dans
Omega_{okc}" dixit plus haut), non ?

En francais, cela signifie que le systeme est plus simple a configurer
pour un non expert si quelque soit les erreurs que celui-ci fait, il se
retrouve toujours dans un etat ou il peut la corriger a partir de son
interface de configuration.


tu te restreints aux sys de conf stables ? (si oui, faut le dire)

Justification: L'utilisateur non expert fera des erreurs (l'expert
aussi, mais moins et il aura access a des methodes d'experts pour les
corriger), si ces erreurs peuvent ammener la machine dans un etat ou le
systeme de configuration qu'il connait ne marche plus, il est coince et
doit faire appel a un expert.

*** B/ Je pretends que si Omega0 est inclus dans Omega_{coherent} la
FCNE est meilleure.

En francais, cela veut dire que le systeme est plus simple a configurer
si aucune fonction de configuration accessible ne peut mettre le systeme
dans un etat qui serait d'aucun interet pour un utilisateur non expert.

Limitation: j'aurais aime mettre Omega_{ok}, mais cela me semble
impossible, il y a a developper la dessus, en gros, il faut que
l'interface de configuration lui presente des choix qu'il puisse
comprendre afin de les faire dans son interet.

Justification: en gros la meme que ci-dessus.

*** C/ Je pretends ici que plus l'ensemble des Fc est reduite meilleurs
est la FCNE.

Il doit exister peu de manieres differentes d'arriver dans un meme etat
E afin de ne pas compliquer la tache d'apprentissage.


ah mais non, rien ne va plus la.
ca voudrait dire que la tache d'apprentissage de perl est compliquee ?
c'est pas possible ;-)

- Considerations pour le hacker

Le hacker veut un controle maximal sur sa machine, pour lui, plus
Omega0 se rapproche de Omega, plus il est heureux, meme si en
contrepartis son systeme de configuration n'est plus stable,


je ne vois pas le rapport entre la taille de Omega0 et la stabilite.
du bidule. Et je trouve qu'au contraire, plus on a un controle fin,
plus on a de chance d'avoir un sys stable.

voir meme
peut planter serieusement.

Pour lui Omega_{okc} se limite a "je peux deplanter en rebootant sur un
CD de rescue", et Omega_{coherent}, il le fait avec ses petits doigts.

On voit deja que cela se distingue serieusement de ce que j'ai presente
des souhaits de l'utilisateur non expert.


- Consequences pratiques

* La configuration texte n'est pas adaptee a l'utilisateur non expert.

Justification: la config texte casse souvent les axiomes A et B et
toujours C.
Exemple, un fichier de config avec cette ligne:
RhostsAuthentication no

Casser C:
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication no
RhostsAuthentication NO
(Une multitude de fonctions de configs ammene au meme resultat)

Casser B:
RhostsAuthentication yes
(L'utilisateur familial n'a pas besoin de cette option)
RhostsAuthentication Oui
RhostsAuthentication @#78)*&2
(ces deux entrees sont invalides, sshd se casse la figure, le systeme
est hors Omega_{coherent})

Pour casser A, il faut suffit de modifier un fichier de config de base.
Par exemple, mettre dans un des script d'init la chaine:
reboot


Ah oui mais la, tu consideres comme (F_c) *toutes* les modifs de /etc,
c'est trop gros. Si tu te restreints a des conventions de syntaxe
non ambigues, et aux modifs qui font que des trucs bien, ca va.


- Qualites d'une interface graphique

Le gros probleme des interfaces graphiques de configuration sous linux,
et que souvent leur Omega0g (espace de configuration accessible par
l'interface graphique) est:
a- tres petite devant Omega0t (configuration par interface texte)
b- Ne couvre pas Omega_{coherent}, ni meme Omega_{ok}


euh... j'ai ptet loupe un truc dans tes definitions, mais j'avais
compris que Omega_{coherent} subset Omega_{ok}. (c'est dans l'autre
sens ?)

a/ On y peut rien, on sait que c'est comme ca, c'est meme voulu.


"on n'y peut rien" n'est pas une raison pour tolerer n'importe quoi.
Il faut quand meme verifier que meme en restant dans Omega0g on peut
atteindre un etat ou on a sa disposition une machine de Turing
universelle. Sinon, c'est pas la peine d'avoir un ordinateur.
D'ailleurs j'aime pas les sys de confs qui sont pas turing-complets ;-)


b/ Tant que Omega0g n'atteint pas Omega_{ok}, le systeme est non
administrable par un utilisateur non expert.

Par contre, elles sont souvent assez bonne sur:
c/ stable


je suis pas du tout d'accord. je trouve qu'au contraire avec une GUI,
c'est super facile de casser un truc sans espoir de reparation.
(de reparation avec la GUI, bien sur)
genre, desinstaller le pilote de la souris sous windows, c'est
possible, non ? (j'ai pas de windows sous la main pour verifier)
(et celui du clavier, parceque sinon on peut faire tab* entree)

d/ inclus dans Omega_{coherent}


quoi quoi quoi ? on peut meme rien casser avec une GUI ?
tu te restreints peut etre aux GUI non-buggees ? :)

Malheureusement, ce n'est pas parfait ici non plus, or ces points sont
cruciaux.

Pour moi, c'est sur le point b/ qu'il faut mettre les efforts dans la
mesure ou l'on souhaite pouvoir confier des machine a un environemment
non expoert type familial.


vu que je trouve que c est dans "mauvais", je dirais qu'un mauvais c
est bien pire qu'un mauvais b (du point de vue du debutant). si je me
mets a la place d'un debutant, j'aurai vraiment trop peur de casser un
truc.

- Pour conclure, comparaison (subjective).

- Sous MacOS <10, on a Omega0g a peu pres egal a Omega_{coherent},
mais insufisant pour couvrir Omega_{ok}. Tres stable et sort peu de
Omega_{coherent}.

- Sous MacOS X, on a Omega0g plus reduit que Omega_{coherent}, mais
ouvrant a peu pres Omega_{ok}, et Omega0t, pour completer.

- Sous Windows, on a Omega0g plus reduit que Omega_{coherent},
probablement insufisant pour Omega_{ok}, completer tient du cauchemar.

- Sous Linux, on a Omega0g tres petit devant Omega_{coherent},
totalement insufisant pour Omega_{ok}, Omega0t complete parfaitement.


meme remarque que tout a l'heure, c'est pas dans l'autre sens
Omega_{coherent} et Omega_{ok} ? (je crois que j'ai rien compris a
la difference entre ok et coherent, en fait)

sinon, toutes ces definitions pour dire que :

- macos <10, on clique ca marche, mais c'est chiant de faire des
choses bizarres ;

- macos X, on clique ca marche, et ca permet meme de faire pas mal de
choses bizarres ;

- windows, c'est le bordel ;

- linux, on peut cliquer si on veut, mais ca marche quand meme mieux
avec un clavier ;

ca m'a bien amuse.


Bref bref bref...

Yannick, qui a sans doute ecrit pas mal de conneries...


FU2 fr.sci.maths ? :)

[1] attention, moi aussi je peux vous mettre du TeX en pleine face. :-)

--
Christophe Delage

1 2