FAQ

Cet article est relatif au syst?me d'exploitation Manux, version 0.0.5. Nous supposerons que le lecteur est habitu? ? l'utilisation en ligne de commande d'un autre Unice.

Installation

L'installation ?choue sur mon ordinateur, que faire?

Distinguons les principaux cas :

L'installation ?choue lors de l'initialisation d'un module noyau

Ah, ?a, c'est pas bon. Si le module en question est "ide", c'est qu'il n'est pas parvenu ? contacter votre disque dur. Dans ce cas, vous pouvez essayer de trouver ses ports gr?ce ? Linux, puis de forcer leur valeur dans noyau/d?marrer_ide.c. (Vous ?tes un hacker noyau, non?) Sinon, ma foi, tentez de d?bogger le probl?me, ou signalez-le moi. (M?me si je crains ne pas pouvoir faire grand-chose, si je ne peux pas reproduire le probl?me.)

L'installation ?choue avec une panique du noyau

Oups.... ?a, c'est tr?s mal. Et je sais que c'est possible, parce qu'il reste des bogues dans le noyau que je ne suis pas parvenu ? reproduire (ils surviennent tr?s rarement, sauf durant l'installation). Signalez-le-moi et r?essayez, et si c'est reproductible, tentez d'identifier le probl?me... D?sol?.

L'installation se bloque lors de l'installation d'un paquetage

Non, elle ne se bloque pas :-) . L'installation de certains paquetages est tr?s longue et prend plusieurs minutes - attendez simplement. (D'un autre c?t?, si elle se bloque vraiment, alors vous avez rencontr? un bogue noyau... Et je n'ai jamais subi quoi que ce soit de ce genre, donc si cela vous arrive, je soup?onne que ce soit li? au mat?riel. Tentez de ralentir les entr?es-sorties du module "ide", et voyez si cela am?liore la situation.)

L'installation s'ach?ve avec un message d'?chec

Quoi? Elle ne devrait pas. Signalez-moi o? cela se produit, et voyez si c'est reproductible ou non.

L'installeur affiche des caract?res bizarres (des coeurs et des visages) durant l'installation

C'est parfaitement normal, ignorez-le.

(Ah, vous voulez savoir pourquoi cela se produit? L'installeur est un processus Manux standard, donc il est chroot?. Mais il n'y a pas de /packages dans son chroot, parce que la portion Linux de l'installeur ne peut pas cr?er de lien mat?riel vers un r?pertoire, et que sa portion initiale en C n'effectue que le strict minimum avant d'ex?cuter le script d'installation. Donc /packages lui est pass? sous la forme d'un param?tre de sa ligne de commande. Mais /packages n'est pas dans /... , donc les algorithmes anti-collision ont d? lui donner un nouveau nom dans /... , et ils en ont choisi un compos? de deux caract?res non ?crivables. Ensuite, pour des raisons de mise au point, ce script affiche ses actions, qui incluent la manipulation de fichiers et le lancement de programmes situ?s dans /packages. De la sorte, les deux caract?res non ?crivables sont ?mis, et dans la mesure o? mon impl?mentation de la console noyau n'a pas d'objection ? ?crire des caract?res qui ne devraient pas pouvoir l'?tre, ces caract?res bizarres apparaissent ? l'?cran.)

Apr?s qu'init soit lanc?, il y a un ?chec...

Il faut de bons yeux pour rep?rer cela, mais c'est vrai. Juste apr?s l'installation, en entrant dans le niveau d'ex?cution 2, le dernier script d'init ?choue. C'est parce que l'installeur a eu besoin de faire son travail auparavant, donc le syst?me de fichiers qu'il tente de monter l'est d?j?. C'est compl?tement inoffensif, ignorez-le.

Manux peut-il ?tre install? dans une machine virtuelle?

Certainement, mais je n'ai jamais essay?.

Utilisation

Quel est mon mot de passe initial?

Laissez-moi deviner... Vous lisez cela sans l'avoir essay?, n'est-ce pas?

Comment peut-on passer root?

Manux n'a pas de notion d'utilisateur "root". Les privileges, actuellement non impl?ment?s, pourront ?tre donn?s ? n'importe quel utilisateur.

