Wofür soll ENOANO (No Anode) verwendet werden?


11

Diese Frage dient nur der müßigen Neugier, aber ich vermute, dass auch andere neugierig sein werden. Beim Durchsuchen von errno.h (von Linux 2.6) habe ich ENOANO "No Anode" gefunden. Es gibt keine Anzeichen für einen Fehler "Keine Kathode". Wenn man sich die Kernel-Quellkonkordanzen ansieht, scheint es nicht von einem Gerät namens Anode verwendet zu werden, sondern nur von einigen obskuren Gerätetreibern als absichtlich verrückter Fehlercode. Googeln ergab nichts Interessantes.

Ist es vielleicht ein Witz? Ist es in einem Standarddokument wie POSIX definiert, aber nutzlos?


3
Dies ist der Fehler, den Sie erhalten, wenn Sie vergessen, ein Netzteil anzuschließen.
Goldlöckchen

2
Scheint von konvergenten Unix-Systemen zu kommen archive.org/stream/…
Stéphane Chazelas

1
Ah, das sieht plausibel aus, @ Stéphane Chazelas. Es sieht so aus, als wäre eine Anode ein A-Knoten, wie eine Inode.
Dan Sheppard

Antworten:


14

ENOANOerschien in Linux 0.97 , das am 01.08.1992 veröffentlicht wurde. Lange Zeit wurde es nirgendwo benutzt; Es wurde seitdem ab und zu in einigen Treibern als "Ich wusste nicht, welchen Fehlercode ich verwenden sollte" verwendet. Es ist jetzt nur in uapi/asm-generic/errno.h(dh in den Header-Dateien für Userland-Programme ), aber es wurde automatisch dorthin verschoben, sodass dies kein Hinweis darauf ist, ob sich jemand darum kümmert.

Der errno.hHeader in 0.97 erhielt einige Aufmerksamkeit, da es sich um eine der Dateien handelt, von denen SCO behauptete, dass sie von Unix SVR4 kopiert wurden . Zum Zeitpunkt der SCO-Behauptungen erinnerte sich Linus Torvalds nicht daran, wie diese Datei zusammengestellt worden war . er fand später heraus, dass es aus Werten erzeugt worden war, die libc 2.2.2 bekannt waren . Dies war eine C-Bibliothek für Linux, die mit einem Port von GCC für Linux verteilt wurde . Diese Bibliothek hätte wahrscheinlich Fehlercodes von allen Arten von Unix-Varianten enthalten, die es zu dieser Zeit gab.

Stéphane Chazelas stellte fest, dass der Begriff „Anode“ in Convergent / Burroughs Unix (CENTIX) als Synonym für Inode verwendet wurde . Ich fand ein anderes Buch (aus dem Jahr 1993), in dem "Anode" als Variante von "Inode" erwähnt wurde, aber ansonsten scheint es selbst dann ziemlich dunkel gewesen zu sein. Die Solariserrno.h bestätigen die Herkunft Convergent: Es listet ENOANO in einem Abschnitt mit dem Titel „Convergent Fehler Returns“ (zusammen mit einigen anderen Fehlercodes mit esoterischen Beschreibungen aber zumindest vage verständlich wie „ungültig Austausch“, „Austausch voll“ oder „invalid slot“ welche ein paar weitere Treiber verwenden).

Daher gab ENOANO wahrscheinlich an, dass entweder dem Kernel der Speicher für Inodes ausgegangen war oder dass die Inode-Tabelle des Dateisystems in einigen kommerziellen Unix-Versionen in den 1980er Jahren voll war. Das Unix ist jetzt vergessen, seine Terminologie ist jetzt vergessen, und aufgrund einiger Eigenheiten ist der Fehlercode geblieben.

Zumindest ist es nicht " lp0 on fire ".


2
Ich habe eine Kopie einer 1988 errno.h von Xenix 2.3.1, in der eine Reihe von Errnos unter dem Titel "Convergent Error Returns" erwähnt werden. Gleich dort drin .
Stéphane Chazelas

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.