I/O軟件設計中的一個關鍵概念被理解為設備獨立性。這意味著程序應該可以訪問I/O設備,而無需事先指定設備。
統一命名,純粹是一個字符串或整數,不以任何方式取決於設備。在UNIX中,所有磁盤通常以任意方式集成到文件係統層次結構中,因此用戶不需要記住哪個名稱對應哪個設備。
錯誤處理:如果控製器發現一個讀錯誤,它應該嚐試糾正錯誤,如果可以的話。如果不能,那麼驅動程序應該處理它,也許隻是試圖再次讀取塊。在許多情況下,錯誤恢複通常在coffee級別透明地完成,而上層甚至不知道錯誤。
同步(阻塞)和異步(中斷驅動)傳輸:大多數物理I/O是異步的,然而,一些非常高性能的應用程序必須控製I/O的所有細節,因此一些操作係統為它們提供了異步I/O。
緩衝:從機器上輸出的信息通常不能立即保存到最終目標中。
可共享和專用設備:一些I/O設備,如磁盤,經常在相同的時間被許多用戶使用。多個用戶在相同的時間在相同的磁盤上打開文件不會引起任何問題。其他設備,如打印機,需要專用於一個用戶,直到該用戶使用完畢。然後另一個用戶可以擁有打印機。引入專用(非共享)設備也會帶來一係列問題,比如死鎖。操作係統應該準備好以避免困難的方式來管理平等共享和專用的設備。