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. Android启动时间测试方法

    android apk启动时间可以通过下面的命令来完成测试,最终会生成一个mp4的视屏文件,通过播放录制好的视屏来统计app的启动时间精确到ms级别   例如:adb shell screenreco ...

  2. WCF 第五章 会话级别的实例

    会话在分布式应用程序中广泛用于维护每个用户的状态.在站点或者基于站点的应用中,将每个用户的状态存储于会话中很常见.这这些情况中,用户和会话间有一个1:1比例.WCF以一个类似的概念支持服务.使用Ins ...

  3. [译]PyUnit—Python单元测试框架(1)

    1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...

  4. 用opencv画矩形打上马赛克Mosaic

    /*----------------------------------------------------------------------------- *   *   版权声明: *   可以 ...

  5. 全面产品管理-从细微处认识"用户体验"

    转载: 让我以一个故事开始本文,我觉得这个故事能概括大多数人听到“用户体验”这个术语时的想法. 我经常访问的一个财经网站给我发了一封电子邮件,请求我点击里面的一个链接,对一些信息进行审核.所以我就点了 ...

  6. 使用Windows Azure创建Windows系统虚拟机-上

    创建虚拟机来运行Windows 本教程介绍了如何轻松创建运行Windows 的 Azure虚拟机(VM),用作来自Azure管理门户中映像图库的Windows 服务器映像.映像图库提供了多种图像,包括 ...

  7. 计算智能 Computational Intelligence,CI

    计算智能(Computational Intelligence,CI)是借助自然界(生物界)规律的启示,根据其规律,设计出求解问题的算法.智能计算只是一种经验化的计算机思考性程序. 计算智能算法主要包 ...

  8. 【Java基础】Java类及成员和修饰符的关系

    修饰符的分类 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类的修饰符 权限修饰符:默认修饰符,public ...

  9. 【Java基础】继承的一些总结

    什么是继承 把一些类的具有共性的东西剥离出来形成一个新的类,然后各个其他类保留自己独有的特性,并用关键字extends继承这个剥离出来的新的类,可以最终达到各类原始相同效果,但是在每个类中,单用一个“ ...

  10. HDOJ-ACM1071(JAVA) 定积分

    这道题做起来有点无奈,定积分已经忘得差不多了~还可恶的去搜索了抛物线的解析式的求法~哈哈 不过求出来的结果不对...等有时间再去研究这个数学问题吧 - - 以下是JAVA实现: import java ...