O que é o ENOANO (No Anode) destinado a ser utilizado?

7

Esta pergunta é meramente por curiosidade ociosa, mas suspeito que outros também serão curiosos. Pesquisando através do errno.h (do Linux 2.6) eu encontrei o ENOANO "No Anode". Não há sinal de erro "Nenhum cátodo". Analisando as concordâncias de fonte do kernel, ele não parece ser usado por um dispositivo chamado anodo, apenas como um código de erro deliberadamente insano por alguns drivers de dispositivos obscuros. Googling não revelou nada de interesse.

Talvez seja uma piada? É definido em um documento de padrões como o POSIX, mas sem uso?

    
por Dan Sheppard 11.11.2014 / 17:32

2 respostas

11

ENOANO apareceu em Linux 0.97 , que foi lançado em 1992-08 -01. Por muito tempo, não foi usado em nenhum lugar; Desde então, ele é usado agora e, em alguns drivers, como "Eu não sabia qual código de erro usar". É agora somente em uapi/asm-generic/errno.h (ou seja, nos arquivos de cabeçalho para os programas de área de usuário ), mas ele foi movido para lá automaticamente, o que não é uma indicação se alguém se importa com isso.

O cabeçalho errno.h em 0,97 tenho alguma atenção porque é um dos arquivos que SCO reivindicado foi copiado do Unix SVR4 . Na época das reivindicações SCO, Linus Torvalds não se lembrar de como o arquivo tinha sido montado ; Mais tarde, ele descobriu que ele havia sido gerado a partir de valores conhecidos pela libc 2.2.2 . Esta foi uma biblioteca C para Linux, distribuída com uma porta do GCC para Linux . Essa biblioteca provavelmente teria incluído códigos de erro de todos os tipos de variantes unix que existiam na época.

Stéphane Chazelas encontrados que o termo "anodo" foi usado em Convergent / Burroughs Unix (CENTIX) como sinônimo de inode . Eu encontrei outro livro (de 1993) mencionando" ânodo "como uma variante de" inode ", mas além disso, parece ter sido bastante obscuro até então. A Solaris errno.h confirma a origem Convergent: ele lista ENOANO em uma seção intitulada "Convergent Error Returns" (juntamente com alguns outros códigos de erro com descrições esotéricas, mas pelo menos vagamente compreensíveis como "troca inválida", "troca completa" ou "slot inválido" que mais alguns motoristas usam).

Então ENOANO provavelmente indicou que ou o kernel ficou sem memória para inodes, ou que a tabela de inodes do sistema de arquivos estava cheia, em algum Unix comercial nos anos 80. Esse Unix agora é esquecido, sua terminologia é agora esquecida e, devido a alguma peculiaridade, o código de erro permaneceu por aqui.

Pelo menos não é " lp0 em chamas ”.

    
por 12.11.2014 / 03:42
0

Gostaria de saber qual é a relação com o layout do sistema de arquivos 'Write anywhere' Patente EP 1003103 A2 ', que parece descrever o que hoje chamamos de sistema de arquivos distribuídos.

link

    
por 02.10.2017 / 22:34