How does the BeagleBone emulate a USB flash drive?

I just got a used BeagleBone A5 and one of the features is that part of the SD card is visible to the computer it is plugged in to as a flash drive.

How is this done?
Is there something running in the Linux that services the I/O requests?
Are there limitation?
If I mount an NFS share could that be served to the host computer as thought it were also part of the USB flash drive?

I find this very interesting. Where can I learn more about this?

https://www.kernel.org/doc/Documentation/usb/gadget_multi.txt

Regards,