Мне просто интересно, почему в ядре реализован сервер Linux NFS, а не пользовательское приложение?
Я знаю, что демон NFS в пользовательском пространстве существует, но это не стандартный метод предоставления служб сервера NFS.
Я бы подумал, что запуск NFS-сервера в качестве приложения пользовательского пространства будет предпочтительным подходом, поскольку он может обеспечить дополнительную безопасность, если демон запускается в пользовательском пространстве вместо ядра. Это также соответствовало бы общепринятому принципу Linux: делать что-то одно и делать это хорошо (и что демоны не должны работать для ядра).
Фактически, единственное преимущество, которое я могу себе представить в работе ядра, - это повышение производительности от переключения контекста (и это спорная причина).
Так есть ли какая-либо задокументированная причина, почему она реализована такой, какая она есть? Я пытался погуглить, но ничего не смог найти.
Кажется, здесь много путаницы, обратите внимание, я не спрашиваю о монтировании файловых систем, я спрашиваю о предоставлении серверной части сетевой файловой системы . Существует очень четкая разница. Для монтирования файловой системы локально требуется поддержка файловой системы в ядре, если этого не происходит (например, samba или unfs3).
unfs3
(это сервер NFS) без какой-либо поддержки ядра.