Почему файловые менеджеры не используют главную таблицу файлов для мгновенных результатов поиска? [закрыто]

27

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

Вопрос заключается в том , почему это не возможность способ более популярным среди файловых менеджеров, и проводник Windows Search (Win + F) , чтобы начать?

Дан Дакалеску
источник
2
Также смотрите Всё по VoidTools, которое делает то же самое.
Дэвид д'Э Фрейтас
1
Отличная работа, парни, закрывающие вопрос с 20+ ответами как "неконструктивные"!
Дан Даскалеску

Ответы:

29

Из-за безопасности!

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

Такая программа обходит инфраструктуру безопасности всей (файловой) системы, поэтому ее может запустить только администратор (или кто-то другой, имеющий права «Управление томами»).

Очевидно, что во многих сценариях это не сработает - и я не думаю, что Microsoft (или любая другая крупная компания) когда-либо рассматривает возможность создания такого продукта, а затем поощряет пользователей работать в качестве администраторов из-за последствий для безопасности.

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

Кстати, я не использовал UltraSearch, но несколько лет назад я сам написал очень похожую программу, которую я открыл в прошлом месяце! Проверьте это, если вам интересно. :)

Mehrdad
источник
1
Это не похоже на правильную причину. ОС может дать представление для незащищенного поиска, как DMBS. API или ограниченное представление должны предоставлять публичный доступ к публичным файлам. И если таблица файлов ничего не знает о безопасности разных каталогов, то, вероятно, это плохой дизайн в конце разработки ОС
LifeH2O
@ LifeH2O: Проблема заключается в том, что добавление проверок безопасности станет огромным ударом по производительности, что полностью отрицает смысл инструмента.
Мердад
1
Как производительность может быть больше, чем сканирование каталогов? Только безопасность внутренних каталогов должна быть проверена. Я не знаю, сколько можно сделать с таблицей файлов Windows.
LifeH2O
1
@ LifeH2O: Рассматривали ли вы, как сложно «проверить» что-то? Пользователи принадлежат к нескольким группам, группы и пользователи могут иметь разрешения разрешить / отказать / ни для какого-либо каталога в цепочке, либо для самого файла, и вы должны выяснить действующие разрешения для текущего пользователя для каждого файла, используя его ACL , Теперь добавьте к этому синхронизацию, необходимую для подсистемы менеджера безопасности ядра, и вы получите огромные потери производительности, просто «проверив» все файлы.
Мердад
1
Вы должны предоставить что-то авторитетное с указанием того, что вы говорите, иначе люди не смогут отличить спекуляцию от информации. Я согласен с другими, это чисто домыслы.
user34660
6

Файловые менеджеры должны поддерживать каждую файловую систему, с которой можно столкнуться. Как таковые, они должны вызывать VFS через его API . Нет (вменяемого) способа вернуть большой массив из вызова API, что приводит к тому, что перечисление файлов является последовательным независимо от наличия MFT / FAT / суперблока.

Игнасио Васкес-Абрамс
источник
1
Если бы вы были программистом, вы бы знали, как API управляют большими объемами данных, такими как вы говорите. И нет, программа поиска не обязана поддерживать несколько файловых систем.
user34660
@ user34660: У них есть два варианта: 1) Использовать перечисление. 2) Работать очень медленно при работе с очень большими наборами данных. И инструмент поиска, который поддерживает только одну файловую систему, имеет очень ограниченную полезность.
Игнасио Васкес-Абрамс
3

Служба индексирования файлов предназначена для пользователей, которые хотели бы искать содержимое (скорее всего текст) и метаданные файлов, а не просто имя файла. Вот почему на все файлы уходит много времени, а индекс, созданный из таких сервисов, большой и относительно медленный. Вы можете отключить службу индексирования в Windows, но Windows Explorer достаточно глуп, чтобы продолжать поиск содержимого файла после имен файлов. Как сказал Игнасио Васкес-Абрамс, файловые менеджеры не могут воспользоваться низкоуровневой файловой системой.

нео
источник