What it is?
A file descriptor is an object that a process uses to read or write to an open file and open network sockets.
FileDescriptor objects, representing raw Linux file descriptor identifiers, can be written and ParcelFileDescriptor objects returned to operate on the original file descriptor. The returned file descriptor is a dup of the original file descriptor: the object and fd is different, but operating on the same underlying file stream, with the same position.
and What can it do?
Create pipes, create fds from sockets, open/close files.