In chapter 6, the use of memory commands was discussed assuming that the programmer has unrestricted access to memory. In chapter 8, the use of memory commands in user programs where Linux restricts memory access is discussed. In chapter 4, section 4.2, the use of I/O commands is discussed, again assuming that the programmer has unrestricted I/O access. Although there are system commands whose purpose is to grant I/O access to a user, the default situation in Linux disallows the use of
OUT instructions in user programs. User access to peripherals takes place only by way of sytem calls. System calls translate user service requests into
OUT instructions. Because system calls execute at privilege level zero, ...