UNIX系统管理-第十二章系统的关闭和启动
UNIX操作

一、UNIX简单操作Sun 系统操作常用命令系统启动:1、开机先开显示器,后开主机电源敲入用户名、密码登录用户名:zd2000 密码:zd2004启动NSC300UX在桌面控制台上点击“nsc300ux”,或者在用户管理中点击启动系统,字样就可以自动启动了,直到弹出告警窗口为启动成功2、注:非正常断电,会对系统造成很大损害,不能对机器直接按电源键关机或者直接按电源键关机后再开,要打开终端窗口后输入相关命令来实现,关机:右键——工具——终端打开终端输入su (回车)口令:zd2004出现“#”号输入init 5重启:右键——工具——终端打开终端su (回车)口令:zd2004出现“#”号输入init 6或者reboot备份:右键——工具——终端打开终端在/u s e r s/z d2000后输入c d s q l/t o o l s(回车)在目录后输入b a c k u p_o r a c l e(空格)d a t a20100108(回车)即可完成数据库的备份此时,在/u s e r s/z d2000/s q l/O r a c l e_d a t a文件夹下面有个文件名为d a t a20100108.d m p的文件。
该文件就是备份的数据库。
备份zd2000文件夹:右键——工具——终端打开终端su (回车)口令:zd2004出现“#”号# pwd(用于查看当前路径)(显示:# /users/zd2000)# cd ..# pwd(显示:# /users)# ls(用于显示该路径下的文件和文件夹)(显示:# Oracle zd2000 …)# tar cvf zd2000-1071.tar zd2000就可以生成zd2000-1071.tar 的文件在路径:/users下注意:打包文件用的命令如下:tar cvf 打包生成的文件名称.tar 被打包的文件名称解包文件用的命令如下:tar xvf 打包生成的文件名称.tar二、Oracle数据库简单操作1、右键——工具——终端打开终端,2、导入信息表输入cd exe 回车进入/zd2000/exe输入imp_data 6 遥信表的名字(例如yx_10812.txt)-reset 回车这个是导入遥信imp_data 7 遥测表的名字(例如yc_10812.txt)-reset 回车这个是导入遥测imp_data 15 遥控表的名字(例如yk_10812.txt)-reset 回车这个导入遥控2、导出信息表输入exp_data 6 遥信表的名字(例如yx_10812.txt)回车这个是导出遥信exp_data 7 遥信表的名字(例如yc_10812.txt)回车这个是导出遥测exp_data 15 遥控表的名字(例如yk_10812.txt)回车这个是导出遥控不管是导入或者导出的数据表都存放在/zd2000/data/imp_exp下面,再把文件拷出就可以3、注意事项轻易不要导入数据库文件就是dmp文件如果要导出数据库文件操作如下:cd sql/tools/ 回车进入/zd2000/sql/tools输入backup_oracle 备份的文件名称(例如data10816)回车备份后生成的文件在zd2000/sql/oracle_data 目录下面再把文件拷出就可以三、画面编辑1、点击画面调用上三角符号,然后在弹出的菜单栏中选择画面编辑2、在画面编辑菜单栏中——打开图形——选择需要编辑的图形3、打开图形后,必须点击一下菜单栏中的“选择”按钮,才能继续下一步操作4、画面编辑必须有工程师指导操作,个人勿自己操作5、在图标的“图形组”里点击“图形显示”,左键点击弹出的画面就能进入主接线图,在主接线图上点击间隔名称可调用间隔的画面,注意:.因主接线图上画面太多,主接线图禁止遥控,做遥控要进入分图里控。
Linux终端中的系统启动和关机命令

