Linux 系统 I/O 模型及 select/poll/epoll 详解
基本概念说明
理解Linux的IO模型之前,首先要了解一些基本概念,才能理解这些IO模型设计的依据
用户空间和内核空间
操作系统使用虚拟内存来映射物理内存,对于32位的操作系统来说,虚拟地址空间为4G(2^32)。操作系统的核心是内核,为了保护用户进程不能直接操作内核,保证内核安全,操作系统将虚拟地址空间划分为内核空间和用户空间。内核可以访问全部的地址空间,拥有访问底层硬件设备的权限,普通的应用程序需要访问硬件设备必须通过系统调用来实现。
Input: “23”
Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]