На системном уровне вызов readdir(3)
используется для возврата потока записей каталога, пока не возникнет ошибка или этот список не закончится:
The readdir() function returns a pointer to the next directory entry in
the named directory stream dirp. It returns NULL upon reaching the end
of the directory or detecting an invalid seekdir() operation.
Сопоставление fs.readdir
с приведенным выше будет зависеть от того, как эта функция реализована в JavaScript; может быть способ вызвать fs.readdir
для получения отдельных записей каталога по очереди, а не считывать их все в память сразу.
readdir(3)
не является рекурсивным; он не будет проверять содержимое дочерних каталогов; для этого обычно используется вызов fts(3)
.Языки более высокого уровня могут использовать fts(3)
или вместо этого они могут вручную повторять последовательные вызовы opendir
, readdir
и closedir
для каждого нового дочернего каталога, найденного во время цикла readdir(3)
.
Конкретные реализации языка высокого уровня могут быть неэффективными для большого количества файлов; Я полагаю, что язык Go имеет параллельную рекурсивную реализацию файловой системы, и что за прошедшие годы в реализации были внесены различные исправления.
Точки монтирования в Solaris — это то же самое, что и в Linux, поэтому, если вы проводите исследования по этому вопросу, большая часть информации, которую вы найдете о Linux, должна применяться.
В Windows содержимое каждого диска становится доступным для ОС Windows путем создания буквы диска для этого диска, например C. :Затем вы можете получить доступ к C :\Windows или D :\MyStuff. Содержимое C :и D :хранится отдельно.
Файловые системы UNIX/Linux имеют единую файловую систему. Я упрощаю здесь некоторые вещи, но содержимое диска «монтируется» в единую файловую систему либо в корневой каталог «/», либо в какой-либо подкаталог под ним. Если Windows видит первый и второй диски как C :и D :, файловая система UNIX/Linux может видеть их как "/" и "/home".Подключения, которые выполняются автоматически во время загрузки, обычно перечислены в /etc/fstab
.
(В Solaris используется совсем другой способ разбиения диска на более мелкие «разделы», чем в Linux, все, что вы видите о разбиении на разделы для Linux, не применимо к Solaris, за исключением того, что общая идея разбиения большого диска на более мелкие разделы такова. еще вещь в обоих ).
Хотя эта статья посвящена Linux, большая часть ее применима к Solaris.https://opensource.com/life/16/10/introduction-linux-filesystems