Linux终端中的系统启动和关机命令Linux作为一个开源的操作系统,具有强大的灵活性和自定义性。
在Linux终端中,我们可以使用一些命令来控制系统的启动和关机。
本文将详细介绍一些常用的系统启动和关机命令,并探讨它们的功能和使用方法。
一、系统启动命令1. rebootreboot命令用于重新启动系统。
在终端中输入reboot后,系统将会立即重启。
这个命令非常有用,尤其是在需要迅速重启系统的情况下,如在安装软件或更新内核后。
2. shutdownshutdown命令用于正常关机系统。
默认情况下,输入shutdown命令后系统将在一分钟后执行关机操作。
如果需要设置关机时间,可以使用“shutdown -h now”命令来立即关机,或者使用“shutdown -h +分钟数”命令来设置延迟关机的时间。
除了关机命令,shutdown还可以用于重启系统。
例如,使用“shutdown -r now”命令将会立即重启系统。
3. initinit命令是Linux系统的初始化命令,用于切换系统的运行级别。
运行级别是电脑中一种特定的工作状态,对应着一组特定的功能服务。
Linux系统共有七个运行级别,分别是0-6。
其中,0表示关机,6表示重启。
要切换运行级别,可以使用“init 数字”命令进行操作。
例如,“init 3”将将系统切换到文本模式,而“init 5”则进入图形模式。
二、系统关机命令1. halthalt命令用于立即关机系统。
它会发送一个信号给内核,告诉系统立即关闭。
输入“halt”命令后,系统将会停止所有进程并关机。
2. poweroffpoweroff命令用于正常关机系统。
它会先发送一个信号给所有运行的进程,告诉它们系统即将关机。
这个命令会在关机前允许进程的保存和关闭操作,确保数据的完整性。
3. init在上一节中我们已经介绍了init命令的用途。
当我们使用“init 0”或“init 6”命令时,系统将会执行关机或重启操作。
macOS终端命令实现系统服务的启动和停止

macOS终端命令实现系统服务的启动和停止在macOS系统中,我们可以通过终端命令来启动和停止系统服务。
这些系统服务通常在后台运行,为我们提供各种功能和服务。
本文将介绍如何使用终端命令来管理系统服务。
一、查看系统服务列表要查看当前系统中正在运行的服务列表,我们可以使用以下命令:```sudo launchctl list```执行该命令后,系统会列出当前正在运行的服务及其状态。
二、启动系统服务要启动一个系统服务,我们可以使用以下命令:```sudo launchctl load -w/System/Library/LaunchDaemons/com.example.service.plist```请注意将以上命令中的"/System/Library/LaunchDaemons/com.example.service.plist"替换为您想要启动的服务的实际路径。
三、停止系统服务要停止一个正在运行的系统服务,我们可以使用以下命令:```sudo launchctl unload -w/System/Library/LaunchDaemons/com.example.service.plist```同样,请将以上命令中的"/System/Library/LaunchDaemons/com.example.service.plist"替换为您想要停止的服务的实际路径。
四、重启系统服务有时候,我们需要重启一个正在运行的系统服务。
要做到这一点,我们可以先停止该服务,再重新启动它。
以下是具体的步骤:1. 停止服务:```sudo launchctl unload -w/System/Library/LaunchDaemons/com.example.service.plist```2. 启动服务:```sudo launchctl load -w/System/Library/LaunchDaemons/com.example.service.plist```同样,请注意将以上命令中的"/System/Library/LaunchDaemons/com.example.service.plist"替换为您想要操作的服务的实际路径。
unix linux 系统管理技术手册 第5版

