1、OS——操作系统是管理硬件资源的软件,也称作内核。与此同时,操作系统还为其他程序提供一系列的服务,比如执行程序、打开文件、读文件等等。

2、Kernel——内核对外提供一系列的系统调用,而一些库又把这些系统调用封装成更加容易使用的API。

3、Shell——shell是一个命令行解释器,通过读取用户在终端上输入的命令,或是脚本文件执行相应的命令。Linux中常见的shell为Bourne-again shell(Bash)。

4、File System——Unix的文件系统由目录和文件组成,而目录本身也为一个文件,其中有一系列的目录项,每个目录项由文件名标识,并带有文件的各种属性(所属用户,权限,修改时间等)。每一个目录在创建的时候便会自动创建两个文件:“.” (当前目录)和“..”上一级目录,这就是为什么“./”表示当前目录,而“cd..”表示退回上一级目录。

5、Pathname——路径分为两种:由“/”(“/”表示根目录)开始的绝对路径,和由当前目录开始的相对路径。

6、File Descriptors——文件标识符是一个非负整数,用来区分正在被访问的文件。当一个程序启动的时候会自动创建三个文件标识符,standard input,standard output,standard error 。当我们在终端上输入命令,如:“ls”,默认将这三个文件标识符绑定到终端。同时我们还可以将这三个文件标识符进行重定向。"ls > file.list"表示将standard output绑定到文件”file.list“上,”ls < file.list“则表示将standard input绑定到文件”file.list“上。

7、Error Handling——在系统调用的时候,当错误发生,函数通常会返回一个负数,并且将errno这个整数设定为某个特定的值(例如EACCES,表示权限错误),从这个值我们可以得到其错误的信息。以下为两个错误处理的基本函数:

char *strerror(int errnum); // 通入传入不同的errno,得到这个值所代表的错误信息
void perror(const char *msg); // 输出当前errno代表的错误信息,并以字符串“$msg: ”作为前缀。

8、Signal——signal是通知进程某个事件发生的机制(如SIGFPE:floating-point exception表示发生除以0的事件发生)。以下为两个关于信号的基本函数:

int kill(pid_t pid, int signo); // 将信号signo传递给进程pid
(*signal(int signo, void (*func)(int)))(int); // 将信号量signo与特定函数绑定,从而使得某个信号发生的时候,该函数被调用来处理这一信号。

9、Time Values——UNIX系统中记录着两种时间变量,time_t表示从标准世界时间(UTC)到现在的总秒数;clock_t描述CPU分配给各个进程的时间。

在终端下输入命令前加上“time”可以测量进程所用的时间。

$ time ./a.out

real        0m0.81s
user 0m0.11s
sys 0m0.07s

其中“real”表示进程所使用的总时间(依赖于其它进程的数量),“user”表示进程分得的CPU总时间,“sys”表示内核代表进程运行的总时间。

通常把“user”和“sys”的和称作CPU时间。

APUE(1)——UNIX基本概念的更多相关文章

  1. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  2. UNIX基础概念

    UNIX基本概念 进程 从用户观点来看:进程是程序的一个执行实例. 从UNIX系统内部来看,是为运行程序提供执行环境的实体,是系统进行资源分配和调度运行的一个单位. 进程有三个特点: 1)进程有一个控 ...

  3. 类UNIX操作系统概念

    摘要:对unix os上的一些基本概念做一个统一的梳理,以下内容转自互联网和相关书籍 一 进程组.会话.控制终端 进程组---------------------------------------- ...

  4. APUE《UNIX 环境高级编程》读后感

    今天终于把APUE前17章全部看完了,基本上主要知识就在这些章节里. 之前看完<unix/linux编程实践教程>时,有一种豁然开朗.心旷神怡的感觉,在代码级别了解了linux很多系统机制 ...

  5. 使用APUE(UNIX高级编程)源代码

    方法一:1.APUE源代码下载:http://www.apuebook.com/code3e.html2.我保存到了/root下.解压缩:tar -xzvf src.tar.gz3.cd apue.2 ...

  6. APUE 1 -- Unix数据结构

    Unix 类操作系统支持不同进程间共享文件.对于所有的I/O,内核使用3种数据结构来表示一个打开的文件. 进程表.每个进程在进程表中有其相应的入口.文件结构中,每个进程表的入口是文件描述符表,每个文件 ...

  7. Unix线程概念、控制原语、属性

    线程: 线程基础概念: 线程在Linux中又称轻量级进程.而且它和进程都有PCB(进程控制块).可是差别是进程的虚拟地址空间是独享的,也就是每一个进程都有自己的虚拟地址空间.可是线程的PCB是共享的, ...

  8. linux/unix 基本概念的认识(sha-bang 、PPA)

    PPA:Personal Package Archives : Ubuntu: 比如为安装 emacs,需要首先添加某个PPA: sudo add-apt-repository ppa:cassou/ ...

  9. 《Linux/Unix系统编程手册》 时间子系统

    Linux下操作系统编程有两本经典APUE即<Advanced Programming in the UNIX Environment>和TLPI<The Linux Program ...

随机推荐

  1. -_-#【Cookie】使用无 cookies 的域

    cookie-free域名提高网页效率

  2. Charles使用问题, iOS7的http代理(http proxy)配置不生效问题

    Charles配合iOS7使用时, 发现iOS7的http代理(http proxy)配置不生效, 代理信息写完后, 系统没有自动保存. 解决方法: 将些wifi忽略, 重新连接, 再配置代理就好了.

  3. SQL SERVER 2008查询其他数据库

    1.访问本地的其他数据库 --启用Ad Hoc Distributed Queries-- reconfigure reconfigure -- 使用完成后,关闭Ad Hoc Distributed ...

  4. Frame 处理

    # -*- coding:utf-8 -*- """ 通过 id 或 name 识别处理 fram 框架 """ from selenium ...

  5. Api项目压力测试知识荟萃

    并发用户.在线用户和注册用户以及彼此之间的换算方法(估算模型).系统的最大并发用户数根据注册用户数来获得,换算方法一般是注册总人数的5%-20%之间:系统的并发数根据在线人数来获得,换算方法一般是在3 ...

  6. Android增量更新

    http://blog.csdn.net/tu_bingbing/article/details/8538592 (转)

  7. Specular light 计算

    Specular lighting is most commonly used to give light reflection off of metallic surfaces such as mi ...

  8. 【Java基础】static关键字的理解

    修饰范围: 可以修饰成员变量和成员方法.静态的特点: A:随着类的加载而加载 B:优先于对象存在 C:被类的所有对象共享 这其实也是我们判断该不该使用静态的依据. 举例:饮水机和水杯的问题思考可通过类 ...

  9. 配置 Web Deploy 的步骤 -摘自网络

    今天的文章里,我会介绍Microsoft Web Deploy—一个采用全面的发布和部署机制的免费服务器技术.Web Deploy不仅仅让你发布文件—还可以部署数据库结构/数据,运行变更的数据库脚本, ...

  10. puppet_list