W:Network File System

From DAVE Developer's Wiki
Jump to: navigation, search

Introduction

Network File System (NFS) is a distributed file system protocol, often used in Unix-based operating systems like Linux. It allows a client machine to accesss data stored on another machine (server) which exports one or more directories of its file system.

Nfs diagram.png


Usage on embedded systems

Development phase

Exporting the directories via NFS, make the target able to mount remote root file systems, so it is easy to use big root file systems (plenty of applications and data) during the development phase, being able to test modifications without downloading and flashing any image on the target. For example, you can cross-compile your applications and libraries on the host machine, putting the binaries on a NFS-shared directory mounted by the target (it can be the same remote root file system directory, but it could also be another devel directory). In this way, at run-time, the target immediately sees the modification you made, so you can quickly launch and test your freshly compiled application.

Testing phase

Exporting the NFS root file system during test phase allow you to run functional or stress tests on your units without flashing anything on the on-board storage, saving time and giving you more control on the test process (think for example of a log file saved on the shared directory, that you can simply check at run time from your host machine). Moreover, the same root file system can be shared by more than one device, allow you to run tests on more devices with a single root file system.