¿Para qué está destinado ENOANO (sin ánodo)?


11

Esta pregunta es simplemente por curiosidad ociosa, pero sospecho que otros también serán curiosos. Buscando a través de errno.h (de Linux 2.6) encontré ENOANO "No Anode". No hay signos de un error "Sin cátodo". Mirando a través de las concordancias de la fuente del núcleo, no parece ser utilizado por un dispositivo llamado ánodo, solo como un código de error deliberadamente loco por algunos controladores de dispositivo oscuros. Buscar en Google no reveló nada de interés.

¿Es acaso una broma? ¿Está definido en un documento estándar como POSIX, pero no sirve?


3
Este es el error que obtiene si olvida conectar una fuente de alimentación.
Ricitos

2
Parece provenir de sistemas unix convergentes archive.org/stream/…
Stéphane Chazelas

1
Ah, eso parece plausible, @ Stéphane Chazelas. Parece que un ánodo es un nodo a, como un inodo.
Dan Sheppard

Respuestas:


14

ENOANOapareció en Linux 0.97 , que fue lanzado el 1992-08-01. Durante mucho tiempo, no se usó en ninguna parte; desde entonces se ha usado de vez en cuando en algunos controladores como "No sabía qué código de error usar". Ahora solo está en uapi/asm-generic/errno.h(es decir, en los archivos de encabezado para los programas de usuario ), pero se movió allí automáticamente, por lo que no hay indicación de si a alguien le importa.

El errno.hencabezado en 0.97 llamó la atención porque es uno de los archivos que SCO afirmó que se copió de Unix SVR4 . En el momento de las reclamaciones de la OCS, Linus Torvalds no recordaba cómo se había reunido ese archivo ; más tarde descubrió que se había generado a partir de valores conocidos por libc 2.2.2 . Esta era una biblioteca C para Linux, distribuida con un puerto de GCC para Linux . Esa biblioteca probablemente habría incluido códigos de error de todo tipo de variantes de Unix que existían en ese momento.

Stéphane Chazelas descubrió que el término "ánodo" se usaba en Convergent / Burroughs Unix (CENTIX) como sinónimo de inodo . Encontré otro libro (de 1993) que menciona "ánodo" como una variante de "inodo", pero aparte de eso, parece haber sido bastante oscuro incluso entonces. El Solariserrno.h confirma el origen convergente: enumera ENOANO en una sección titulada "Devoluciones de errores convergentes" (junto con algunos otros códigos de error con descripciones esotéricas pero al menos vagamente comprensibles como "intercambio no válido", "intercambio completo" o "ranura no válida" que usan algunos controladores más).

Entonces ENOANO probablemente indicó que el núcleo se había quedado sin memoria para inodos, o que la tabla de inodos del sistema de archivos estaba llena, en algunos Unix comerciales en la década de 1980. Ese Unix ahora está olvidado, su terminología ahora está olvidada y, debido a alguna peculiaridad, el código de error se ha mantenido.

Al menos no es " lp0 en llamas ".


2
Tengo una copia de un errno.h de 1988 de Xenix 2.3.1 que menciona un montón de errores en una sección titulada "Devoluciones de errores convergentes". Lo mismo allí .
Stéphane Chazelas

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.