SCO OpenServer 5操作系统的启动
1. 普通用户模式及注册
如何去使用UNIX系统呢, 让我们从UNIX系统的启动开始……
在准备学习和实践UNIX系统之前,我们已简单地了解到:UNIX 系统是一种多用户、多任务、分时的操作系统。 它允许多个用户通过终端同时使用一台 UNIX服务器。 而且UNIX系统对每一个系统中的用户还给予了好像它们在单独使用这套系统一样的效果。
你知道吗?UNIX操作系统是如何去区别多个用户的 ?
打开计算机主机(主控台console)的电源,UNIX引导程序(boot) 装入并执行,直到显示下列提示信息:
SCO OpenServer ™ Release 5
Boot
:_å
%注意:在上述的提示信息中,用户若键入 ?å,可显示当前可用的设备名清单。设备和文件名的格式如下:
xx (m) filename
这里,xx为设备名(硬盘用hd表示,软盘用fd 表示)。m为次设备号(如,硬盘上的根文件系统为40,软盘为64)。filename为标准的UNIX路径名。缺省设备为hd(40)。
上述显示信息,为首次调用boot程序时产生的。这里,系统要求用户输入要装载的程序的位置。直接按回车键,引导程序(boot)便开始从硬盘加载UNIX系统,并开始迅速显示下列信息(如果在冒号之后键入DOS并按回车键,则进入DOS环境,假若在你的机器中有DOS分区的话):
loading kernel hd(40)unix.text
…………………………………………………………………………………………
loading kernel hd(40)unix.data
……………………………………………………………………………………………
loading kernel hd(40)unix.bass
……………………………………………………………………………………
上述信息说明UNIX核心的文本段、数据段、附加段已进入内存。紧接着系统对硬件设备进行自检,其表现为对其硬件设备自检的每一步都显示一个字符(用户在启动系统时可以观察到)。
在硬件设备自检和初始化完成之后, 显示系统硬件配置表如下所示:
device address vector dma comment
-------------------------------------------------------------------------
%fpu - 13 - type=80387
%serial 0x03F8-0x03FF 04 - unit=0 type=Standard nport=1
%floppy 0x03F2-0x03F7 06 2 unit=0 type=135ds18
%floppy - - - unit=1 type=96ds15
%console - unit=vga type=0 12 screen=68K
%parallel 0x0378-0x037A 07 - unit=0
%disk 0x01F0-0x01F7 14 - type=W0 unit=0 cyls=723 hds=15 secs=51
mem: total=16000k, kernel=2304k , user=13696k
rootdev=1/40, swapdev=1/41, pipedev=1/40 dumpdev=1/41
nswap=30000 , swplo=0 , Hz=100
kernel: i/o bufs=600k
G提示:上述配置表中显示如下信息:device(硬件设备)、address(十六进制地址)、vector(中断向量)、dma(DMA通道)、comment(硬件设备的其他信息)。表中fpu为浮点运算部件;serial为串行端口COM1;Floppy为高密度软盘驱动器;console为控制台;parallel为并行口;disk为硬盘驱动器;mem指内存。
在显示硬件配置表之后, 系统将对根文件系统(root filesystem)进行自检;如果根文件系统完好,系统则提示用户选择操作方式。
INIT:SINGLE USER MODE
Type CONTROL-d to proceed with normal startup,
(or give root password for system maintenance):_
G提示:这里系统提示有两种操作模式:按+键将以普通用户模式注册进入系统;键入root用户的口令进入系统维护模式。
在上面的系统提示信息中,用户同时键入和键,UNIX系统则进入普通用户操作模式, 即UNIX系统的常用模式:多用户模式。此时,屏幕显示如下信息:
INIT:New run level:2
Enter new time([yymmdd]hhmm):_å
... ...
Checking tcb …
Checking protected password and protected subsystem database...
Checking ttys database...
The system is coming up.Please wait
Fsstat:/dev/boot mounted
Mounted /stand filesystem
…
Starting /usr/internet/etc/ncsa_httpd … done
Starting scohttp … done
The system is ready.
SCO OpenServer (TM) Release 5 (scosysv) (ttyo1)
login:_
最后一行的“login:”为系统提示用户进行注册的信息提示。
如果该用户不是root用户,他从某个终端上注册进入UNIX的话(当然此时主机中已经启动了UNIX),则直接进入下列的画面:
login:_
%注意:如果终端未出现“login:”信息,多按几次回车键后,一般就能够解决这一问题。
接下来的操作就是用户键盘输入注册名。这是用户进入UNIX 操作系统的第一步必须进行的工作。
假如普通用户的注册名为jinning,则从键盘上按j i n n i n g的顺序击键输入,最后按回车键,表示注册名输入结束。随后系统提示输入用户口令。注意,屏幕并不显示用户输入的真实口令。
login:jinning å
password:_
... ...
$_
G提示:在UNIX系统中,用户口令并不是作为普通文本存储的,而是经过加密后存储的。用户注册时键入的口令,系统对它进行加密,并将结果与/etc/passwd文件中存储的加密口令相比较,匹配则注册成功。否则,返回到“password:”状态。
当屏幕显示UNIX系统提示符“$”时,则表明你已注册成功,成为UNIX系统的合法用户(这里假设超级用户已为普通用户jinning建立了账户。有关如何建立账户将在后面的章节中介绍)。
到此, 用户可以在系统提示符下, 进行自己权限允许范围内的有关操作。
%注意:此时,用户可以直接跳到下一章的有关内容的学习。比如,使用passwd命令去修改用户的初始口令;使用ls命令去列示目录的内容等。
%注意:进行操作模式的选择之前,系统将对文件系统的有效性和一致性进行检查。如果系统在上一次运行中正常关闭,则fsck命令将只是简单地终止,不必做进一步的工作。否则,如果是非正常关闭,fsck命令检测到有问题,则提示用户是否要进行修复, 其显示的信息为:
fsstar: root file system needs checking.
OK to check the root file system (/dev/root)? (y/n)_
用户此时键入 并回车, 确认进行修复。根文件系统修复完成, 系统将提示用户进行操作模式的选择。
你知道吗?注册是什么概念,不注册可以进入UNIX操作系统吗?
? 在启动UNIX系统时显示的信息中,读者已经观察到,系统启动了一系列进程为用户使用系统进行准备。启动UNIX系统不仅仅打开机器的电源。它一般要通过一系列的阶段:(1)加载操作系统;(2)在系统非正常终止时,保存或删除系统的内存映像;(3)清理文件系统;(4)选择系统的运行模式;(5)在启动时设置时间和日期;(6)检查安全性数据库。
? 系统启动过程中提示的信息中包含着丰富的内容,循序渐进地了解、认识它们,并做好日志的记录是有益处的。比如:“INIT: SINGLE USER MODE”,其意为单用户操作方式;“INIT: New run level: 2”,其意为多用户操作方式;“ scosysv! login:”是系统提示用户进行注册;“password:”则是系统要求用户输入口令等等。
一般来说,在UNIX系统环境中,任何由键盘所做的输入不外乎两种类型:一是要求系统去做某些工作, 一是对系统的要求作出响应。比如键入+,要求系统进入多用户模式,而系统提示“scosysv! login:”,“password:”,要求用户输入注册名和口令进行响应,之后还有系统启动过程中需要输入硬件配置表的内容等。
? 用户进入UNIX系统环境,必须进行的第一项工作就是注册,否则无法进入UNIX 系统。必须明确的是,UNIX系统对用户的注册过程是非常认真的。
注册是怎么回事? 注册就是用户进入UNIX系统的过程。就是让UNIX系统验证用户使用本系统的权限,并为用户建立相应的使用环境。注册也是UNIX系统安全的第一道防线。
用户的注册过程是,系统首先提示输入用户的注册名,用来识别用户注册主目录(用户的起始目录);其次,验证用户的注册口令,以证实用户的身份。在完成上述内容之后,系统将为用户打开一个shell。
? 由于UNIX是一个多用户、多任务的操作系统,于是,自然会产生这样的问题,UNIX操作系统是如何保护系统中的多个用户的数据资源的。UNIX操作系统利用事先为用户设置的用户的标识码ID来区分不同的用户。用户标识码由两个部分组成,第一部分是用户的username(用户名)或userid(用户标识id),也可以称为loginname(注册名);第二部分是用户的上机钥匙,即password(口令)。口令是由用户选择、改变和决定的。为了保密,有时口令中间加上标点符号,但它最多允许有8个字符。
用户正确地输入自己的注册名和相应的口令后,系统将同时完成用户身份的验证,并赋予相应的权限。
2. 系统维护模式及注册
系统维护模式又称单用户模式,是执行系统维护任务的模式。如,检查文件系统、安装或更新软件,重新安装文件系统等。非root用户不允许注册于这种模式。这是因为本模式在访问系统时不受任何限制。
在下列系统提示信息中,用户直接从键盘输入root用户口令后,系统则进入单用户状态。注意,此时输入的口令在屏幕中不显示。
INIT:SINGLE USER MODE
Type CONTROL-d to proceed with normal startup,
(or give root password for system maintenance): å
Entering System Maintenance Mode
#_
显示器出现系统提示符“#”,表明系统已进入系统维护模式。
%注意:(1) root用户的口令字是系统安装期间指定的;(2) root用户在此直接键入其口令后,系统直接到提示符下。如果用户键入+键,进入多用户模式下,系统还将继续运行,如执行设置系统的时间,启动有关的进程等,直至提示用户注册。
若用户在上述的系统提示信息中,不键入root用户的口令,而是同时键入和键则进入多用户模式。然后在出现注册提示符“login:”下,再键入超级用户注册名root,并正确输入其口令后,系统将进入超级用户状态。
scosysv!login:root å
password:
#_
当屏幕显示UNIX系统提示符“#”时,表明你已注册成功,已成为UNIX系统的合法用户,可以在UNIX环境下进行各项系统的管理操作了。
?问题:(1)单用户模式下和多用户模式下的超级用户的内涵有区别吗?(2)是不是任何用户都可以进入单用户状态呢?
%注意:root用户的口令是极其重要的,不应随意地传播。其实,在UNIX系统下,系统管理员以普通用户的身份进入多用户模式,也可以做许多事情。
? 整个UNIX系统的启动过程主要做三项工作:引导核心,检查文件系统,启动各种daemon程序。即它可分为两个阶段:一是系统自举;二是启动UNIX。其中,启动UNIX阶段主要由boot程序引导核心程序开始,即系统的引导。当UNIX被引导运行后,将启动一个称之为init的进程。该进程将启动/etc/inittab文件中所列的进程,并且引导系统进入特定的运行级别。
? 单用户模式又称为系统维护模式,它一般只适用于系统中的用户都已退出系统,并且对系统进行维护操作时。由于在进行模式选择时直接进入到单用户模式,所以没有执行/etc/rc文件中的各种精灵程序和启动程序。而进入多用户模式时,启动的过程从设置系统的时间开始,然后继续启动相关的进程。这一点,从系统的启动过程的提示信息中可以看出。单用户模式root用户和多用户模式下的root用户状态其启动的系统资源是不一样的。读者还可从下列操作的结果中看到。
单用户模式下进行下列的操作:
# ps –ef å
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 May-20 ? 00:00:00 sched
root 1 0 0 May-20 ? 00:00:00 /etc/init
root 2 0 0 May-20 ? 00:00:00 vhand
root 3 0 0 May-20 ? 00:00:00 bdflush
root 4 0 0 May-20 ? 00:00:00 kmdaemon
root 5 1 0 May-20 ? 00:00:00 htepi_daemon /
root 6 0 0 May-20 ? 00:00:00 strd
root 92 1 2 20:02:48 console 00:00:00 -
root 52 1 0 20:02:43 ? 00:00:00 /etc/ifor_pmd
root 53 52 0 20:02:43 ? 00:00:00 /etc/ifor_pmd
root 49 1 0 20:02:38 ? 00:00:00 /etc/syslogd
root 41 1 0 20:02:38 ? 00:00:00 htepi_daemon /stand
root 77 1 0 20:02:47 ? 00:00:00 strerr
root 93 1 0 20:02:49 ? 00:00:00 /var/scohttp/scohttpd -d/var
/scohttp
root 61 53 0 20:02:43 ? 00:00:00 /etc/sco_cpd
root 62 53 0 20:02:43 ? 00:00:00 /etc/ifor_sld
root 102 92 2 20:08:48 console 00:00:00 ps -ef
#_
多用户模式下进行下列的操作:
# ps –ef å
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 May-20 ? 00:00:00 sched
root 1 0 0 May-20 ? 00:00:00 /etc/init
root 2 0 0 May-20 ? 00:00:00 vhand
root 3 0 0 May-20 ? 00:00:00 bdflush
root 4 0 0 May-20 ? 00:00:00 kmdaemon
root 5 1 0 May-20 ? 00:00:00 htepi_daemon /
root 6 0 0 May-20 ? 00:00:00 strd
root 496 1 0 20:10:03 tty01 00:00:00 /bin/login root
root 52 1 0 20:02:43 ? 00:00:00 /etc/ifor_pmd
root 53 52 0 20:02:43 ? 00:00:00 /etc/ifor_pmd
root 49 1 0 20:02:38 ? 00:00:00 /etc/syslogd
root 41 1 0 20:02:38 ? 00:00:00 htepi_daemon /stand
root 77 1 0 20:02:47 ? 00:00:00 strerr
root 497 1 0 20:10:03 tty02 00:00:00 /etc/getty tty02 sc_m
root 61 53 0 20:02:43 ? 00:00:00 /etc/sco_cpd
root 62 53 0 20:02:43 ? 00:00:00 /etc/ifor_sld
root 498 1 0 20:10:04 tty03 00:00:00 /etc/getty tty03 sc_m
root 499 1 0 20:10:04 tty04 00:00:00 /etc/getty tty04 sc_m
root 469 1 0 20:09:58 ? 00:00:00 /usr/lib/scosh/calserver
root 295 1 0 20:09:35 ? 00:00:00 rusersd
root 258 1 0 20:09:33 ? 00:00:00 /etc/cron
root 285 1 0 20:09:35 ? 00:00:00 portmap
root 270 1 0 20:09:34 ? 00:00:00 /usr/lib/lpsched
root 379 1 0 20:09:45 ? 00:00:00 statd
root 294 1 0 20:09:35 ? 00:00:00 rwalld
root 500 1 0 20:10:04 tty05 00:00:00 /etc/getty tty05 sc_m
…
root 313 1 0 20:09:36 ? 00:00:00 /etc/inetd
mmdf 348 1 0 20:09:40 ? 00:00:00 /usr/mmdf/bin/deliver -b
root 374 1 0 20:09:45 ? 00:00:00 biod 4
root 375 1 0 20:09:45 ? 00:00:00 biod 4
root 376 1 0 20:09:45 ? 00:00:00 biod 4
root 377 1 0 20:09:45 ? 00:00:00 biod 4
root 326 1 0 20:09:36 ? 00:00:00 routed
root 346 1 0 20:09:38 ? 00:00:00 /etc/snmpd
…
root 481 1 0 20:10:03 ? 00:00:00 /usr/lib/scosh/caldaemon
root 501 1 0 20:10:04 tty06 00:00:00 /etc/getty tty06 sc_m
root 502 1 0 20:10:04 tty07 00:00:00 /etc/getty tty07 sc_m
root 503 1 0 20:10:04 tty08 00:00:00 /etc/getty tty08 sc_m
root 504 1 0 20:10:04 tty09 00:00:00 /etc/getty tty09 sc_m
root 505 1 0 20:10:04 tty10 00:00:00 /etc/getty tty10 sc_m
root 506 1 0 20:10:04 tty11 00:00:00 /etc/getty tty11 sc_m
root 507 1 0 20:10:04 tty12 00:00:00 /etc/getty tty12 sc_m
root 508 1 0 20:10:04 ? 00:00:00 /tcb/files/no_luid/sdd
root 533 496 2 20:11:25 tty01 00:00:00 -sh
root 541 533 4 20:12:35 tty01 00:00:00 ps -ef
#_
从上述的运行结果看,读者可以发现两种模式下的系统资源配置是不同的。UNIX 是多用户、多任务的操作系统,核心是构成UNIX 内核的程序,但它不能为用户包揽一切。在任何时候, 运行UNIX系统都处在一个运行级(run level)上。用户模式的选择,就是UNIX系统根据用户的选择来启动为用户服务的有关进程(软件的配置)。所以,系统运行的模式体现着系统的资源配置(关于进程的概念,请读者参见第7章的相关章节的内容介绍)。
? 在有些情况下,用户可以让系统自动进行启动。如果在一个指定的时间内,比如60秒,用户没有对启动提示作出反应,系统将自动进行启动。其缺省的过程如下:
(1) 从主硬盘装载缺省核心/stand/unix;
(2) 如果必要的话,清理root文件系统;
(3) 启动到多用户模式;
(4) 停顿30秒以设置日期和时间;
(5) 检查安全性数据库;
(6) 清理并安装在系统启动时设置安装的内容。