unix linux 系统管理技术手册第5版《Unix/Linux系统管理技术手册》第5版是一本经典的Unix/Linux系统管理技术权威指南,对于系统管理员和Linux用户而言,是一部不可或缺的参考资料。
该书分为8个章节,涵盖了Unix/Linux系统管理的方方面面,包括基础知识、系统安装、文件系统管理、用户和用户组管理、网络管理、进程管理、安全性和备份恢复等。
下面将对每个章节进行简要介绍。
第一章介绍了Unix/Linux的起源和发展历史,阐述了Unix/Linux 的基本概念和特点,以及Unix/Linux系统管理的基本原则和任务。
同时,还介绍了常用的Unix/Linux版本和发行版。
第二章讲解了Unix/Linux系统的安装和升级,包括硬件要求、分区的设计和创建、安装介质的制作和安装过程的详细步骤。
此外,还包括如何进行系统的升级和补丁的安装。
第三章主要涉及文件系统管理,包括文件系统的组织和层次结构、文件系统类型、文件系统的创建和管理、文件和目录的权限设置和修改、磁盘配额的管理等。
第四章介绍了用户和用户组的管理。
这包括用户账号的创建和管理、用户组的创建和管理、用户账号的权限和环境设置、sudo权限的管理等内容。
第五章讨论了网络管理,包括网络配置、主机名的设置、网络接口的配置和管理、网络服务的配置和管理、路由的配置和管理等。
还介绍了如何使用网络工具进行网络故障排除和监控。
第六章详细讲解了进程管理,包括进程的创建和管理、进程的优先级和调度、进程的监控和控制、进程间的通信等。
此外,还介绍了shell脚本编程和作业调度。
第七章涉及系统安全性,包括用户权限管理、文件权限管理、防火墙和入侵检测系统的配置和管理、日志的监控和审计、系统漏洞的修补等内容。
最后一章介绍了备份和恢复技术,包括备份策略的制定、备份工具的选择和使用、备份文件的恢复和验证、灾难恢复和数据恢复等。
总的来说,《Unix/Linux系统管理技术手册》第5版全面而深入地介绍了Unix/Linux系统管理的各个方面,无论是初学者还是有经验的系统管理员,都可以从中获得宝贵的知识和技巧。
uni教材

unix系统管理

