UNIX操作系统(二章)

一、体系结构
 

二、系统核心框图
 
 UNIX系统使人感觉到文件系统有“位置”而进程有“生命”。文件和进程这两类实体是UNIX系统模型中的两个中心概念。

三、文件子系统
 一个文件的内部表示由一个索引节点给出,索引节点描述了文件数据在硬盘上的布局,并且包含诸如文件所有者、存取许可权及存取时间等其他信息。索引节点被存储在文件系统中,当操纵文件时,核心把它们读到内存的索引节点表中。
 核心还包含文件表和用户文件描述符表。文件表是一个全程核心结构,保存着文件中的字节偏移量和对打开的进程所允许的存取权限。用户文件描述符表对每个进程分配一个,当一个进程打开或建立一个文件时,贺欣在每个表中都相应于该文件的索引节点分配一个表项。
 一个文件系统具有如下结构:1,引导块占据文件系统的开头,典型地,是一个扇区。它可以含有被读入机器中起引导或初启操作系统作用的引导代码。2,超级块描述了文件系统的状态--它有多大,它能储存多少文件,在文件系统的何处可找到空闲空间,以及其他信息。3,索引节点表是一张索引节点的表,它在文件系统中跟在超级块的后面,当配置一个文件系统时,管理人员应指明索引节点表的大小。有一个索引节点是文件系统的根索引节点,在执行mount后,该文件系统的目录结构就可以从这个根索引节点开始进行存取了。4,数据块在索引节点表结构结束后开始,并且包含文件数据与管理数据。

四、进程
 一个进程是一个程序的执行,它是由一系列有格式字节组成的,这些有格式字节被解释成机器指令(“正文”),数据和栈。一个进程循着一个严格的指令序列执行,这个指令序列是自包含的,并且不跳转到别的进程的指令序列上,它读、写自己的数据和栈区,但它不能读或写其他进程的数据和栈,通过系统调用于其他进程及外界进行通信。
 可执行文件由以下几部分组成:1,描述文件属性的一组“头标”;2,程序正文;3,数据的机器语言表示,它给出程序开始执行时的初值;一个空间指示,指出核心应该被称为bss(block started by symbol)的未初始化数据分配多大的空间;4,其他段,诸如符号表信息。
 在系统调用exec期间,核心把一个可执行文件装入主存中,被装入的进程至少由正文区、数据区及栈区的三部分组成。正文区和数据区相应于可执行文件的正文段和数据bss段。但是栈区是自动创建的,而且它的大小在运行期间是被核心动态调节的。栈由逻辑栈桢组成,当调用一个函数时栈桢被压入,当返回时栈桢被弹出。一个称为栈指针的特殊寄存器指示出当前栈深度。一个栈桢包含着用于函数调用的参数、它的逻辑变量及为恢复先前的栈桢所需要的数据--其中包括函数调用时程序计数器的值及栈指针的值。程序代码包含管理栈增长的指令序列,并且当需要时核心为栈分配空间。
 UNIX系统中核心栈与用户栈是分开的。用户栈含有在用户态下执行时函数调用的参数、局部变量及其他数据。核心栈中含有在核心态下执行的函数的栈桢。核心蘸上的函数及数据项涉及的是核心中的而不是用户程序中的函数和数据,但它的构成与用户栈的构成相同。当一个程序在用户态下执行时,它的核心栈为空的。
 每个进程在核心进程表中都有一个登记项,并且每个进程都被分配一个u区(ublock),u区包含仅被核心操纵的私有数据。进程表指向一个本进程区表,本进程区表的登记项指向区表中的登记项。一个区是进程地址空间中的连续的区域,如正文区、数据区及栈区等。区表登记项描述区的属性,诸如它是否包含正文或数据,它是共享的还是私用的,以及区的“数据”位于主存的何处,等等。进程表登记项及u区包含进程的控制信息和状态信息。核心能直接存取正在执行的进程的u区的字段,但不能存取其他的进程的u区字段。
 一个进程的上下文包括被进程正文所定义的进程状态,进程的全程用户变量和数据结构的值,它使用的机器寄存器的值,存储在它的进程表项与u区的值以及它的用户栈和核心栈的内容。当执行一个进程时,系统被说成在该进程的上下文中执行。当核心决定它应该执行另一个进程时,它做一个上下文切换以使系统在另一个进程的上下文中执行。
 一个进程的生存周期能被划分为一组状态。每个状态都具有一定的用来描述该进程的特点。诸进程按照明确定义的规则连续地在各种状态间移动。这个规则如下图所示,也称为状态转换图。
 
 在核心态下运行的进程不能被其他进程所抢占。核心通过仅当一个进程使自己进入睡眠时才允许上下文切换,以及通过禁止一个进程改变另一个进程的状态来保护它的一致性。它还在代码临界区周围提高处理机执行级,以封锁其他能引起非一致性的中断。进程调度程序定期地抢占用户态下的进程执行,以使进程不能垄断CPU的使用。
 进程会因为它们正在等待某些事件的发生而进入睡眠。诸如:等待来自外围设备的I/O完成;等待一个进程退出;等待获得系统资源等。当一个进程被换行时,它完成一个从“睡眠”状态到“就绪”状态的状态转换,对于随后的调用来说,该进程是个合格者了,但它并不立即执行。核心并不时经常地去查看一个进程是否仍处于睡眠状态,而是等待事件的发生,那时把进程唤醒。
 大多数核心数据结构都占据固定长度的表而不是动态地分配空间,这一方法的优点是核心代码简单。
 管理进程可非严格地归入为用户团体的公共福利提供各种功能的那类进程,包括磁盘格式化、新文件系统的创建、修复被破坏的文件系统、核心调试及其他。它们仅在被允许的权限与特权上区别于一般用户进程。

