Kernel Traffic
Latest | Archives | People | Topics
Wine
Latest | Archives | People | Topics
GNUe
Latest | Archives | People | Topics
Czech
Home | News | RSS Feeds | Mailing Lists | Authors Info | Mirrors | Stalled Traffic
 

Kernel Traffic #139 For 29 Oct 2001

By Zack Brown

Translated By:  Nicolas Parpandet

Table Of Contents

Introduction

Noam Chomsky gave an incredible lecture at MIT about the war, as part of MIT's Technology And Culture Forum. To listen to it, you'll need realplayer. Or check out the mp3 version of it. If anyone knows of an mp3 source, let me know. Here's a text transcript of the talk.

I recommend the talk very highly. For those of you unfamiliar with Chomsky, Google has a section on him.

Mailing List Stats For This Week

We looked at 973 posts in 4323K.

There were 408 different contributors. 166 posted more than once. 178 posted last week too.

The top posters of the week were:

1. Problèmes de Licences

17 Oct 2001 - 21 Oct 2001 (25 posts) Archive Link: "MODULE_LICENSE et EXPORT_SYMBOL_GPL"

People: Keith OwensAlexander ViroKai HenningsenNils PhilippsenJohn AlvordAlan Cox

Keith Owens en a assez, il décide de s'attaquer au problème. Il dit :

Il a eu beaucoup de confusion sur l-k (mailling liste linux kernel) à propos de MODULE_LICENSE et EXPORT_SYMBOL_GPL. Je vais essayer de faire simple.

Pas besoin de me mettre en copie de toutes vos discussions, aussi cela ne m'intéresse pas de connaître votre point de vue sur la GPL.

MODULE_LICENSE

MODULE_LICENSE() permet aux développeurs du noyau de repérer,"marquer", les modules dont le code source n'est généralement pas disponible. Cela signifie que seuls les fournisseurs du module sont à même de débogguer les problèmes, aussi envoyer vos rapports de boggues à eux, pas sur la l-k. La chaîne indiquant avec précision que le source est libre, est en cours d'élaboration

Un module sans licence doit être considéré comme propriétaire. Tous les modules n'ont pas encore un MODULE_LICENSE() mais ce sera bientôt le cas. Pour le code qui n'est pas en standard dans les sources du noyau, c'est au fournisseur du source de préciser la licence. Je recommande que les modules binaires aient une description du style :-

MODULE_LICENSE("Propriétaire. envoyer les boggues à martin.dupont@quelquepart")

Modutils "marque" le noyau comme corrompu dès lors qu'un module sans un MODULE_LICENSE() compatible GPL est chargé, en informant de la chaîne de licence associée, ainsi les utilisateurs savent où rapporter les boggues. Oops informe également du statut corrompu/marqué du noyau. Les développeurs du noyau peuvent alors décider si ils s'occupent ou non d'un rapport de boggue. Fin de l'histoire.

Quelqu'un fit alors la remarque suivante : qu'en est-il de la liaison de code propriétaire avec le noyau ?. Si on compile puis lie avec le noyau du code que l'on de distribue pas, croyez moi ou non, il y a une faille dans la GPL Rien ne peut vous empêcher de contruire votre propre noyau avec des modules binaires, pour les boggues se sera votre problème, et vous ne pourrez pas redistribuer le résultat.

EXPORT_SYMBOL_GPL

Certains développeurs du noyau n'aiment pas fournir une interface à leur code, pour ensuite voire leur interface utilisée par des modules binaires. Ils voient cela comme de l'appropriation de leur travail. Que vous soyez ou non d'accord avec ce point de vue n'a pas d'importance, la personne à qui appartient le copyright d'un code source décide de la manière dont son code peut être utilisé.

EXPORT_SYMBOL_GPL() permet aux nouvelles interfaces d'être définies comme accessibles uniquement aux modules compatibles GPL. Cela n'a pas de rapport avec la notion de "corruption"/marquage du noyau, c'est basé évidemment sur les chaînes de MODULE_LICENSE().

EXPORT_SYMBOL_GPL() peut seulement être utilisé pour les nouveaux symboles exportés. Linus l'a dit, "I believe the phrase involved killer penguins with chainsaws for anybody who changed existing exported interfaces." (NDT pour la traduction c'est plus cher..., ca doit être du genre : le premier qui touche à l'exportation des interfaces sera envoyé au pôle nord :) puis bouffé par les manchos. :), bref ne l'utilisez que pour les nouveaux symboles quoi !! )

Les appels systèmes ne sont pas touchés et ne peuvent l'être. Quiconque pense autrement n'a rien compris à la GPL. Les appels système permettent aux programmes d'accéder au noyau, personne n'a jamais prétendu qu'un programme uniquement fourni en binaire n'ait pas le droit d'utiliser les appels systèmes.

Alexander Viro ajouta:

... et si quelqu'un pense que remplacer

int foo(void *bar);
et
EXPORT_SYMBOL(bidon);

par

int __foo(void *bar, int baz);
static int foo(void *bar)
{

return __foo(bar, 0);
}
et
EXPORT_SYMBOL_GPL(__foo);

