本文内容大部分摘自《UNIX环境高级编程》,附有部分我的心得。shell
一、unix体系结构
从严格意义上来讲,可将操做系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。
咱们一般将这种软件称为内核(kernel),由于它相对较小,并且位于环境核心。如图显示unix体系结构。
内核接口被称为系统调用(system call)。公用函数库构建在系统调用接口之上,应用程序既可食用公用函数库,也可使用系统调用。
shell是一个特殊的应用程序,为运行其余应用程序提供了一个接口。
从广义上来说,操做系统包括内核和其余软件。
二、登录
用户在登录unix系统时,要先键入登陆名,而后键入登陆口令。系统在其口令文件(一般是/etc/passwd文件)中查看登陆名。
口令文件中的登录项是由七个以冒号为分隔的字段组成,依次是:登陆名、加密口令、数字用户ID、数字组ID、注释字段、起始目录以及shell程序(我理解为系统调用的权限)
root:*:0:0:System Administrator:/var/root:/bin/sh
名 :密:户:组: 注 : 目 : shell
巧计:明迷糊租住木鞋
三、文件和目录
3.1 文件系统
unix文件系统是目录和文件的一种层次结构(树形结构),全部东西的起点是根(root)目录,根目录的名称是“/”。
3.2 文件名
目录中的各个名字称为文件名(filename)。只有斜线(/)和空字符不能出如今文件名中。斜线用来分割路径,空格用来终止一个路径名。
3.3 路径名
由斜线分隔的一个或多个文件名组成的序列(能够以斜线开头)构成路径名(pathname),以斜线为开头的路径名为绝对路径(absolute pathname),不然称为相对路径名(relative pathname)。
四、程序与进程
4.一、程序:
程序(program)是储存在磁盘上某个目录中可执行的文件。内核使用exec还书将程序读入内存,并执行程序。
4.二、进程和进程ID
程序执行实例被称为进程(process)。unix系统确保每一个进程都有一个惟一的数字标识符,成为进程ID(process ID),进程ID老是一个非负整数。
4.2.一、进程控制
有三个用于控制进程的主要函数:fork、exec、waitpid。
4.三、线程和线程ID
线程(thread):资源执行的基本单位
线程ID:惟一地标识了一个进程中的线程,它只在所属进程中有效,一个进程的线程ID到了另外一个进程中毫无心义。
注:线程能够共享同一地址空间、文件描述符、栈、进程相关的属性。
编程