Friday, February 5, 2010

What's portmap and it's use

In a uClinux system, there is a program "portmap" in the /bin directory. And in the system start script rc file, sometimes you see a line like "/bin/portmap &". This means portmap will be started as part of the system startup. But what's portmap, and what's it for? In a uClinux system, when should it be included?

portmap is a server that converts RPC program numbers into DARPA protocol port numbers. It must be running in order to make RPC calls.

When an RPC server is started, it will tell portmap what port number it is listening to, and what RPC program numbers it is prepared to serve. When a client make a RPC call, by a program number, it will first contact portmap on the server machine to determine the port number where the RPC packets should be sent to.

In a embedded uClinux system, sometimes we want to mount a NFS file systme in the target board, and NFS service is based on RPC. That why we need to start portmap when we start up the system. (Of course you can start the server manually in a shell).

2 comments:

  1. I start to doubt whether we need a portmap running on a NFS client, in the case of uClinux, the target board is to mount a NFS dir from a server and is the NFS client. Why we need a portmap on NFS client?

    I'll build another image without portmap and test it on the target...

    ReplyDelete
  2. My doubt was comfirmed. portmap is NOT needed in order for the target uCLinux system to mount a NFS dir from a server. Portmap is running togather with NFS server to provide program number to DARPA mapping.

    ReplyDelete