《Linux系统编程》笔记
litoujkl
这个作者很懒,什么都没留下…
展开
-
第1章:基本概念
1. Linux系统编程的3大基石:系统调用、C库、C编译器 调用系统调用:位于用户空间的应用程序无法直接访问内核空间。从安全性和可靠性角度考虑,也需要禁止用户空间的程序直接执行内核代码或操纵内核数据。但从另外一个角度看,内核也必须提供这样一种机制,当用户空间的用户希望执行系统调用时,可以通过该机制通知内核。有了这种机制,应用程序就可以“深入内核”,执行内核允许的代码。 2. Linu原创 2015-05-17 15:39:38 · 372 阅读 · 0 评论 -
第2章:文件I/O
在对文件进行读写操作之前,首先需要打开文件。内核会为每个进程维护一个打开文件的列表,该列表称为文件表(file table)。文件表是由一些非负整数进行索引,这些非负整数称为文件描述符(file descriptor)。列表的每一项是一个打开文件 的信息,包含指向该文件索引节点(inode)内存拷贝的指针以及关联的元数据,如文件位置指针和访问模式。 默认情况下,子进程会维护一份父进程的文件表副本原创 2015-05-17 17:33:55 · 439 阅读 · 0 评论 -
第3章:缓冲I/O
1. 在内核中,所有的文件系统操作都是基于块来执行的。实际上,块是I/O中的基本概念。因此,所有I/O操作都是在块大小或者块大小的整数倍上执行。也就是说,也许你只想读取一个字节,实际上需要读取整个块。额外的系统调用所带来的开销会导致操作性能急剧下降。例如,要读取1024个字节,如果每次读一个字节需要执行1024次调用,而如果一个读取1024字节的块则只需要调用一次。对于前一种,提升性能的途径是“用原创 2015-05-19 20:11:40 · 320 阅读 · 0 评论