3The kernel buffers IO to the physical device behind these routines to improve device performance but there is no buffering between the routines and the user’s application. Hence the need for loops as described early.