8

This question is merely for idle curiosity, but I suspect others will be curious as well. Searching through errno.h (of Linux 2.6) I found ENOANO "No Anode". There is no sign of a "No cathode" error. Looking through kernel source concordances, it doesn't seem to be used by a device called an anode, only as a deliberately whacky error code by some obscure device drivers. Googling revealed nothing of interest.

Is it maybe a joke? Is it defined in a standards document such as POSIX, but of no use?

  • 2
    This is the error you get if you forget to attach a power supply. – goldilocks Nov 11 '14 at 17:26
  • 2
    Seems to be coming from convergent unix systems archive.org/stream/… – Stéphane Chazelas Nov 11 '14 at 18:11
  • 1
    Ah, that looks plausible, @Stéphane Chazelas. It looks like an anode is an a-node, like an inode. – Dan Sheppard Nov 11 '14 at 19:11
12

ENOANO appeared in Linux 0.97, which was released on 1992-08-01. For a very long time, it wasn't used anywhere; it's since then been used now and then in some drivers as “I didn't know what error code to use”. It's now only in uapi/asm-generic/errno.h (i.e. in the header files for userland programs), but it was moved there automatically, so that's no indication of whether anybody cares about it.

The errno.h header in 0.97 got some attention because it is one of the files that SCO claimed was copied from Unix SVR4. At the time of the SCO claims, Linus Torvalds didn't remember how that file had been assembled; he later found that it had been generated from values known by libc 2.2.2. This was a C library for Linux, distributed with a port of GCC for Linux. That library would probably have included error codes from all kinds of unix variants that were around at the time.

Stéphane Chazelas found that the term “anode” was used in Convergent/Burroughs Unix (CENTIX) as a synonym of inode. I found another book (from 1993) mentioning “anode” as a variant of “inode”, but other than that, it seems to have been pretty obscure even then. The Solaris errno.h confirms the Convergent origin: it lists ENOANO in a section titled “Convergent Error Returns” (together with a few other error codes with esoteric descriptions but at least vaguely comprehensible like “invalid exchange”, “exchange full” or “invalid slot” which a few more drivers use).

So ENOANO probably indicated that either the kernel had run out of memory for inodes, or that the filesystem's inode table was full, in some commercial Unix in the 1980s. That Unix is now forgotten, its terminology is now forgotten, and due to some quirk the error code has stayed around.

At least it's not “lp0 on fire”.

  • 2
    I've got a copy of a 1988 errno.h from Xenix 2.3.1 mentioning a bunch of errnos under a section titled "Convergent Error Returns". Same in there. – Stéphane Chazelas Nov 12 '14 at 9:32
0

I wonder what is the relation with 'Write anywhere file-system layout EP 1003103 A2' patent, that seems to describe what we now call distributed file system.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.