Categories
virtualization

Linux文件系统基础

前面

本文在摘录了一些基本概念

文件描述符

文件描述符是一些小值整数,用于文件系统在处理文件的时候,标识被处理文件.
因此文件描述符的总数也就是系统可以打开的文件的最大数量
当Linux系统开始运行的时候,有三个文件描述符已经被使用:

  1. 标准输入:0
  2. 标准输出:1
  3. 标准错误:2

其他文件的文件描述符,在调用open函数时返回.文件描述符有操作系统分配,每次分配最小的.

库函数

系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因:

  1. 双缓冲技术的实现。
  2. 可移植性。(系统调用是操作系统相关的,因此一般没有跨操作系统的可移植性。)
  3. 底层调用本身的一些性能方面的缺陷。
  4. 让api也可以有了级别和专门的工作面向。
函数库调用 系统调用
在所有的ANSI C编译器版本中,C库函数是相同的 各个操作系统的系统调用是不同的
它调用函数库中的一段程序(或函数) 它调用系统内核的服务
与用户程序相联系 是操作系统的一个入口点
在用户地址空间执行 在内核地址空间执行
它的运行时间属于“用户时间” 它的运行时间属于“系统”时间
属于过程调用,调用开销较小 需要在用户空间和内核上下文环境间切换,开销较大
在C函数库libc中有大约300个函数 在UNIX中大约有90个系统调用
典型的C函数库调用:system fprintf malloc 典型的系统调用:chdir fork write brk;

/proc文件系统

Linux将一切看做文件,硬件设备在文件系统中也有相应的文件
/proc文件系统,可以看做是一个特殊的文件系统,每一个独立的硬件在这个系统中,都对应着一个文件,用户可以通过proc文件系统像访问文件一样来访问硬件设备。
也可以通过ps -ef |grep xxx获取程序pid,然后在/proc/pid/文件夹下查看该程序的运行情况.

参考

linux文件写过程

Linux 文件操作总结