第一章:UNIX 操作系统简介 1.1 什么是操作系统? 操作系统是一种特殊的用于控制计算机(硬件)的程序(软件) 。 操作系统在资源使用者和资源之间充当中间人的角色。 为众多的消耗者协调分配有限的系统 资源。系统资源包括,CPU,内存,磁盘,和打印机。举个例子,一个用户(也可以是程序) 将一个文件存盘,操作系统就会开始工作:管理磁盘空间的分配,将要保存的信息由内存写 到磁盘等。 当用户要运行一个程序时,操作系统必须先将程序载入内存,当程序执行时,操作系统会让 程序使用 CPU。在一个分时系统中,通常会有多个程序在同一时刻试图使用 CPU。 操作系统控制应用程序有序地使用 CPU ,就好象一个交通警察在一个复杂的十字路口指挥 交通。十字路口就象是 CPU;每一条在路口交汇的支路好比一个程序,在同一时间,只有 一条路的车可以通过这个路口, 而交通警察的作用就是指挥让哪一条路的车通过路口, 直到 让所有路口的车辆都能通过路口。 UNIX 操作系统的历史 UNIX 操作系统 1969 年在贝尔实验室诞生。Ken Thompson 在Rudd Canaday, ,Doug Mcllroy,Joe Ossana,and Dennis Ritchie,的协助下,写出一个小的分时系统,开始得到关 注,在许诺为实验室的管理人员提供一个文档准备工具后, UNIX 先驱们可以使用到一台 更大的计算机,从而得以继续他们的开发工作。 在七十年代的中期,一些大学得到使用 UNIX 的许可,并很快在学院之间得到广泛流行,其 主要的原因是: 小巧:最早的 UNIX 系统只占用 512K 字节的磁盘空间,其中系统内核使用 16K,用户程序 使用 8K,文件使用 64K。 灵活:源代码是可利用的,UNIX 是用高级语言写成,提高了操作系统的可移植性。 便宜: 大学能以一盘磁带的价格得到一个 UNIX 系统的使用许可。 早期的 UNIX 系统提供了 强大的性能,使其能在许多昂贵的计算机上运行。 以上优点在当时掩盖了系统的不足: 没有技术支持:AT&T 在当时大部分的资源和都用在 MUTICS 上, 没有兴趣开发 UNIX 系统。 Bug 的修补:由于没有技术支持,bug 的修补也得不到保证。很少的,或者根本没有说明文 档:用户有问题经常只能是去看源代码。 当 UNIX 传播到位于 California 的 Berkeley 大学的时 候,Berkeley 大学的使用者们创建了自己的 UNIX 版本,在得到国防部得支持后,他们开发 出了许多新的特性。但是,作为一个研究机构,Berkeley 大学提供的版本和 AT&T 的版本一 样,也没有技术支持。当 AT&T 意识到这种操作系统的潜力后就开始将 UNIX 商业化,为 了加强产品性能,他们在 AT&T 的不同部门进行 UNIX 系统开发,并且开始在系统中结合 Berkeley 开发出的成果。 UNIX 最终的成功可以归结为: 一个灵活的、包含多种工具的用户界面与操作环境。 模块化的系统设计可以很容易地加入新的工具。 支持多进程,多用户并发的能力。 Berkeley 大学 的 DARPA 支持。 强大的系统互连的能力。 能在多种硬件平台上运行。 标准化的界面的定义促进应用的可移植性。
Unix命令大全手册
<hostname> 显示/设置当前主机的名字<ping> 确认和远程机器的连接情况<traceroute> 显示路由信息<rwho> 查询网上机器的登陆用户<ruptime> 查询网上机器的系统运行时间<rlogin> 登陆到远程机器<telnet> 用telnet登陆到远程机器<rsh> 给远程机器发送命令<rcp> 在远程机器之间复制文件<mail> 收取邮件<sendmail> 发送邮件<mailq> 确认邮件队列<ftp> 用ftp传输文件十一. 其他命令<cal> 显示日历<clear> 清屏<gcc> 编译C语言代码<as> 汇编<bc> 计算<rpm> Redhat的包管理<dpkg> Debian的包管理<installpkg> Slackware的包安装(删除命令则是removepkg)<XF86Setup,turboxfg,Xconfigurator> 配置X 服务器<startx> 启动 X-Window 系统附:组合命令重定向,如$ ls -l /bin > ls-output$ more ls-output管道命令,如$ cat file1 file2 | sort | uniq经常被用于管道的命令awk, fold, grep, head, nnkf, pr, sed, sort, tail, tee, tr, uniq, wc。
Tru64系统管理笔记
TRU64 UNIX 系统管理笔记写在前面的话:虽说TRU64不再发展,但很多重要应用还是依然支持TRU64,如Oracle 10gR2,因此,在春节过后,还是凭着新年想做点什么的热情,写了这个笔记。
这过程中我又温习了一下功课,练习了好多忘了的或者从来都不会的内容。
这个笔记主要是根据英文版的说明书《TRU64 Unix System Administration》(Part Number:AA-RH9FD-TE)和《TRU64 Unix Advfs Administrator》(Part Number:AA-RH96A-TE)整理的。
本笔记主要针对5.1A或者更高版本,不过对5.1或者5.0都有相当意义上的参考价值。
本学习笔记并不是从头到尾将这本书翻译过来,而是结合我的实际工作,有选择的、将认为值得学习、记住的内容记录下来。
本笔记更多的考虑telnet管理,至于图形化管理部分,基本不记录或者一代而过。
第一章系统基本管理方法和工具 (2)第二章启动和关闭系统 (3)第三章自定义化操作系统 (4)第五章 管理硬件 (6)第十一章监控和测试系统 (12)第十二章管理基本的系统日志 (14)补充:AdvFs系统管理 (15)第一章系统基本管理方法和工具1. /usr/sbin/sysman最常用的图形化管理工具就是sysman了。
这个工具可以完成大部分的管理工作,可以说和Aix的smit命令异曲同工。
这个工具从5.0开始也可以telnet后在窗口中输入,界面和gui中当然有区别,不过功能差不多,如下图所示:sysman的基本使用方法:直接使用sysman命令可以执行全面管理可以在syman后面加参数来快速进行某种管理。
如sysman route可以设置/etc/routes 文件。
可以通过sysman –list来查看有哪些快捷方式。
2./usr/sbin/setup/usr/sbin/setup命令同样可以在telnet界面上运行,可以进行快速的系统设置或者自定义设置。
UNIX系统管理-第十二章:系统的关闭和启动
UNIX系统管理-第十二章:系统的关闭和启动系统的启动是指从开始引导操作系统直到系统正常工作的过程。
在启动之初,操作系统被装入内存并且开始执行,这个执行过程中将进行大量初始化操作以提供某些服务如打印服务,网络服务等。
用户,特别是系统管理员必须详细了解系统启动全过程的各个具体细节。
启动是整个系统运行期间最脆弱、最容易出现问题的时候。
稍有不慎,整个系统将无法正常启动,或正常启动了,却无法正常工作。
虽然UNIX系统被设计成一种可以可以永不关机的系统,但实际操作中却由于各种各样的原因,不得不在一定的时候将机器关闭,如电源出现问题,系统出现严重故障等。
UNIX系统的复杂性不允许我们想关机时就直接切断电源,这样做会对整个系统造成极大的破坏,如用户数据丢失,文件系统结构的不一致等。
所以关机过程必须遵守一定的规范才行。
在这一章中我们主要介绍如下几个问题:介绍UNIX系统从加电到系统完全可用的全过程中的各个执行细节。
系统的启动过程大多数的UNIX系统的启动都有两种方式:干预而自动完成启动的全过程。
置系统的日期等等。
然后系统将继续进行引导。
通常这两种方式的最终效果是一样的。
正常情况下,加电后系统均能自动启动至准备好状态。
但在系统遇到一些人为破坏,如突然断电,系统发生崩溃或者系统管理员做了某种修改时,经常会需要手工引导。
我们可以把整个UNIX系统的启动过程大致划分为如下几个阶段:操作系统装入程序(PDL)的加载UNIX系统核心程序的装入UNIX系统内核的初始化硬件的检测和配置系统进程的生成管理人员的干预(自动启动时无此阶段)系统初始化shell脚本的执行各终端进程的生成操作系统装入程序的加载大多数计算机系统的操作系统都是驻留在系统的硬盘中的。
一般可以把硬盘的存储空间分成几个不同的相互连接的片段,每个片称为一个硬盘分区。
绝大多数硬盘都可被划分为四个分区。
在各个分区中可以装载不同的操作系统。
(对于专用的工作站或者主机系统,一般只装载一个UNIX系统)在硬盘的多个分区中,有一个分区被称为是系统的活动分区。
LINUX系统的启动、运行和关闭PPT教学课件
init
建立用户接口
rc.sysinit rc
login
Shell
2020/12/12
用户执行Linux命令
+ 1.加载BIOS
(1)开机进BIOS首先会加电自检 BIOS即(Basic input output
System),它是写入到主板上的一个软件 程序。
在GRUB中的文件名为hdo,代号为(hdo,4); 在LINUX中的文件名为/dev/hda5,代号为(hd1,5)
Shell
用户执行Linux命令
2020/12/12
6
第1节 系统启动、运行和关闭
• 4.执行init进程
加电 加载BIOS
预引导(LILO/GRUB)
当内核加载完毕进行完硬件检测与驱动程序加载 后,主机硬件已经准备就绪,此时内核会主动调
(3)以查找顺序作为硬盘的代号,而不是依照 硬盘的物理排序 (4)第一个查找到的硬盘代号为0,第二个为1, 以此类推。
4
第1节 系统启动、运行和关闭
• 2.预引导(LILO/GRUB)与加载内核映像
加电 加载BIOS
预引导(LILO/GRUB)
由前述我们可知,第一块硬盘的MBR安装处的 硬盘代号就是(hdo),而第一块硬盘的第一个分 区的代号就是(hd0,0),第一块硬盘的第一个逻 辑分区代号为“(hdo,4)”.
BIOS是开机的时候计算机会主动去执 行的一个软件程序。
(2)然后计算机依据BIOS内的设置引导 顺序从硬盘(一般为硬盘,有时也为软 件或者光盘)中读入“主引导记录” (Master Boot Record)即MBR,然后将 其加载到物理内存中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIX系统管理-第十二章:系统的关闭和启动系统的关闭和启动系统的启动是指从开始引导操作系统直到系统正常工作的过程。
在启动之初,操作系统被装入内存并且开始执行,这个执行过程中将进行大量初始化操作以提供某些服务如打印服务,网络服务等。
用户,特别是系统管理员必须详细了解系统启动全过程的各个具体细节。
启动是整个系统运行期间最脆弱、最容易出现问题的时候。
稍有不慎,整个系统将无法正常启动,或正常启动了,却无法正常工作。
虽然UNIX系统被设计成一种可以可以永不关机的系统,但实际操作中却由于各种各样的原因,不得不在一定的时候将机器关闭,如电源出现问题,系统出现严重故障等。
UNIX系统的复杂性不允许我们想关机时就直接切断电源,这样做会对整个系统造成极大的破坏,如用户数据丢失,文件系统结构的不一致等。
所以关机过程必须遵守一定的规范才行。
在这一章中我们主要介绍如下几个问题:系统的启动过程介绍UNIX系统从加电到系统完全可用的全过程中的各个执行细节。
系统的关闭介绍关闭系统的方法及关闭系统时应该注意的一些问题。
系统的启动过程大多数的UNIX系统的启动都有两种方式:自动启动在这种方式下,系统可以不经任何人工的干预而自动完成启动的全过程。
手工启动在系统启动过程到达某一点时,系统管理员可以进行一些人工的干预,如对文件系统进行检查,设置系统的日期等等。
然后系统将继续进行引导。
通常这两种方式的最终效果是一样的。
正常情况下,加电后系统均能自动启动至准备好状态。
但在系统遇到一些人为破坏,如突然断电,系统发生崩溃或者系统管理员做了某种修改时,经常会需要手工引导。
我们可以把整个UNIX系统的启动过程大致划分为如下几个阶段:操作系统装入程序(PDL)的加载UNIX系统核心程序的装入UNIX系统内核的初始化硬件的检测和配置系统进程的生成管理人员的干预(自动启动时无此阶段)系统初始化shell脚本的执行各终端进程的生成操作系统装入程序的加载大多数计算机系统的操作系统都是驻留在系统的硬盘中的。
一般可以把硬盘的存储空间分成几个不同的相互连接的片段,每个片称为一个硬盘分区。
绝大多数硬盘都可被划分为四个分区。
在各个分区中可以装载不同的操作系统。
(对于专用的工作站或者主机系统,一般只装载一个UNIX系统)在硬盘的多个分区中,有一个分区被称为是系统的活动分区。
活动分区中的操作系统会在系统加电的时候被引导。
大多数机器在加电时均会转移到一特定的地址去执行存储在ROM中的程序。
如果是从软盘上引导,这个程序将读取软盘上引导扇区(0头、0道、1扇区)中操作系统核心代码,再将控制交给核心程序,由此开始核心程序的装入和运行。
但对于从硬盘上引导系统的情形,ROM载入程序装入的不是操作系统而是另外一段代码,这段代码在被装入到内存中后将获得控制权而得以执行,然后由它去装入UNIX系统。
一般而言,这段代码将位于硬盘0头、0道、1扇区。
该扇区主要包括两部分的信息:主引导程序和分区信息表。
其内容是由硬盘分区程序对硬盘进行分区时建立的。
在主引导程序被装入之后将获得CPU控制权而得以执行。
执行时它会对分区信息表进行扫描,看哪个分区为活动分区,并试图装入该分区第一扇区的操作系统引导程序,由此开始操作系统核心的引导.UNIX系统核心程序的装入在操作系统获得系统控制权之后,我们可以说此时UNIX系统已经开始运行了,载入程序在执行时,将从硬盘活动分区中一个特定的地方(该分区的第一个扇区)装入操作系统的源代码:UNIX系统内核。
UNIX系统内核实际上是一个程序,其名称一般是/unix或者/vmunix,名称随生产厂家的不同可能会有些差异。
在内核被装入的时候,屏幕上会显示:Booting the UNIX system......若此时按下任意键,系统核心装入程序将允许用户输入欲装入的其它核心程序的文件名。
此时装入程序会显示:boot:用户可以在冒号后输入其它的某个核心程序的名称。
为什么要提供这种功能呢?因为在许多情况下我们需要对系统内核进行重新配置,以生成新的核心程序,而老的核心程序可以保留到另外一个文件中。
新的核心程序可能不能成功地启动系统,这种情况下我们就可用这种方法装入原来的核心程序引导系统。
如果并不想真的装入其它内核,可以不作任何操作或者仅仅按一下回车。
稍后,装入程序会装入缺省的内核。
系统内核是UNIX常驻内存的部分。
内核装入程序从磁盘上装入核心程序之后,将把控制权交给新装入的内核,从而使之得以运行。
系统内核的初始化核心程序开始执行时,UNIX系统内核的初始化工作就开始了。
内核会检查内存,以前我们知道,系统内核会占据物理内存的低端并固定在此空间中运行。
内核将检查系统中内存的总数,计算出自己占用多少,剩下多少可以供普通进程使用,这就是启动信息中关于内存的部分。
文件系统高速缓冲部分也会占用部分内存空间。
内核的各种内部数据结构,如页表,进程结构表(proc结构),所以系统内存并不是仅仅等于内核的大小加上可用的内存的大小。
硬件的检测和配置内核完成自身的初始化之后,它将对系统中所安装的各种硬件进行检测。
由于每种系统的硬件千差万别,很难对这个过程进行一般性的说明。
系统管理员在配置内核时,将告诉系统要处理那些设备,当内核完成初始化之后,它将开始寻找这些设备,并且按照系统管理员的设置对这些设备进行初始化配置。
大多数情况下,内核将报告它应该找到但是由于种种原因没有找到的设备。
在配置内核时候,系统管理员说明的设备信息往往是不充分的。
这种情况下,内核将通过检查与设备连接的总线及相应的设备驱动程序来获得关于设备的其它信息。
如果某设备未被找到或者用于某种原因未能对内核检测作出响应,内核将标记该设备为不存在,同时时相应的设备驱动程序不再起作用。
此时即使设备和系统连接恢复正常上,该子系统也不能被使用。
要想使用这个设备,只有重新启动系统。
系统进程的生成在硬件检测、配置完成之后,内核将生成一些系统进程,这些进程并不是系统核心的一部分,它们将作为一个普通的进程在用户进程空间运行,提供各种系统服务。
这些进程的数量和种类随系统的不同而不同。
在AT&T systerm V中,有如下的进程:调度进程sched(0号进程)初始化进程init(1号进程)虚存管理进程pageout(2号进程)缓冲区至磁盘写进程fsflush(3号进程)缓冲区映射进程Rmdaemon(4号进程)在BSD系统中,相应的进程分别是:换入换出进程swapper(0号进程)初始化进程init(1号进程)页面守护进程pagedaemon(2号进程)这三个进程与上面的0、1、2号进程对应。
在所有的这些进程中只有1号进程init才算是真正意义上的进程,而其它的“进程”并不是真正意义上的进程。
它们是系统核心的一部分,其作用类似于一个函数调用,只是由于进程调度的原因才将其设置为同进程类似。
在这些系统进程生成之后,内核在系统启动中的任务就完成了,后面的工作将由init进程来进行,这些工作包括:启动各种服务,生成接受终端注册的getty进程等等。
系统初始化shell命令脚本的执行操作系统为了给用户提供各种服务,通常要生成一些提供这些服务的进程。
这种服务进程一般被称为守护(daemon)进程。
它们不知疲倦地为系统中的用户提供某种特定的服务。
通常这些进程是在内核生成各个系统进程之后,由init进程执行一系列特定的shell命令而生成的。
init通过/etc/inittab文件对各种守护进程进行管理,init将顺序地读取inittab中的各行并逐个进行处理。
各终端进程的生成随着整个系统初始化的完成,整个系统就已经能够正常工作了,但是此时用户还不能使用计算机,因为我们暂时还没有办法注册到系统中。
为了用户能注册到系统中,必须提供getty进程。
每个getty进程将分别监视某一个通讯端口以检测来自相应终端或者调制解调器的连接信号,然后getty将首先打印注册提示,等待用户输入用户名,然后调用login命令进行注册,注册成功后,系统会生成一个shell进程,同时相应的getty进程会自动消亡。
当用户从系统中注销时,init进程将根据/etc/inittab文件中的相应的数据行重新生成相应的终端上的getty进程。
启动过程中的人工干预在内核初始化完成之后、系统初始化开始之前,如果系统进入单用户状态(手工启动方式下),那么内核在启动init进程时就将通知这一点。
这种情况下,init将首先在控制台上生成一个shell进程,并等待该shell进程中止,再进行其它的系统初始化操作。
使用这个shell进程,用户可以以超级用户的身份执行所有的可以执行的命令。
但由于此时系统只安装了根文件系统,这将使得管理员只能执行/bin或/etc目录下的文件。
如想执行其它文件系统上的命令,需管理员自己先安装相应的文件系统。
一般情况下,系统管理员在此阶段需要做的工作是对文件系统进行检查(fsck),只有在出现某些系统故障的情况下才需要系统管理员对文件系统进行维护。
关于文件系统的检查我们将在第10章详细介绍。
在了解UNIX系统启动的全过程之后,我们才可能对系统启动过程中出现的种种问题进行分析,找出故障发生的原因,进而想办法排除故障。
一般而言,无法正常启动的原因有:硬件故障启动盘被破坏文件系统被破坏内核配置有问题系统初始化shell脚本出现问题在系统无法正常启动时,借助启动过程中控制台上显示的信息,我们可以大致判断到底哪个阶段出现了问题,从而才能对症下药排除故障。
系统的关闭在了解系统的引导过程后我们会知道:系统处于正常工作状态时,系统中会有许多各式各样的进程在运行,如init进程、各种守护进程,如果有用户登录到系统中,还有许多用户进程。
另外我们还知道UNIX系统为提高机器的响应速度引入了缓冲机制。
所有的这些都将使得在关闭系统时不能切断电源了事。
事实上,系统的关闭和启动过程一样也是一个极为复杂的过程。
当然这种复杂指的是系统内部操作上的复杂,而不是用户操作上的复杂。
用户只需要按照一定的要求输入几个命令就能将系统正常地关闭下来。
在各种UNIX系统中,都提供有多种正常或者不正常的关机方式。
例如,鉴于init进程(1号进程)在系统中的特殊地位,我们可以通过终止这个进程来使系统关闭下来:# kill -9 1但是这种方法是不安全的,其造成的后果可能并不亚于直接关闭电源。
为了能够使整个系统正常地停下来,许多系统都提供了专用的关闭系统的命令。
下面以AT&T UNIX系统为例来说明这个过程。
System V提供了一个名为/etc/shutdown的shell命令。
借助这个命令,我们可以将系统安全关闭。
但在关闭系统之前,仍应对系统的运行情况进行检查,你可以使用ps 和who命令来进行这种检查。