A cosa serve ENOANO (No Anode)?


11

Questa domanda è solo per curiosità oziosa, ma sospetto che anche gli altri saranno curiosi. Cercando su errno.h (di Linux 2.6) ho trovato ENOANO "No Anode". Non vi è alcun segno di errore "Nessun catodo". Osservando le concordanze dei sorgenti del kernel, non sembra essere utilizzato da un dispositivo chiamato anodo, ma solo come un codice di errore deliberatamente instabile da alcuni driver di dispositivo oscuri. Google non ha rivelato nulla di interessante.

È forse uno scherzo? È definito in un documento standard come POSIX, ma è inutile?


3
Questo è l'errore che si ottiene se si dimentica di collegare un alimentatore.
Riccioli d'oro,

2
Sembra provenire da sistemi unix convergenti archive.org/stream/…
Stéphane Chazelas,

1
Ah, sembra plausibile, @ Stéphane Chazelas. Sembra che un anodo sia un a-nodo, come un inodo.
Dan Sheppard,

Risposte:


14

ENOANOè apparso in Linux 0.97 , che è stato rilasciato il 1992-08-01. Per molto tempo, non è stato usato da nessuna parte; da allora è stato usato di tanto in tanto in alcuni driver come "Non sapevo quale codice di errore usare". Ora è solo in uapi/asm-generic/errno.h(cioè nei file di intestazione per i programmi userland ), ma è stato spostato lì automaticamente, quindi questo non indica se a qualcuno importa.

L' errno.hintestazione in 0.97 ha attirato l'attenzione perché è uno dei file che SCO ha affermato sia stato copiato da Unix SVR4 . Al momento delle affermazioni della SCO, Linus Torvalds non ricordava come fosse stato assemblato quel file ; in seguito ha scoperto che era stato generato da valori noti da libc 2.2.2 . Questa era una libreria C per Linux, distribuita con una porta di GCC per Linux . Quella libreria avrebbe probabilmente incluso codici di errore di tutti i tipi di varianti unix in circolazione in quel momento.

Stéphane Chazelas ha scoperto che il termine "anodo" è stato usato in Convergent / Burroughs Unix (CENTIX) come sinonimo di inode . Ho trovato un altro libro (dal 1993) che menziona "anodo" come una variante di "inode", ma a parte questo, sembra essere stato abbastanza oscuro anche allora. Il Solariserrno.h conferma l'origine Convergente: elenca ENOANO in una sezione intitolata "Restituzioni errori convergenti" (insieme ad alcuni altri codici di errore con descrizioni esoteriche ma almeno vagamente comprensibili come "scambio non valido", "scambio completo" o "slot non valido" che alcuni altri driver usano).

Quindi ENOANO probabilmente ha indicato che o il kernel aveva esaurito la memoria per gli inode o che la tabella degli inode del filesystem era piena, in alcuni Unix commerciali negli anni '80. Che Unix è ora dimenticato, la sua terminologia è ora dimenticata e, a causa di alcune stranezze, il codice di errore è rimasto.

Almeno non è " lp0 in fiamme ".


2
Ho una copia di un errno.h del 1988 da Xenix 2.3.1 che menziona un mucchio di errnos in una sezione intitolata "Convergent Error Returns". Lo stesso in .
Stéphane Chazelas,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.