это linux: все является файлом, снижающим производительность?

Это должно работать, я только что протестировал его в ksh :

if [[ $((m-1)) -eq 1 ]]; then echo "Equal"; fi

Работает и с -gt.

0
20.04.2017, 18:23
2 ответа

Нет, я бы не сказал, что есть штрафы по вводу-выводу.

Возможно, эта фраза является чрезмерным упрощением. Но внутри устройств ядра, файлов, на все можно ссылаться с помощью файлового дескриптора, и все дескрипторы отображаются на виртуальную файловую систему, и, как и в случае с файловой системой, можно ссылаться на конкретный файл с помощью имя (дескриптор).

Таким образом, ядро ​​не обязательно будет передавать, например, данные / proc / vmstat через файловую систему диска, однако вам не нужно делать ничего особенного для чтения статистики, вы можете прочитать данные с помощью команды cat .

try

watch head /proc/vmstat

Вы увидите, что числа меняются каждый интервал.

Очевидно, что некоторые файлы имеют особые характеристики и могут потребовать дополнительных операций для управления, чем простое открытие / закрытие / чтение / запись / поиск, например, установка скорости передачи на последовательном устройстве имеет смысл, но не на файле на диске.

1
28.01.2020, 02:14

Все может быть файлом, но не все реально.

Рассмотрим содержимое /proc. В моей системе Linux есть файл /proc/uptime, текущее содержимое которого:

831801.89 1241295.64

Если я cat файл снова, он будет содержать другие числа. Мой жесткий диск подключен только для чтения, поэтому не может быть такого, что что-то записывает эти числа на диск каждую долю секунды. На самом деле, ничего в каталоге /proc на диске нет. Каждое взаимодействие с файлом в этом каталоге просто запускает код ядра, что обусловлено природой procfs.

Затем есть временные файлы. Скорее всего, ваш /tmp смонтирован tmpfs, то есть его содержимое хранится в оперативной памяти, а не на диске.

Еще одно интересное место - /dev/tcp, для связи с сетью. В некоторых системах он существует только под bash, но не под другими оболочками, поэтому он не может быть на диске в этих системах.

Все эти примеры показывают, что файловая система и жесткий диск разделены, и философия "Все есть файл" не влияет на производительность из-за скорости ввода-вывода.

7
28.01.2020, 02:14

Теги

Похожие вопросы