Q. Why is it complicated to protect a system in which users are allowed to do their own I/O?
Answer: In earlier chapters we identified a distinction among kernel and user mode where kernel mode is utilized for carrying out privileged operations such as I/O. One reason why I/O should be performed in kernel mode is that I/O requires accessing the hardware as well as proper access to the hardware is necessary for system integrity. If we permit users to perform their own I/O we can't guarantee system integrity.