Cependant, sous Manux, le principe de base est que le droit d'acc?s implique le droit d'utilisation - c'est-?-dire que si vous pouvez acc?der ? une ressource, vous devriez pouvoir l'utiliser (pas forc?ment en ?criture, mais c'est un autre probl?me).

A titre d'exemple, sous Manux, /etc/shadow est en mode 666. Cela peut sembler la chose la plus diabolique jamais r?alis?e dans le monde des d?mons UNIX, mais aucun utilisateur non privil?gi? n'a d'acc?s direct ? ce fichier. Au lieu de cela, ils peuvent simplement le modifier par l'interm?diaire du programme "passwd", ce qui ne pose pas de probl?me. Et dans la mesure o? la possibilit? de lancer un programme n'implique pas l'acc?s ? son chroot, ils ne peuvent pas s'en servir pour y faire des modifications arbitraires.

Au passage, ceci explique aussi pourquoi les bits SUID et SGID des ex?cutables sont ignor?s : avec cette architecture, ils sont compl?tement inutiles.

Qu'en est-il de l'utilisateur "sys"?

L'UID 0 correspond ? l'utilisateur "sys", et le GID 0 au groupe "sys". Ces identifiants correspondent au syst?me d'exploitation, et ne doivent pas utilis?s par qui que ce soit d'autre. Additionnellement, l'utilit? de ces identifiants a ?t? d?lib?r?ment r?duite : ils ne peuvent ex?cuter aucun programme ayant un cache d?pendant de l'utilisateur ou des fichiers de configuration sp?cifiques ? un utilisateur (comme vim ou less).

J'ai fait cela pour deux raisons. Premi?rement, aucun programme du syst?me d'exploitation ne devrait avoir un comportement influen?able par des donn?es sp?cifiques ? un utilisateur; deuxi?menent, cela ?vite que des utilisateurs tentent d'utiliser l'UID 0 malgr? tout, dans la mesure o? sa r?activation compl?te requiert d'importantes modifications au syst?me d'exploitation. Manux n'est pas un UNIX v?ritable, et ne peut pas ?tre utilis? de la m?me fa?on - m?me s'il se trouve ?tre en compatibilit? binaire native avec Linux.

Une fois logu?, comment dois-je proc?der pour monter mon r?pertoire personnel Linux?

Supposons qu'il soit sur la partition que Linux nomme /dev/sda6. Tout d'abord, faites un point de montage

$ mkdir mnt5

Puis cr?ez un fichier de p?riph?rique en mode bloc repr?sentant votre partition :

$ mknod hd0,5 b 0 0

Th?oriquement, ici, vous devriez associer ce fichier au module g?rant le p?riph?rique, mais ce n'est pas encore programm? pour les partitions du disque dur, donc un bricolage du noyau les identifie ? partir de leur nom - vous n'avez donc rien ? faire. Passez ensuite administrateur:

$ admin

Montez cette partition :

# smount -t ext2 hd0,5 mnt5

Et quittez le mode administrateur :

# unadmin

Et si notre r?pertoire personnel n'est pas formatt? en ext2?

Actuellement, Manux ne peut monter que des partitions ext2... Mais il se trouve qu'ext3 n'est autre qu'ext2j, une variante journalis?e d'ext2. Vous pouvez sans danger la monter comme de l'ext2.

Les autres partitions, en revanche, demeureront immontables.

Qu'est-ce que c'est, ces commandes "admin" et "unadmin"?

De simples fonctions de l'interpr?teur de commande (bash), con?ues pour ?viter les fautes de frappes. Elles se contentent d'ajouter /sbin et /usr/sbin ? votre PATH et de changer votre invite de commande. En particulier, elles n'alt?rent pas vos privil?ges. Vous pouvez les modifier comme vous le souhaitez.

Qu'est-ce que c'est que "smount"?

"smount" est une variante de mount qui ne v?rifie pas l'UID de son appelant. Oui, c'est sans danger - sous Manux du moins. Parce que si vous pouvez acc?der ? un fichier sp?cial repr?sentant un disque dur en lecture-?criture, vous pouvez le monter.

Comment d?monte-t-on une partition?

Euh... D?sol?, ce n'est pas encore programm?.

Comment recompile-t-on le noyau Manux sous lui-m?me?

Il faut utiliser "./make" au lieu de "make". En effet, make ?tant chroot?, il n'a pas acc?s aux programmes requis pour le compiler (ou compiler quoi que ce soit d'autre); il faut donc les injecter dans son arborescence.

Vous voulez voir comment "./make" proc?de? Tapez "cat ./make" :-) .

Pourquoi "man" n'est-il pas port??

Un probl?me technique. Tant que /dev/env/HOME n'existera pas, il sera impossible de faire d?pendre le MANPATH de l'utilisateur. Or c'est indispensable, parce que nous ne pouvons pas donner acc?s ? des pages arbitraires aux utilisateurs : cela constituerait une fuite d'information (les informant qu'un certain logiciel ou une certaine version ? laquelle il ou elle n'a pas acc?s sont bel et bien install?s).

