Give me a detailed but understandable explanation on Structure Input/Output Device in Linux
This explanation should refer to Device Driver block Structure; for example, include explanations on Block Devices; Character Devices; Network Devices