linux系统相关模块

一 文件:Linux中一切皆文件。普通文件包含以字节流组织的数据。
  1.1文件可以由一个或多个进程同时打开,进程间共享唯一文件描述符FD
  1.2 Inode:索引节点又称为信息节点,是系统分给文件的唯一整数数值,但在整个系统可能不是唯一的。索引节点会保存和文件相关的元数据,但不包括文件名。
二 目录和链接
   目录:目录是名称到索引节点之间的映射。名称和索引节点之间的配对叫链接。目录像普通文件一样存储在磁盘上,但不支持像普通文件一样的打开操作。目录是通过系统调用来操作的只支持添加链接和删除链接两种。
   硬链接:当不同名称的多个链接映射到同一个索引点,称为硬链接。硬链接不能跨越多个文件系统。
   符号链接:
   特殊文件:以文件的形式表示内核对象。linux中支持四种特殊文件:块设备文件,字符设备文件,命名管道以及unix套接字。
   块设备是作为字节数组来访问。把字节映射到可寻址的设备上,用户空间随意访问数组中的任何字节。
   字符设备是以线性字节队列来访问的。设备驱动把字节按顺序写入队列,用户从队列中读取数据。
    命名管道是通过系统调用在内在中创建的,通过FIFO特殊文件来访问。
    套接字(socket):是进程间通信的高级形式,
三 文件系统
   文件系统是以合理有效的层次结构组织的文件和目录的集合。
   第一个被挂载的文件系统是在根目录下的,所以称为根文件系统。
   块设备的寻址单元是扇区。文件系统中的寻址单元是块,通常比扇区大。内存的寻址单元是页。扇区<块<页
四 进程
  进程是活动的运行的程序。包括目标代码,数据,资源,状态。
  进程通过系统资源调用。这些资源包括计时器,挂起的信号量,打开的文件,网络连接等等。
  线程是进程内的活动单元,负责运行代码和管理进程状态。线程包括栈(用于存储局部变量),处理器状态,目标代码的位置。进程地址空间共享。
  进程树的根是第一个进程,init程序。新的进程由fork()创建。原进程称为父进程,由fork()创建的为子进程。当父进程终止,内核会把init进程作为该进程的父进程。
五 用户和组
  用户ID和进程关联,称为进程的真实。用户名和UID的对应关系保存在/etc/passwd中。
当用户提供的用户名和密码都通过login程序校验完成后,系统会根据/etc/passwd文件中的shell,来生成login shell ,并把用户id作为该shell进程的UID。除了真实UID以外,每个进程还有有效UID,是用来支持进程切换成其它用户权限来执行;保留UID保存有效UID,其值决定了用户将切换成哪个有效UID;文件系统UID通常和有效UID等效,用于检测文件系统的访问权限。
   用户可以属于一个或多个组,/etc/passwd中的基础组或login group./etc/group
  中的很多其他附加组。因此每个进程和相应的组ID关联,也有真实GID,有效GID,保留GID,文件系统GID.进程通常是与用户的的登录组关联,而不与用户的附加组关联。
  六 权限
文件所有者和权限信息保存在文件的索引节点中,
对于目录,读是指列出目录内容,写是指添加新的链接,执行是指使用该目录。
  七进程间通信
linux中支持的进程间通信机制包括:管道,命名管道,信号量,消息队列,共享内存和快速用户空间互斥。

猜你喜欢

转载自wangqinghan.iteye.com/blog/2306294