Zastanawiałem się tylko, dlaczego serwer Linux NFS jest zaimplementowany w jądrze, a nie aplikacja w przestrzeni użytkownika?
Wiem, że istnieje demon NFS w przestrzeni użytkownika , ale nie jest to standardowa metoda świadczenia usług serwera NFS.
Wydaje mi się, że preferowanym podejściem byłoby uruchomienie serwera NFS jako aplikacji w przestrzeni użytkownika, ponieważ może on zapewnić dodatkowe bezpieczeństwo dzięki uruchamianiu demona w przestrzeni użytkownika zamiast w jądrze. Pasowałoby to również do wspólnej zasady Linuksa polegającej na robieniu jednej rzeczy i robieniu tego dobrze (i że demony nie powinny być zadaniem dla jądra).
W rzeczywistości jedyną korzyścią, jaką mogę myśleć o uruchomieniu w jądrze, byłoby zwiększenie wydajności z przełączania kontekstu (i jest to dyskusyjny powód).
Czy jest więc jakiś udokumentowany powód, dla którego jest wdrażany w taki sposób? Próbowałem googlować po okolicy, ale nic nie znalazłem.
Wydaje się, że jest wiele zamieszania, proszę zauważyć, że nie pytam o montowanie systemów plików, pytam o udostępnienie po stronie serwera sieciowego systemu plików . Istnieje bardzo wyraźna różnica. Lokalne podłączenie systemu plików wymaga obsługi systemu plików w jądrze, pod warunkiem, że tak nie jest (np. Samba lub unfs3).
unfs3
(który jest serwerem NFS) bez wsparcia dla jądra.