APUE读书笔记之一——UNIX基础知识

第一章 UNIX基础知识

1UNIX体系结构

控制计算机硬件资源,提供程序运行环境的软件称为内核。内核的接口为系统调用(System Call);公共函数库构建在系统调用接口之上,应用软件即可以调用公共函数库,也可以调用系统调用。Shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口。LinuxGNU操作系统的内核,此种操作系统为GNU/Linux

2,登录

用户登录系统后,会进入用户目录(起始目录)下,即/home/username;口令文件是/etc/passwd。用户登录后进入Shell,可通过键入命令或者通过文件向Shell输入。BashBourne-again Shell

3,文件和目录

UNIX文件系统是目录和文件组成的一种层次结构,目录的起点称为根,名字是“/”。目录(directory)是一个包含许多目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息。文件属性指文件类型(目录还是文件),文件大小,文件所有者,文件权限,文件的最后修改时间等。Stat fstat 函数返回包含所有文件属性的一个信息结构。

目录中的各个名字为文件名。只有/”,空操作符null不能出现在文件名。创建目录时会自动创建两个文件名:.(当前目录)和..(父目录),在根目录中这两个目录相同。

以斜线开头的为绝对路径,其余为相对路径。

exit()表示退出程序,参数0表示正常退出,1-255表示异常退出。

每个进程都有一个工作目录(当前工作目录),所有相对路径都从当前工作目录开始解释。

4,输入与输出

文件描述符(file descriptor)通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件,当内核打开或者新建一个文件时,它返回一个文件描述符,在读写文件时就可以用到。

每运行一个新程序,Shell都会为其打开三个文件描述符:标准输入,标准输出,标准出错,没做改动则链向终端。它们都可以重定向到文件。如:ls < file.in > file.out;在<unistd.h>中定义了常量STDIN_FILENOSTDOUT_FILENO表明标准输入输出的文件描述符,分别为01

函数open, read, write, lseek, close提供了不要缓冲的I/ORead函数返回读得的字节数,碰到文件末尾则返回0

标准I/O函数提供一种对不用缓冲函数的带缓冲的接口。如,printf

5,程序和进程

程序是某个目录中的可执行文件。使用6exec函数中的一个由内核读入存储器,使其执行。程序的执行实例是进程。进程ID是一个非负整数。进程控制主要有三个:forkexecwaitpidfork一次,分别在父进程和子进程返回,共返回两次Ctrl+D是默认的文件结束符。

在同一个进程中,线程共享一个地址空间,文件描述符,栈以及与进程相关的属性。

6,出错处理

UNIX函数出错时,常常返回一个负数值,如果成功返回0;某些函数会返回null指针

7,用户标识

用户ID0标识超级用户;组ID是系统管理员在指定用户登录名是分配的;

8,信号

信号(signal)是通知进程已发生某种情况的一种技术,处理信号的方式有三种选择,1是忽略该信号,2是按照系统默认方式处理,3是提供一个函数,信号发生时调用该函数。

9,时间

UNIX系统使用两种不同的时间值,一是日历时间,是国际标准时间所经过的描述累加值,系统数据类型time_t保存这种时间值;二是进程时间,也为CPU时间,以时钟滴答计算。使用clock_t保存这种时间值。当度量一个进程的执行时间时,UNIX使用三个进程时间值:时钟时间,用户CPU时间,系统CPU时间,时钟时间是进程运行的时间总量;用户CPU时间是执行用户指令所用的时间;系统CPU时间是该进程执行内核程序所经历的时间,用户CPU时间+系统CPU时间是CPU时间。

10,系统调用和库函数

Linux不同版本提供了240——260个系统调用,应用程序可以调用库函数或者系统调用,库函数也可调用系统调用;系统调用提供了最小的接口,库函数则提供比较复杂的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值