转载于:https://my.oschina.net/RapidBird/blog/35340

第1章 UNIX操作系统概述 7 1.1 UNIX操作系统简介 7 1.2 UNIX系统组成 7 1.3 UNIX启动过程 8 1.4 UNIX用户登录过程 8 1.5 与UNIX有关的几个名词 9 第2章 UNIX基本常识 11 2.1 启动终端 11 2.2 登录 11 2.3 初始化文件 11 2.4 注销(退出UNIX系统) 12 第3章 UNIX文件系统 13 3.1 文件系统分类 13 3.2 文件类型 13 3.2.1 正规文件 13 3.2.2 目录文件 14 3.2.3 字符和块设备文件 15 3.2.4 套接字文件 15 3.2.5 命名管道文件 16 3.2.6 链接文件 16 3.3 树型目录结构 16 3.4 文件和目录的命名 18 3.5 UNIX文件存取权限 18 3.6 重定向与管道 21 3.6.1 UNIX重定向 21 3.6.2 UNIX管道 22 3.7 常用配置文件 22 3.7.1 /etc/passwd文件 22 3.7.2 /etc/group文件 22 3.7.3 /etc/hosts 23 3.7.4 /etc/services 23 3.8 文件系统管理 23 3.8.1 mount 23 3.8.2 umount 24 3.8.3 加载配置文件 24 3.8.4 fsck 25 第4章 UNX系统常用命令 27 4.1 UNIX命令基础 27 4.1.1 UNIX命令的一般格式 27 4.1.2 特殊功能键和字符 28 4.1.3 查看帮助信息 30 4.1.4 在后台运行程序 31 4.1.5 在指定时间执行指定程序 31 4.2 vi编辑器的最基本用法 32 4.2.1 vi简介 32 4.2.2 vi的启动和退出 33 4.2.3 vi的两种模式 33 4.2.4 vi的基本操作 34 4.2.5 vi的高级操作 36 4.3 目录操作命令 38 4.3.1 pwd 38 4.3.2 mkdir 38 4.3.3 cd 38 4.3.4 rmdir 39 4.4 文件操作命令 39 4.4.1 ls 39 4.4.2 cat 40 4.4.3 head 41 4.4.4 tail 41 4.4.5 more 41 4.4.6 cp 43 4.4.7 mv 44 4.4.8 rm 44 4.4.9 chmod 44 4.4.10 chown 46 4.4.11 chgrp 46 4.4.12 cmp 46 4.4.13 diff 47 4.4.14 wc 47 4.4.15 split 47 4.4.16 touch 48 4.4.17 file 48 4.4.18 pack 48 4.4.19 pcat 49 4.4.20 unpack 49 4.4.21 find 49 4.4.22 grep 51 4.4.23 pg 52 4.4.24 ln 52 4.4.25 sort 53 4.4.26 compress 53 4.4.27 uncompress 54 4.4.28 gzip 54 4.4.29 gunzip 54 4.4.30 tar 54 4.4.31 cpio 55 4.4.32 tee 56 4.5 状态信息命令 57 4.5.1 w 57 4.5.2 who 57 4.5.3 whodo 57 4.5.4 logname 58 4.5.5 whoami 58 4.5.6 whereis 58 4.5.7 which 58 4.5.8 date 58 4.5.9 cal 59 4.5.10 time 59 4.5.11 id 59 4.5.12 hostid 60 4.5.13 hostname 60 4.5.14 df 60 4.5.15 du 60 4.5.16 stty 61 4.5.17 tty 61 4.5.18 history 61 4.5.19 alias 61 4.5.20 echo 62 4.5.21 uname 62 4.5.22 clear 62 4.6 网络命令 62 4.6.1 arp 62 4.6.2 finger 63 4.6.3 wall 63 4.6.4 mesg 63 4.6.5 write 63 4.6.6 ping 63 4.6.7 netstat 64 4.6.8 telnet 64 4.6.9 ftp 64 4.7 进程管理命令 65 4.7.1 kill 65 4.7.2 ps 66 4.7.3 sleep 68 4.7.4 nice 68 4.7.5 shutdown 68 4.7.6 halt 69 4.7.7 poweroff 69 4.7.8 reboot 69 4.8 用户管理命令 69 4.8.1 su 69 4.8.2 groupadd 69 4.8.3 groupdel 70 4.8.4 useradd 70 4.8.5 userdel 70 4.8.6 passwd 71 第5章 shell的基础知识 72 5.1 什么是shell 72 5.2 别名化 73 5.3 shell变量 74 5.3.1 shell变量的存储机制 74 5.3.2 变量替换 74 5.3.3 命令替换 76 5.4 用户环境 76 5.5 两个重要的环境变量 77 5.6 shell启动文件 78 5.7 监控进程 78 第6章 附录 79 6.1 ftp命令参考 79 6.2 vi命令参考 80 6.3 find命令详解 85 6.3.1 Find命令形式 85 6.3.2 Find命令参数 85 6.3.3 Find命令举例 87 6.4 grep命令详解 99
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值