vous sauvera de la vengeance des manchos (cf plus haut), gardez à l'esprit que vous ne vous en tirerez pas comme cela. (NDT : traduction perso, mais l'esprit y est...)

Ailleurs, Kai Henningsen spécule, "Par ailleurs, on pourrait dire qu'utiliser EXPORT_SYMBOL_GPL rends votre code incompatible avec la GPL, à tel point que cela viole la clause "restrictions supplémentaires". Laquelle n'est pas valable tant qu'il ne s'agit *seulement* de votre code (les auteurs penvent faire différemment), mais cela *importe* si vous ajoutez du code GPL d'*autres* personnes (comme le reste du noyau), parce que c'est avec *leur* GPL que vous entrez en conflit..." Mais Nils Philippsen rétorqua, "Pas à moins -- qu'il n'y ait du code "(in)compatible avec la GPL" -- vous pouvez modifier (ou réécrire) du code GPL pour faire (ou ne pas faire) ce que vous voulez tant que cela reste GPL. Les restrictions supplémentaires de la GPL dont tu parles s'appliquent aux licences, pas à la technique. Et même plus, je peux dire que la glibc ne fonctionne pas avec des programmes comme "acroread" ou "vmware" etc.. (remarquez que je devrais dire "ne devrait pas fonctionner") et cela reste quand même en conformité avec la GPL tant que j'adhère à la GPL lors de la distribution."

Ailleurs, on expliqua que certains modules sont imcompatibles avec le nouveau système, et John Alvord répondit, "Linus dit que tous les points d'entrées actuels resteront non marqués. Ainsi, les modules existants ne seront pas affectés."

A un moment donné, David Lang affirma que BSD (sans la clause "advertisement" (NDT: publicitaire)) est compatible GPL et ne devrait donc pas marquer le noyau, mais Keith répondit:

La licence BSD (no advert licence) n'est pas considérée comme compatible GPL pour le noyau. Seule une licence double BSD/GPL ne "marque pas" le noyau, parce que le code est aussi disponible en GPL. Un module utilisant du code basé sur la licence "no avt" BSD, sera marqué.

Cela pose un problème pour certains modules du noyau qui sont en "no advt" BSD. Le mieux serait de les passer en BSD/GPL mais cela risque d'être impossible. Comme le code est toujours disponible, on peut les changer en

"BSD sans la clause 'advertisement', le source est dans l'arborescence du noyau"

et ajouter la chaîne à la liste qui ne "marque" pas. Le code "BSD no advert" qui n'est pas dans l'arborescence du noyau peut soit passer en BSD/GPL soit être marqué, le fournisseur choisira.

Alan Cox répondit, "BSD "no advertising" sans brevet lié avec du code GPL devient un binaire de même type que généré avec la GPL, aussi, je ne vois pas ou est le problème en marquant le module comme BSD/GPL"

2. Nouveau patche/correctif de préemption du noyau

20 Oct 2001 - 23 Oct 2001 (19 posts) Archive Link: "[PATCH] mise à jour du noyau-préemptif"

People: Robert LoveColin PhippsAndrew Morton

Robert Love annonca:

Testeurs Demandés :

les correctifs pour activer un noyau totalement préemptible sont disponibles sur : http://tech9.net/rml/linux pour les noyaux 2.4.10, 2.4.12, 2.4.12-ac3, et 2.4.13-pre5.

Voilà ce que c'est:

Un noyau préemptible. Cela réduit les temps de latences.

Ce qui est nouveau:

Les correctifs suivants permettent de détecter des variables par-CPU afin de les verouiller dans le cadre de la préemption.

Szonyi Calin a vu une grande amélioration avec ce correctif et demanda s'il pouvait être appliqué à la branche officielle des source, et Robert répondit peut-être dans la 2.5.

Colin Phipps rapporta un plantage avec le correctif. Il posta le oops et dit, "Cela arriva quand la machine était très chargée, j'ai juste quitté X, et j'ai été déloggué de la console, j'ai du faire 2 ctrl-d. " Andrew Morton répondit:

Cela a déjà été rapporté auparavant.

n_tty_receive_buf() met un caractère dans la queue du tty puis fait un appel à con_flush_chars(), qui modifie tty->driver_data.

Le problème est qu'il y a un moment pendant lequel le périphérique peut être fermé (spécialement si le caractère est "^D"!), et con_close() qui va mettre à zéro tty->driver_data. D'ou un déréférencement de pointeur null.

Je ne crois pas à cette explication parce que ce n'est pas le bon timing - la lecture n'est pas faite avant que flush ne soit appelé. Aussi, ce sera très difficile de reproduire ce bug. Cela vient probablement d'ailleurs. Mais un peut de rafistolage pourra sans doute le corriger.

Il posta un correctif; Robert ajouta qu'il avait aussi un correctif, mais que celui d'Andrew était beaucoup plus simple. Il proposa de l'envoyer à Colin si Andrew ne le faisait pas. Quelqu'un d'autre eut une question à propos de la version d'Andrew, mais il n'y eut pas de discussion.

3. Plus de Discussions à propos de la VM