Comment patche-t-on le noyau dynamiquement?

# patch_kernel

Le script scripts/maj_noyau l'illustre bien (il met ? jour le noyau ? l'aide du code qui vient d'?tre compil?. Rassurez-vous, il n'est pas lanc? automatiquement).

Si vous voulez vous amuser avec cela, essayez d'injecter l'?ph?module "hw" (?ph?modules/divers/hw.c), puis d'utiliser "test_sys".

Comment arr?te-t-on le syst?me?

$ admin
# init 0 ; exit

Variante:

$ admin
# exec init 0

Comment peut-on utiliser un clavier non fran?ais?

Si vous utilisez un clavier allemand ou anglo-saxon standard, il y a d?j? une carte du noyau pr?vue. ? l'installation, sous Linux, pr?cisez simplement --lang [de|en], et la carte requise sera charg?e au d?marrage.

Pour les autres, ou bien si vous rep?rez que j'ai fait une erreur dans l'une des cartes pr?c?dentes, je crains qu'il ne vous faille modifier ou reprogrammer votre carte du clavier vous-m?me. Les cartes des claviers sont situ?s dans le r?pertoire include/a0/kbd_maps du code source du noyau, et les ?ph?modules qui les chargent sont les fichiers ephemodules/misc/kbd_* . Une fois que vous avez cr?? une carte du clavier et compil? un nouvel ?ph?module kbd_XX pour la charger, faites simplement un patch_kernel kbd_XX, et le clavier sera reconfigur?.

Quel est le risque de perte de donn?es?

Bonne question. Distinguons trois cas de figure :

Le premier type de perte de donn?es se produit, rarement, mais il se produit. Il peut ?tre d? ? des probl?mes avec le pilote de disque dur, ide (ce probl?me a compl?tement disparu sur mes ordinateurs, mais ?videmment, cela ne signifie rien quant au v?tres), ou ? une panique du noyau survenant avant de sauvegarder un texte venant d'?tre tap? (?a, c'est devenu rarissime, et de toutes fa?ons, ce n'est pas bien grave).

Le second type de perte de donn?es m'est arriv?... Une fois, il y a des ann?es, lorsque je d?boguais le module ext2. Apparemment, j'ai perdu quelques fichiers dans ma distributions Linux, mais ils ne devaient pas ?tre trop importants puisque je n'ai jamais trouv? quelle portion avait ?t? endommag?e. Depuis, non, je n'ai jamais rencontr? de perte de donn?es du second type.

Quant au troisi?me, ma foi, que dire... Prenez garde ? rm -rf, cette commande est efficace sur les deux syst?mes.

Cela dit, le fait que moi, je n'aie jamais rencontr? de probl?mes dans ce domaine ne garantit pas que vous, vous n'en rencontrerez pas. Et, dans la mesure o? sauvegarder ses donn?es est de toutes fa?on une bonne id?e, si vous comptez l'utiliser sur une machine r?elle, vous devriez penser ? faire une sauvegarde (ou ? utiliser une machine s?par?e si vous en avez une).

Divers

Pourquoi ne peut-on utiliser qu'un seul format de paquetages?

En fait, le syst?me de paquetages est vraiment int?gr? ? l'architecture du syst?me. Par exemple, c'est ? l'aide des d?pendances des programmes que leurs chroots sont construits, en ?tablissant des liens mat?riels vers les bons fichiers et r?pertoires dans leur racine. Par cons?quent, aucun autre format de paquetage ne peut le remplacer.

Pourquoi rejeter toutes les interfaces graphiques existantes?

