一:unix操作系统也称为unix内核。内核驻存在/vmu-nix或/unix磁盘文件中,unix的体系结构从内到外:硬件 内核 系统调用函数如read、write、open、exit、chmod 外层实用程序如shell、ls、vi、who 其他应用程序
二:shell。内核负责管理和创建进程,但内核不执行用户输入的命令,由shell命令解释程序执行。一个用户进入unix,则系统创建一个进程来注册shell。输入有两种形式:来自终端的单条命令和来自文件的批处理脚本文件。shell接受的命令有两种形式:shell内部实现的命令和其他如ls、vi等实用程序,此时shell将控制转交给对应的实用程序并启动它们执行。显然,shell是用户输入命令与内核的中间层。unix系统中一般有多种shell:sh、csh、ksh
三:特权用户和一般用户。特权用户就是用户名为root的根用户,其用户ID为0,可以做系统的一切事情。一般对文件、进程管理控制必须是其主人。
四:系统调用和库函数。unix提供的系统调用大约为100多个,C语言编写,每一个系统调用在标准C库里有同名的库函数。库函数可以不需要操作系统的介入来完成工作,也可以调用多个系统调用。库函数可以重新编写,系统调用定死了。用户代码可以调 系统调用或者库函数。
五:系统能力限值。unix系统每一个限值都有一个宏名,分为七类。可在<limits.h>、<unistd.h>、或者sysconf、pathconf、fpathconf等函数查询
六:错误处理。系统调用和大部分库函数在失败时会返回一个特殊值:-1、null、诸如EOF之类的常数。要看发生了什么错误,可查看存储在外部变量errno中的错误码。头文件<errno.h>中定义:extern int errno;其取值为错误码,错误码为E开头的宏名字,值为正整数。errno的值在程序开始时为0,系统调用和库函数出错时会设置此值为非0数。一次成功的调用绝不会改变该值。