Here you have common usb drivers for smart card readers, as well as a daemon that can detect when new readers are connected, and some diagnostic data when the readers initiate a connection to the smart card (either via contact or contactless / NFC). http://www.linuxnet.com/
jpcsc can then be used as a java API for a map, so you can read and write. You are distracted from the reader's hardware, but you still need to learn a lot about the specifics of a smart card - in which version of Javacard / GlobalPlatform it uses, which crypto keys are used if you want to establish a secure connection, etc.
Or you can purchase a complete development environment, including a map, reader, and IDE (usually based on Eclipse) from a manufacturer of smart cards such as G and D, Oberthur, Gemalto ...
source share