A nouveau pour des raisons techniques (bien que l'uniformit? de la plateforme soit aussi une motivation). Si on ne place pas le serveur graphique en espace noyau, il devient impossible d'exprimer des contraintes du genre "l'application A a le droit de faire une copie d'?cran, mais pas l'application B, et quant ? C, elle en a le droit, mais lorsqu'elle en fait une, elle doit ?tre falsifi?e de telle sorte qu'elle se croie la seule application active".

De plus, les serveurs graphiques ont besoin d'interagir avec le mat?riel de fa?on bien trop importante pour qu'on les place en espace utilisateur.

Cependant, ces consid?rations n'excluent pas que ce serveur graphique soit rendu partiellement ou totalement compatible avec un autre, qu'il s'agisse d'X11, de Wayland, de Mir, ou autre. Sur ce point, je n'ai pas assez ?tudi? leurs interfaces pour pouvoir me prononcer.

Manux est-il un syst?me d'exploitation ? capabilit?s?

Effectivement. Mais je ne l'ai remarqu? qu'en lisant des documents ? leur sujet, donc ce n'?tait pas le but. C'est aussi la raison pour laquelle il est si diff?rent des autres syst?mes d'exploitations ? capabilit?s : il a plusieurs types de capabilit?s, et n'est pas strictement persistent. De plus, il ne v?rifie pas certaines propri?t?s habituelles des syst?mes d'exploitation ? capabilit?s, parce que la d?tention d'une capabilit? d'implique pas le droit d'en faire une copie. En effet, les capabilit?s ne sont pas ?valu?es in abstracto, mais en fonction de leur utilisateur.

Je croyais que les syst?mes d'exploitation ? capabilit?s ne pouvaient pas g?rer de fichiers...

C'est une autre de ses particularit?s. Si on voulait le d?crire en terme de capabilit?s, Manux consid?re les fichiers comme des ressources, les noms de fichiers comme des capabilit?s, les r?pertoires comme des ensembles de capabilit?s, et les arborescences de chroot comme l'ensemble des capabilit?s d'un programme.

Toutefois, certaines choses ne peuvent pas ?tre g?r?es ? l'aide de capabilit?s, comme le droit d'utiliser link(2), qui permettrait de copier les capabilit?s pass?es, ou le droit d'ignorer les UIDs/GIDs. Ces ?l?ments seront impl?ment?s ? l'aide de capabilit?s de style UNIX, qui ne sont pas des vraies capabilit?s mais des privil?ges.

Qu'en est-il de la documentation?

Ma foi, pour l'instant, il n'y en a pas beaucoup, parce que je n'en avais jamais besoin. Je compte y rem?dier, mais il y a tant de choses ? faire...

Soit dit en passant, je consid?re que la documentation fait partie int?grante du logiciel, donc si vous souhaitez ne contribuer qu'en termes de documentation, je n'y ai aucune objection. Simplement, si vous r?digez un document complet, merci de mentionner explicitement que vous acceptez son inclusion dans mon logiciel et sa distribution sous la Licence Manux.

Autre remarque, j'ai lu quelque part que la documentation ?tait la m?thode recommend?e pour permettre aux femmes de s'investir dans les projets libres. Je dois dire que je n'aime pas trop cela : les capacit?s de programmation des femmes ne sont pas intrins?quement inf?rieures ? celles des hommes, mais dans la mesure o? la pratique est la meilleure fa?on de progresser dans ce domaine, une telle approche entra?nera une inf?riorit? de facto, ainsi qu'une exclusion du domaine int?ressant r?ellement certaines d'entre elles. Par cons?quent, mesdames et mesdemoiselles, si vous le souhaitez, faites de la documentation, mais si vous pr?ferez la programmation, lancez gcc!

Pourquoi se focaliser sur les exploits jour z?ro?

Qui peut le plus peut le moins. Si l'on peut encaisser un exploit jour z?ro, alors on peut aussi encaisser un exploit publi? ou g?rer un logiciel agressif. Et, en tant que gagnant de l'?dition 2007 du concours de programmation sournoise en C, je peux vous garantir que ce ne sont pas les relectures du code source qui peuvent prot?ger contre cela.

A part pour apprendre, pourquoi avoir cr?? ce logiciel?

Ma foi, soyons honn?te : j'estime qu'en mati?re de s?curit?, la situation de l'informatique actuelle est catastrophique. Le moindre probl?me dans le plus petit logiciel peut donner acc?s ? l'ensemble des donn?es d'une personne! Et tout le monde semble trouver cela normal, comme s'il n'y avait rien ? faire.

En plus, le d?sordre dans l'organisation de l'espace utilisateur est frappant : un attaquant peut cacher un fichier n'importe o?, il y a des fichiers hors paquetages un peu partout. Allez donc d?terminer ce qui provient de quoi!

Et les probl?mes de compatibilit? entre logiciels et entre biblioth?ques sont aga?ants, et les incompatibilit?s entre distributions une tr?s mauvaise chose pour le monde du libre.

Lorsque je m'y suis mis, je pensais que, puisque personne ne l'avait jamais fait, cela devait ?tre impossible, et que lorsque je m'y essayerais, je d?couvrirais pourquoi. Et bien, rien du tout, ?a marche tr?s bien!

Lorsque j'ai r?alis? cela, j'ai r?solu de le finir, et de le rendre op?rationnel. On verra bien s'il a du succ?s ou pas, mais dans tous les cas, je consid?re qu'il constitue une avanc?e suffisamment importante en mati?re d'architecture des syst?mes d'exploitation pour justifier les efforts que je lui ai consacr?s.

Index de la documentation
Page principale