- 文件描述符(file descriptor)
- Linux中,每打开一个文件都有一个小的整数与之对应,就是文件描述符!
- 内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
- 文件描述符是linux里面的叫法,windows里面有类似用来描述文件的叫文件句柄
- 用户空间 / 内核空间
- 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。
- 为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。
- 缓存I/O
- 在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存中
- 即数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。
- I/O多路复用(multiplexing)
- 本质:通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作<