linux 编程基本概念

1 文件
      文件是linux最基本和重要的抽象, 一个打开的文件通过唯一的描述符进行引用,该描述符是打开文件的元数据至其本身的映射.

2 普通文件
      文件通过信息接点来访问,inode使用唯一的数值进行标志,一个inode存储文件关联的元数据,如它的修改时间戳,所有者,类型,长度以及文件的数据的地址,
  inode是unix文件系统在磁盘上实际物理对象,也是linux内核中的数据结构的概率实体 

3 目录和链接 
      目录是用来提供访问文件时所需的名字,它将名字和inode编号进行映射,名字与inode的配对,称为链接,内核直接使用这个映射将文件
  解析为inode

4 硬链接
      将不同名字映射到同一个inode信息节点的多个链接称为硬链接,硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件

5 符号链接  
      符号链接 是一个指针,指向文件在文件系统中的位置。符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。符号链接只是指明了原始文件的位置,
用户需要对原始文件的位置有访问权限才可以使用链接。如果原始文件被删除,所有指向它的符号链接也就都被破坏了

6 特殊文件
      特殊文件时以文件方式表示的内核对象

7 文件系统和名字空间
      文件系统是以合法层次结构组织的文件和目录的集合,文件系统能从全局的文件和目录的名字空间独立的添加和依除,这些操作成为
挂载和卸载.块设备最小访问地址单位为扇区,扇区是设备的物理单位,扇区一般是2的指数倍,通常为512字节,文件系统中最小的逻辑地址
单元是块,块是文件系统中的抽象而不是对物理介质的抽象,块通常是2的指数倍与扇区大小的乘积 

8 进程
      进程是执行中的目标代码:活动的,生存的,运行的程序,还包含数据,资源,状态以及虚拟化的计算机.进程从可执行目标代码开始其
生命周期.这些目标代码具有内核能够解析的可执行格式,且可以由机器执行. 可执行格式代码包含有元数据,多个代码和数据段. 段是加载
到线性内存块的线性目标码块.代码段包含可执行代码和只读数据,数据段包含已初始化的数据,bss段包含未初始化的数据 

9 线程
      一个进程包含一个或多个执行线程,线程是进程中的活动单位.线程是一种抽象,它负责执行代码和维护进程的运行状态.线程包括栈,
处理器状态,目标代码的当前位置.进程剩下的部分由所有线程共享

10 进程体系
      每个进程都由一个唯一的正整数标识,即进程ID,第一个进程的pid是1,接下来每个进程接受一个新的唯一pid.进程树以第一个init进程
为根.新进程通过fork()系统调用创建,fork()复制调用进程,而原进程为父进程,新进程为子进程.父进程先于子进程终止,内核将init进程指定
为它的父进程     

11 用户和组
      用户名和他们对应的用户id存储在/etc/passwd中,而库例程将其用户名映射到相应的uid上,用户登陆成功后会生成一个登陆shell,并将
用户id作为进程的uid,子进程继承父进程的uid,uid0 是超级用户的用户id.除了用户uid之外, 每个进程有一个有效uid,一个保留uid和文件系统
uid.真实uid是启动进程的用户,有效uid可以使进程在其他用户的权限下运行,保存uid保存原来有效uid

12 权限
      每一个文件都有一个所有者,所属组以及权限位集,这些位描述所有者,所属组以及其他人对文件进行读,写和执行的权限,这三类每个对应3个位,
共9位

13 信号
      信号是一种单向异步通知机制,信号可能从内核发送到进程,也可能从进程到进程,或进程给自己,一般用于通知进程发生某些事件
 
14 进程间通信
      进行间通信指允许进程交互信息和通知彼此所发生的事件,linux支持的进程间通信机制包括管道,命名管道,信号量,消息队列,共享内存和快速用户
空间互斥体

posted on 2014-05-04 21:50  kangbry  阅读(143)  评论(0)    收藏  举报

导航