À quoi sert ENOANO (sans anode)?

11

Cette question est simplement pour la curiosité oiseuse, mais je soupçonne que d'autres seront aussi curieux. En cherchant dans errno.h (de Linux 2.6), j'ai trouvé ENOANO "No Anode". Il n'y a aucun signe d'erreur "Pas de cathode". En examinant les concordances des sources du noyau, il ne semble pas être utilisé par un périphérique appelé anode, uniquement comme code d'erreur délibérément délirant par certains pilotes de périphérique obscurs. La recherche sur Google n'a rien révélé d'intéressant.

C'est peut-être une blague? Est-il défini dans un document normatif tel que POSIX, mais inutile?

Dan Sheppard
la source
3
C'est l'erreur que vous obtenez si vous oubliez de brancher une alimentation.
goldilocks
2
Semble provenir de systèmes Unix convergents archive.org/stream/…
Stéphane Chazelas
1
Ah, ça a l'air plausible, @ Stéphane Chazelas. Il ressemble à une anode est un a-noeud, comme un inode.
Dan Sheppard

Réponses:

14

ENOANOest apparu dans Linux 0.97 , qui a été publié le 1992-08-01. Pendant très longtemps, il n'a été utilisé nulle part; il a depuis été utilisé de temps en temps dans certains pilotes comme «Je ne savais pas quel code d'erreur utiliser». Il est désormais uniquement dans uapi/asm-generic/errno.h(c'est-à-dire dans les fichiers d' en- tête des programmes utilisateur ), mais il y a été déplacé automatiquement, donc cela ne veut pas dire si quelqu'un s'en soucie.

L'en- errno.htête en 0.97 a attiré l'attention car c'est l'un des fichiers qui, selon SCO, a été copié depuis Unix SVR4 . Au moment des réclamations du SCO, Linus Torvalds ne se souvenait pas comment ce dossier avait été assemblé ; il a découvert plus tard qu'il avait été généré à partir de valeurs connues par la libc 2.2.2 . Il s'agissait d'une bibliothèque C pour Linux, distribuée avec un port de GCC pour Linux . Cette bibliothèque aurait probablement inclus des codes d'erreur de toutes sortes de variantes Unix qui existaient à l'époque.

Stéphane Chazelas a découvert que le terme «anode» était utilisé dans Convergent / Burroughs Unix (CENTIX) comme synonyme d' inode . J'ai trouvé un autre livre (de 1993) mentionnant «anode» comme une variante de «inode», mais à part cela, il semble avoir été assez obscur même à l'époque. Le Solariserrno.h confirme l'origine convergente: il répertorie ENOANO dans une section intitulée «Retours d'erreur convergents» (avec quelques autres codes d'erreur avec des descriptions ésotériques mais au moins vaguement compréhensibles comme «échange invalide», «échange complet» ou «emplacement invalide» que quelques autres pilotes utilisent).

Donc, ENOANO a probablement indiqué que le noyau était à court de mémoire pour les inodes, ou que la table d'inodes du système de fichiers était pleine, dans certains Unix commerciaux dans les années 1980. Cet Unix est maintenant oublié, sa terminologie est maintenant oubliée et, en raison de certaines bizarreries, le code d'erreur est resté.

Au moins, ce n'est pas « lp0 en feu ».

Gilles 'SO- arrête d'être méchant'
la source
2
J'ai une copie d'un errno.h 1988 de Xenix 2.3.1 mentionnant un tas d'errnos dans une section intitulée "Retours d'erreur convergents". Même chose là-dedans .
Stéphane Chazelas
0

Je me demande quelle est la relation avec le brevet «Ecrire n'importe où dans le système de fichiers EP 1003103 A2», qui semble décrire ce que nous appelons maintenant le système de fichiers distribué.

https://www.google.com/patents/EP1003103A2

Kerolasa
la source