Linux 系统编程概述

概述,也就是简单描述每一章所包含的内容,可以能够快速了解到Linux系统编程中所包含的内容。

简介和主要概念

对应书中的第一章,介绍的是整体内容以及一些概念;整体内容包括文件的操作(I/O); 进程; 内存; 信号; 时间。

文件I/O的概念

如何在程序中访问到文件?通过文件描述符;而通过文件描述符索引到的是一个inode标识,然后通过inode直接关联到实际的文件。但是通过inode来访问对用户来说并不是很方便,毕竟inode只是一个整数值,并不能直观的对应到文件;所以此时就建立了一张表,将文件名和inode进行映射,那么我们就可以通过文件名来访问到inode从而访问到文件了,这就是目录和映射的概念。

其他

其他像进程线程,用户权限等只挑了几个关键的概念介绍了下。
详见: 简介

文件I/O

文件I/O 这章介绍I/O的一些基本概念,包括从打开文件、读写文件、关闭文件;因为为了减少写入磁盘的次数,引入的延迟写入的机制,当然也将提供接口使得数据一次写入,那就是同步I/O;不依赖于Linux系统提供的I/O机制,也就是直接I/O了。默认是在文件起始位置进行读写,若需要指定位置读写,就可以使用lseek等接口了;还有截断文件到指定长度的truncate、ftruncate以及I/O多路复用接口select、poll、epoll;最后介绍了内核对文件I/O的三个机制,包括虚拟文件系统、页缓存、页回写,主要是为了提高好的封装型以及高效性而设计。
详见: 文件I/O

缓冲输入输出

这一章介绍的就是C提供给I/O接口,对于Linux系统I/O接口的一个封装,能够更简单的满足各种读写要求(如读取一个字符串,写入一个字符串等);前面提到Linux系统I/O接口将文件作为一个文件描述符来进行处理,而这里的C接口将文件作为流进行处理,并且和文件描述符是对应的。
关于这章为啥叫缓冲输入输出,我的理解是C的接口会维护一个单独I/O缓冲区,然后再与系统缓冲区进行交互。
详见: 缓冲输入输出

高级文件I/O

这一章提供一些更加高级的I/0系统调用,包括:

  1. 在一次调用时,同时对多个缓冲区做读取或者写入操作的 散布/聚集 I/O
  2. 在一个进程中处理大量文件描述符的 epoll
  3. 将文件映射到内存的 内存映射I/O
  4. 允许进程将文件I/O使用时的一些提示信息给内核的 文件I/O提示
  5. 允许进程发出多个I/O请求但不需要等待的 异步I/O
    详见:高级文件I/O
Linux 系统编程导读 - 缓冲输入输出 Linux 系统编程导读 - 文件I/O
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×