Для чего предназначен ENOANO (без анода)?


11

Этот вопрос только для праздного любопытства, но я подозреваю, что другие будут любопытны также. Просматривая errno.h (в Linux 2.6), я нашел ENOANO "Без анода". Нет никаких признаков ошибки "Нет катода". Просматривая соответствия исходного кода ядра, кажется, что оно не используется устройством, называемым анодом, только как намеренно странный код ошибки некоторыми неясными драйверами устройств. Поиск в Google ничего интересного не выявил.

Может быть, это шутка? Это определено в стандартном документе, таком как POSIX, но бесполезно?


3
Это ошибка, которую вы получаете, если забыли подключить блок питания.
Златовласка

2
Похоже, что это происходит из конвергентных систем Unix. Archive.org/stream/…
Стефан Шазелас

1
Ах, это выглядит правдоподобно, @ Стефан Шазелас. Похоже, что анод является а-узлом, как инод.
Дэн Шеппард

Ответы:


14

ENOANOпоявился в Linux 0.97 , выпущенном в 1992-08-01. В течение очень долгого времени он нигде не использовался; с тех пор он время от времени использовался в некоторых драйверах как «я не знал, какой код ошибки использовать». Это теперь только в uapi/asm-generic/errno.h(то есть в заголовочных файлах для пользовательских программ ), но оно было перемещено туда автоматически, так что это не указывает на то, заботится ли кто-нибудь об этом.

errno.hЗаголовок 0,97 получил некоторое внимание , потому что это один из файлов , которые SCO утверждала , была скопирована из Unix SVR4 . Во время претензий ШОС Линус Торвальдс не помнил, как этот файл был собран ; позже он обнаружил, что он был сгенерирован из значений, известных libc 2.2.2 . Это была библиотека C для Linux, распространяемая с портом GCC для Linux . Эта библиотека, вероятно, включала бы коды ошибок из всех разновидностей Unix, которые были в то время.

Стефан Шазелас обнаружил, что термин «анод» использовался в конвергентном / Берроуз Unix (CENTIX) в качестве синонима инода . Я нашел другую книгу (с 1993 года), в которой «анод» упоминается как вариант «инода», но, кроме этого, он даже тогда был довольно неясным. Solariserrno.h подтверждает конвергентное происхождение: он перечисляет ENOANO в разделе «конвергентная возвращает ошибку» (вместе с несколькими другими кодами ошибок с эзотерическими описаниями , но , по крайней мере смутно понятный , как «недействительным обмен», «обмен полного» или «недействительным слот» которые используют еще несколько водителей).

Таким образом, ENOANO, вероятно, указал, что либо ядро ​​исчерпало память для inode, либо что таблица inode файловой системы была переполнена в некотором коммерческом Unix в 1980-х годах. Тот Unix теперь забыт, его терминология теперь забыта, и из-за некоторых странностей код ошибки остался без изменений.

По крайней мере, это не « lp0 в огне ».


2
У меня есть копия errno.h 1988 года из Xenix 2.3.1, в которой упоминается группа ошибок в разделе под названием «Конвергентный возврат ошибок». То же самое там .
Стефан Шазелас

0

Интересно, какова связь с патентом «Писать где угодно, файловая система EP 1003103 A2», который, кажется, описывает то, что мы сейчас называем распределенной файловой системой.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.