22 Oct 2001 - 24 Oct 2001 (25 posts) Archive Link: "Re: VM"

People: Alan CoxMarcelo TosattiEd TomlinsonKeith OwensOliver Xymoron

Michael T. Babcock demanda si il était compliqué d'avoir le choix au moment de la compilation entre la version d'Andrea Arcangeli et celle de Rik van Riel. (NDT: à propos de la VM : gestion de la mémoire virtuelle), ainsi on pourrait essayer facilement l'une ou l'autre. Alan Cox répondit simplement, "Trop moche pour x raisons." Mike Fedyk suggéra que cela serait faisable pour la 2.5, et demanda s'il n'y avait pas moyen de le faire proprement. Marcelo Tosatti répondit, "Même si c'est fait proprement, c'est difficile. Cela entraîne trop de travail/lenteurs supplémentaires. Pour le 2.5 on arrivera sans doute à avoir des gens qui travaillent ensembles."

A ce moment, Daniel Phillips suggéra la possibilité que 'config' puisse appliquer des correctifs. Il dit que cela rendrait beaucoup plus facile à faire ce que demande Michael. Ed Tomlinson répondit, "Actuellement c'est_une_solution_qui_fonctionne. IBM le fait depuis des années pour la gestion de la 'VM' dans ses systèmes. Vous avez un fichier de base, quelques fichiers de contrôle, et une liste de correctifs. Quand vous allez compiler un nouveau noyau, les correctifs sont appliqués, et le source assemblé..." Keith Owens ajouta:

C'est plutôt kbuild que config qui doit être modifié. Je peux le faire facilement dans kbuild 2.5, je l'ai déjà fait autrefois. Mais cela ne marche plus lorsque vous avez des correctifs qui interfèrent entre-eux, sélectionnez une config ou l'autre et cela marche, mais sélectionnez les deux (s'ils ne sont pas exclusifs) et cela échoue.

Je n'ai pas la solution, mais le remède à l'interférence des correctifs est pire que mal que l'on tente de corriger, c'est pourquoi je n'ai pas mis mon correctif dans kbuild 2.5.

http://sourceforge.net/projects/kbuild

Ailleurs, Alan dit que dans la 2.5, il espère qu'il y aura un consensus sur la direction à suivre par rapport à la VM. Marcelo Roberto Jimenez dit, il n'y a peut être pas de solution unique, et Oliver Xymoron répondit, "Dans le cas ou nous ne pourrions décider laquelle des implémentations a les meilleures performances dans un laps de temps fini, la solution la plus simple l'emportera. Aussi, il y aura une décision."

4. Statut de supermount

24 Oct 2001 (6 posts) Archive Link: "statut de supermount?"

People: Jonas BerlinMarcelo TosattiAlan Cox

Shawn Walker fit remarquer que la plus récente version de supermount était faite pour le noyau 2.4.0; il demanda si quelqu'un l'avait porté sur un noyau plus récent, Jonas Berlin répondit:

J'ai envoyé un courriel (NDT :un email quoi !!) au responsable il y a six mois mais je n'ai pas eu de réponse. Aussi, j'ai amélioré le correctif moi même pour fonctionner avec les version 2.4.2, 2.4.4 et 2.4.5. A un moment j'ai basculé sur 2.4.4-ac9, que j'utilise encore sans problème, mais je n'ai pas le temps de le porter sur d'autres versions.

Je ne sais pas si quelqu'un a déjà fait quelque chose de similaire. Personnellement, j'ai initialement trouvé ce correctif dans le noyau de la Mandrake 7.2 (je crois), mais je ne sais pas s'ils l'utilisent encore. Je vérifierai. Quoi qu'il en soit, si personne n'est déjà en train de le faire, je ferai de mon mieux pour le porter sur de nouveaux noyaux, également sur la série des -ac, et si j'y arrive également sur les noyaux à venir.

Comme c'est la première fois que je maintiens du code dans le noyau, je serai heureux que vous m'indiquiez des ressources qui pourront m'aider à savoir quels sont les changements intervenus dans la série des 2.4. Je me rappelle qu'il y déjà eu des modifications entre la 2.4.0 et la 2.4.4 qui ont impliqué des changements dans le code, en partie en raison de correctifs sur la gestion des fs (principalement des modifs liées aux verrous).

Marcelo Tosatti répondit, "Dernièrement , Juan J. Quintela <quintela@fi.udc.es> portait supermount sur les 2.4.x. De ce que j'en ai entendu, ce n'est pas un travail facile : les correctifs déjà existants pour les 2.4.x ont pleins de problèmes." Et Christian Borntrager fit remarquer que Mandrake avait un supermount fonctionnel dans le 2.4.8 avec la Mandrake 8.1; et Alan Cox ajouta, "Sinon, vous pouvez aussi faire la même chose dans l'espace utilisateur grâce aux nettoyages fait par Al Viro dans la gestion du montage. Jettez un oeil sur volumagic ftp://ftp.linux.org.uk/pub/linux/alan/. c'est la preuve du concept"

 

 

 

 

 

 

Sharon And Joy
 

Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0.

Mirror provided by HKMirror. Sponsored by Porno Verzameling and webcamsex