table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}
1、什么是寄存器?它们的功能是什么?
寄存器是位于 CPU 内的一组临时存储单元。其功能是在 CPU 内存储指令和数据,可存储需要立即、快速且频繁使用的数据和指令,便于 CPU 其他组件快速访问其内容。
2、什么是主存储器?
主存储器
主存储器(也称为内存或主存)用于存储当前程序指令、程序要处理的数据以及执行程序指令所创建的中间结果。
它是
短期存储
,仅在程序运行期间保留数据。主存储器由存储单元组成,这些单元保存当前正在执行的程序及其相关数据。
程序执行需要在主存储器和CPU之间进行大量的数据移动。在当前的计算机硬件中,主存储器由称为
内存芯片
的硅基半导体器件实现。
计算机通常有两种类型的主存储器:
随机存取存储器
(RAM)
只读存储器
(ROM)
3、解释指令周期的步骤。解释执行周期的步骤。
指令周期步骤如下:
步骤1
:控制单元将主存中的一条指令读入CPU的指令寄存器;
步骤2
:控制单元增加指令指针寄存器的值,以显示主存中下一条指令的位置;
步骤3
:控制单元向算术逻辑单元发出执行该指令的信号。
执行周期步骤如下:
步骤1
:算术逻辑单元访问指令寄存器中指令的操作码,以确定要执行的功能并获取指令的输入数据;
步骤2
:算术逻辑单元执行该指令;
步骤3
:指令的执行结果存储在寄存器中,或者返回给控制单元以便写入内存。
4、解释单任务处理和多任务处理,并说明它们的区别。
单任务处理与多任务处理操作系统的区别
单任务处理(单程序设计)操作系统
被设计为一次只执行一个进程,通常用于单用户环境,一般局限于微型计算机和某些特定的专业应用。
多任务处理(多程序设计)操作系统
能够为一个用户同时执行多个程序,当用户在前台处理一项任务时,它可以在后台运行多个程序。
示例
:
用户可以在前台使用文字处理器撰写备忘录时,指示操作系统在后台对一个大文件进行排序,当后台任务完成时,操作系统会通知用户。
区别总结
:
单任务处理一次只能执行一个进程,而多任务处理可以同时执行多个程序。
5、解释单用户和多用户环境,并说明它们的区别。
单用户环境与多用户环境的区别
单用户环境
所有可用资源分配给单个程序。
该程序是计算机中唯一运行的程序。
一次只有一个程序处于活动状态。
单任务操作系统通常用于此类环境。
一次只能执行一个进程。
一般限于微型计算机和某些特定应用。
多用户环境
多个用户(终端)可以使用同一台主机。
多用户操作系统是复杂软件,能同时为所有用户提供服务。
用户程序存于主内存,看似同时执行。
但实际上只有一个CPU,处理器一次只能执行一个程序。
操作系统利用计算机与外围设备的速度差异来实现多用户使用。
二者区别
资源分配和使用方式
:
单用户环境:资源仅分配给一个程序。
多用户环境:需解决不同用户程序对同一资源请求产生的冲突。
6、什么是系统软件?
系统软件
系统软件是一组主要控制计算机内部性能的程序。该类别中最重要的软件是
操作系统
,它控制计算机的基本功能,并为应用程序提供平台。其他系统软件包括:
数据库管理系统(DBMS)
通信软件等
7、操作系统的主要组成部分(功能)有哪些?
操作系统的主要功能
操作系统的主要功能包括:
为用户和应用程序提供访问底层硬件功能的接口;
为用户及其应用程序分配硬件资源;
代表用户加载和接受应用程序。
此外,操作系统还:
控制计算机资源(主内存、CPU时间和外围设备);
监控和分配主内存;
协调外围设备的使用;
持续响应程序的资源需求;
解决资源冲突;
优化资源分配。
8、解释操作系统软件的层次结构。
操作系统软件的层次结构
操作系统软件可视为分层的软件集合,主要有以下三层:
1. 内核层
是操作系统软件的最内层,直接与硬件交互。
提供操作系统最基本的功能,例如:
加载和执行程序
分配硬件资源
使操作系统具有一定的机器独立性,让用户无需了解硬件细节。
2. 服务层
接受命令层或应用程序的服务请求。
将服务请求转化为对内核的详细指令,并处理结果返回给请求服务的程序。
提供的功能包括:
对输入输出设备、存储设备的访问
文件操作
窗口管理
网络通信
基本数据库服务等。
3. 命令层(也称外壳)
是操作系统的最外层,提供用户界面。
用户可直接与之交互。
响应操作系统支持的特定命令集,该命令集及其语法要求称为命令语言。
9、什么是内核层?它执行什么功能?
内核层的作用
内核层是操作系统软件的最内层,是唯一直接与硬件交互的层,这为操作系统提供了一定程度的机器独立性。理论上,只需更改内核,操作系统就能与不同的计算机硬件交互。
它提供操作系统最基本的功能,包括:
加载和执行程序
为各个程序分配硬件资源(如CPU时间、磁盘驱动器访问权限等)
将硬件和软件的交互集中在这一层,使应用层的用户无需直接了解硬件细节。
10、什么是服务层?它有什么功能?
服务层接收来自命令层或应用程序的服务请求,并将其转化为给内核的详细指令。若有处理结果,会将其传回请求服务的程序。
服务层包含一组程序,提供以下类型的服务:
- 对 I/O 设备的访问(如将数据从应用程序传送到打印机或终端)
- 对存储设备的访问(如将数据从磁带驱动器或磁盘传送到应用程序)
- 文件操作(如打开和关闭文件、从文件读取数据和向文件写入数据)
- 其他服务(如窗口管理、访问通信网络和基本数据库服务)
11、主存储(一级存储)和二级存储有什么区别?
存储系统概述
主存储(一级存储)
位置:位于CPU外部
类型:高速设备(如RAM)
功能:用于存储当前正在执行的整个程序或部分程序以及相关数据的一部分
特点:
短期存储
程序运行期间保留数据
易失性存储,断电后内容丢失
二级存储
类型:低速设备
存储方式:采用电磁或光学方式
功能:用于存储当前未执行的程序和大量数据
特点:
主内存的非易失性扩展
用于长期存储
计算机不能直接执行存储在二级存储上的程序或处理数据
需先将数据复制到主内存中
12、解释虚拟内存。为什么要使用它?
虚拟内存
虚拟内存是操作系统为解决物理内存不足而采用的一种技术。
程序被分割成较小的部分即
页面
,在操作系统控制下,仅将程序必要的页面读入主存以支持程序运行。
硬盘上会创建
交换空间
,内存页面会写入该预留区域,此区域被视为物理内存的扩展。
通过在交换空间和随机存取存储器(
RAM
)之间来回移动页面,操作系统能表现得好像拥有比实际更多的物理内存。
使用虚拟内存的目的
在物理内存有限的情况下,支持对内存需求较大的程序运行。
以相对较少的主存需求运行较大的程序。
缺点
由于硬盘访问速度较慢,会牺牲一定的速度来换取内存效率。
13、两个主要的UNIX系统版本是什么?
AT&T UNIX版本V和伯克利UNIX
14、什么是内核?
UNIX内核概述
UNIX内核也称为基础操作系统,是管理所有依赖硬件功能的层。这些功能分布在UNIX内核的多个模块中。
内核层由最接近硬件的模块组成,大部分受保护,应用程序无法直接访问,用户也不能直接访问它。此外,实用程序和UNIX命令不属于内核。
内核是UNIX系统的核心,从系统启动到关闭一直驻留在内存中。所有直接与硬件通信的例程都集中在内核中,与操作系统的其他部分相比,它相对较小。
15、什么是shell?
shell是一个程序,和其他程序一样,在系统上没有特殊权限。
16、为什么要重写UNIX?使用了哪种计算机语言?
因为UNIX最初用汇编语言编写,汇编语言编写的程序依赖于计算机架构,将UNIX从一台计算机转移到另一台计算机需要对程序进行大量重写。而高级语言比汇编语言更易于使用,所以决定用高级语言重写UNIX。使用的语言是C语言。
17、UNIX是多用户、多任务操作系统吗?
是的,UNIX 具有多用户能力,多个用户可同时共享计算机资源;也具备多任务能力,允许用户启动任务后在后台运行该任务的同时执行其他任务,还能在任务间切换。
18、什么是shell脚本?
shell脚本是一个包含一系列命令的文件。许多数据处理应用程序会频繁运行,或在其他情况下,一组命令必须多次输入。反复输入相同的命令既烦人又容易出错,编写shell脚本可以解决这个难题。
19、列举一些UNIX变体。
一些UNIX变体包括Linux、Solaris和UnixWare。
20、登录UNIX系统的过程是什么?
要使用UNIX系统,首先要登录。打开电脑屏幕显示后,按[Return]键开始登录过程。当UNIX准备好让用户登录时,会显示一些消息(因系统而异),然后显示“login:”提示。
大多数UNIX系统要求用户先设置账户,账户创建时会确定登录名(也称为用户ID或用户名)和密码。用户ID通常由系统管理员(或在大学计算机系统中由教授)分配,是唯一的,用于向系统标识用户。
用户在“login:”提示后输入用户ID并按[Return]键,之后系统会显示“password:”提示。若账户未分配密码,UNIX不会显示“password:”提示,登录过程结束。
21、注销过程是什么?
当你使用完系统后进行签退的过程称为
注销
。要注销时,屏幕上必须显示提示符,不能在进程进行中注销。
在提示符处按
[Ctrl - d]
(即同时按住
Ctrl
键并按下字母
d
键),系统会识别该命令。
UNIX
系统首先会显示系统管理员设置的注销消息,然后屏幕会显示系统的标准欢迎消息和:
login:
这表明你已正确注销,终端已准备好供下一个用户使用。
22、为什么会给你分配一个登录名?
大多数 UNIX 系统要求用户在使用计算机前设置账户,创建账户时会同时建立登录名(也称为用户 ID 或用户名)和密码。用户 ID 由系统管理员(或在学校计算机系统中由教授)分配,它是唯一的,用于向系统标识用户身份。
23、什么是shell程序,它在UNIX环境中起什么作用?
Shell程序文件
shell程序文件被称为
shell过程
、
shell脚本
或简称为
脚本
。它是一个包含一系列供shell执行的命令的文件。
执行shell脚本时,脚本文件中的每个命令会依次传递给shell执行。当文件中的所有命令执行完毕或出现错误时,脚本结束。
在UNIX环境中,当用户希望UNIX执行没有对应命令的功能,或同时执行多个命令时,可编写shell程序。
由于UNIX命令众多、难记且输入繁琐,编写脚本文件使用可避免记忆复杂的命令语法,适合打字不熟练的用户。
此外,shell语言是一种命令语言,具有许多计算机编程语言常见的特性。使用shell编程语言便于编写、修改和调试程序,且无需编译,编写完成后即可执行。
24、选择密码的一般规则有哪些?
选择密码时应遵循的一般规则
不使用任何语言的字典词汇;
不使用人名、宠物名、地名或书中角色名;
不使用自己姓名和 ID/账户名的任何变体;
不使用与自己相关的已知信息,如电话号码、生日等;
不使用简单的键盘按键模式或易记序列。
25、UNIX命令的一般格式是什么?
UNIX命令的一般格式为:
$ command [ - options ] [ arguments ]
其中:
$
是系统提示符
command
是命令名
- options
是一个或多个单字母选项,前面的减号表示这是一个选项
arguments
通常是文件名或路径名
方括号内的字段对于大多数命令是可选的
各字段之间用一个或多个空格分隔
26、如何结束命令行会话?
通常,按
[Ctrl - d]
或使用
exit
命令来注销并结束会话。若想通过输入
bye
注销,可编写一个名为
bye
的脚本文件,其中包含一行代码
exit
。
27、什么是命令名?
任何有效的UNIX命令或实用程序都可作为命令名。在UNIX系统中,命令和实用程序有所不同,但“命令”一词可同时指代两者。UNIX是区分大小写的系统,只接受小写字母的命令名。
28、命令行中的选项字段是什么?
选项是命令的变体。如果包含在命令行中,通常前面会有一个减号(
-
)。大多数选项由单个小写字母指定,并且可以在一个命令行中指定多个选项。
29、命令行中的参数字段是什么?
命令执行操作所需的额外信息称为
参数
。
例如,若命令是打印,就必须告知 UNIX 打印内容(文件名)以及文件位置(磁盘上的某处),文件名加上文件在磁盘上的位置就是参数字段的一个示例。
30、请列举不同类型的UNIX shell以及它们的提示符。
不同类型的 UNIX shell
Bourne shell(sh)
Korn shell(ksh)
C shell(csh)
Bourne Again shell(bash)
提示符说明
Bourne shell、Korn shell 和 Bourne Again shell
的提示符是美元符号(
$
)。
C shell
的提示符是百分号(
%
)。
31、什么是实用程序?
实用程序是标准 UNIX 系统的一部分,是设计用于执行用户所需各种功能的程序,也被称为命令。UNIX 系统包含 100 多个实用程序,包括:
文本编辑和文本格式化实用程序
文件操作实用程序
电子邮件实用程序
程序员工具
32、使用你的用户 ID 和密码登录系统。留意屏幕上出现的消息。
在开启终端并等待出现
"login:"
提示后,输入用户 ID 并按
[Return]
键,接着在出现
"password:"
提示时输入密码并按
[Return]
键,登录过程中留意屏幕显示的消息。
33、检查提示符并找出你正在使用的是哪种类型的 shell。
不同类型 shell 的提示符不同,Bourne shell(sh)、Korn shell(ksh)和 Bourne Again shell(bash)的提示符是美元符号(
$
),C shell(csh)的提示符是百分号(
%
)。可通过查看提示符来确定使用的 shell 类型。
34、使用 who 命令来查明当前有哪些用户登录到了系统。
可以使用命令
$ who
,其输出示例如下:
david tty04 Nov 28 08:27
daniel tty10 Nov 28 08:30
其中第一列显示用户的登录名,能由此得知当前登录到系统的用户。
35、使用 who 命令选项来查明系统中的用户数量以及系统的最后启动时间。
要查明系统中的用户数量,可使用
who --count
命令;要查明系统的最后启动时间,可使用
who -b
命令。
36、找出UNIX系统中可用的帮助组织程序开发过程的实用工具,并简述其作用。
在UNIX环境中有以下实用工具可帮助组织程序开发过程:
make实用工具
:当程序由多个文件组成时很有用,它能自动跟踪已更改且需要重新编译的源文件,并在需要时重新链接程序,其信息来自包含源文件依赖规则等信息的控制文件。
SCCS实用工具
:即源代码控制系统,是一组有助于维护和管理程序开发的程序,在其控制下可轻松创建程序的不同版本,并跟踪不同版本间的所有更改。
37、使用date命令查看当前日期和时间。
在命令行输入
date
并回车,即可显示当前日期和时间,例如:
Sat Nov 27 14:00:52 EDT 2005
38、使用 cal 命令查找你出生日期是星期几。
使用
cal
命令查找出生日期是星期几,需要知道具体的月份和年份。
使用格式为:
cal [月份] [年份]
其中:
月份是
1 到 12
之间的数字
年份是
1 到 9999
之间的完整年份值
例如:
若出生日期是
2000 年 5 月
,可在命令行输入:
cal 5 2000
回车后会显示该月日历,从中可查看出生日期对应的星期。
39、查看2007年的日历。
可以使用命令“cal 2007”来查看2007年的日历。
40、尝试使用删除键纠正你的输入错误。
在Emacs编辑器中,可使用
Backspace
或
Delete
键删除光标前的字符,使用
Ctrl-d
删除光标下的字符;在vi编辑器中,可使用
x
删除光标指定位置的字符,使用
dd
删除光标指定的行。这些操作可用于纠正输入错误。
41、请列举 Linux 系统中 who 命令的一些常用选项及其作用,并给出相应的使用示例。
在 Linux 系统中,
who
命令的相关选项使用示例如下:
使用
--count
选项显示用户数量,如
bash
$ who --count
会显示登录用户的名字和用户数量;
使用
-b
选项显示最后一次系统启动的时间和日期,如
bash
$ who -b
使用
--help
选项显示
who
命令的使用说明,如
bash
$ who --help
会列出
who
命令的各种选项及其作用;
使用
-H
或
--heading
选项显示每列的标题。
42、使用 man 命令获取 passwd 和 date 命令的详细信息。
要获取
passwd
和
date
命令的详细信息,可在命令行中分别输入:
man passwd
和
man date
然后按下回车键。系统可能需要一些时间来查找所选命令的信息。
43、将你当前的 shell 更改为另一个 shell。例如,如果你的当前 shell 是 Bourne shell (sh),将其更改为 Korn shell (ksh),或者在 Linux 系统中,将其更改为 Bourne Again shell (bash)。观察提示符。然后返回你原来的 shell。
假设当前 shell 是 `sh`,若要切换到 `ksh`,可输入 `ksh` 并回车;若在 Linux 系统要切换到 `bash`,可输入 `bash` 并回车。切换后会看到相应 shell 的提示符(`ksh` 和 `sh`、`bash` 提示符通常为 `$`,`csh` 为 `%`)。若要返回原来的 shell,输入 `exit` 并回车。
例如:
$ ksh [回车] # 切换到 ksh
ksh$ exit [回车] # 返回原来的 shell
$ bash [回车] # 切换到 bash
bash$ exit [回车] # 返回原来的 shell
##44、Log off to end your session. 这句话是什么意思?
注销以结束你的会话。
##45、什么是编辑器?
# 编辑器
编辑器(文本编辑器)是一种便于创建文件或修改现有文件的工具。文件可能包含笔记、备忘录、程序源代码等。
编辑器是一种简化的普通文字处理器,它不具备文字处理器所拥有的排版功能(如加粗、居中、下划线等)。
每个操作系统的软件至少会提供一个编辑器程序。
编辑器一般分为两种类型:
- 行编辑器
- 全屏编辑器
##46、列举UNIX操作系统支持的编辑器。
UNIX操作系统支持的编辑器包括:
- **行编辑器**:
- `ex`
- `ed`
- **屏幕编辑器**:
- `vi`
- `emacs`
##47、列举vi编辑器的模式。
命令模式和文本输入模式
##48、列出能使vi编辑器进入文本输入模式的按键。
i、I、a、A、o、O
##49、解释vi编辑器如何使用缓冲区。
# vi 编辑器缓冲区说明
vi 编辑器使用多种缓冲区进行临时存储,主要包括以下两类:
## 工作缓冲区
- 用于存放文件副本。
- 使用写入命令时,该缓冲区内容会复制到永久文件。
## 临时缓冲区
临时缓冲区又分为编号缓冲区和命名缓冲区。
### 编号缓冲区
- 共有 9 个,编号从 1 到 9。
- 每次删除或复制文本时,内容会存入这些缓冲区。
- 新的删除或复制操作会替换之前的内容,并将旧内容依次上移一个缓冲区。
- 缓冲区 1 始终保存最近更改的内容。
- 可通过指定缓冲区编号和 `put` 操作符(如 `9p`)来恢复编号缓冲区内容。
- 访问缓冲区不会改变其内容。
- 当所有九个缓冲区都满时,vi 需要将缓冲区 1 存储新内容,缓冲区 9 的内容会丢失。
### 命名缓冲区
- 复制的文本也会保存到临时缓冲区。
##50、请说出保存文件并退出vi编辑器的命令。
:wq、ZZ
##51、请说出仅保存文件并停留在vi编辑器中的命令。
:w
##52、说出将vi编辑器置于命令模式的键。
[Esc]键
##53、说出将光标位置向前移动一个单词的键。
w、Meta-f
##54、请说出能使光标向上、向下、向左和向右移动的光标移动键。
在 `vi` 编辑器中:
- 向上移动光标:`k` 或 `[Up Arrow]`
- 向下移动光标:`j` 或 `[Down Arrow]`
- 向左移动光标:`h` 或 `[Left Arrow]`
- 向右移动光标:`l` 或 `[Right Arrow]`、`[Spacebar]`
在 `Emacs` 编辑器中:
- 向上移动光标:`Ctrl - p`
- 向下移动光标:`Ctrl - n`
- 向左移动光标:`Ctrl - b`
- 向右移动光标:`Ctrl - f`
##55、说出撤销最近更改的键。
u
##56、说出撤销当前行所有更改的键。
U
##57、将左列的命令与右列的解释进行匹配。1. x a. 将光标位置向上移动一行。2. r b. 删除光标下的字符。3. / c. 将光标位置移动到当前行的开头。4. ? d. 将你输入的文本追加到当前行的最后一个字符之后。5. h e. 将光标位置移动到当前行的末尾。6. A f. 向后搜索指定的模式。7. q! g. 不保存文件退出vi编辑器。8. wq h. 保存文件并退出vi编辑器。9. a i. 将你输入的文本放在光标所在字符之后。10. $ j. 将光标位置向左移动一个空格。11. 0(零) k. 向前搜索指定的模式。12. k l. 替换光标所在的字符。
```markdown
1. b
2. l
3. k
4. f
5. j
6. d
7. g
8. h
9. i
10. e
11. c
12. a
58、使用vi编辑器创建一个名为Chapter4的文件,并输入一段文本:The vi history The vi editor was developed at the University of california, berkeley as part of the berkeley unix system.
要使用
vi
编辑器创建名为
Chapter4
的文件并输入指定文本,可按以下步骤操作:
启动
vi
编辑器,在终端中输入:
vi Chapter4
然后按回车键。
如果
Chapter4
文件不存在,
vi
会清除屏幕,显示
vi
空白屏幕,并将光标定位在屏幕左上角。此时
vi
处于命令模式。
确保大写锁定键([Caps Lock])关闭,然后按
i
键进入文本输入模式。
输入文本:
The vi history The vi editor was developed at the University of california, berkeley as part of the berkeley unix system.
使用退格键([Backspace])或 [Ctrl – h] 来删除字符,在每行末尾按回车键转到下一行。
59、保存此文件。
在Emacs中,若要保存已做更改的文件,可按
[Ctrl - x] s
,之后在迷你缓冲区会显示提示,若要保存当前提示的文件,可输入
y
;在vi中,按
[Esc]
确保处于命令模式,然后输入
:wq [Return]
可关闭vi并保存文件。
60、再次保存此文件。
在Emacs中,若要再次保存文件,可按
Ctrl-x s
;在vi中,若要保存文件,可使用
:w
命令,若要覆盖已存在文件可使用
:w!
命令。
61、使用 /(向前搜索)查找单词 vi。使用 n 查找单词 vi 的下一个出现位置。
按下
[Esc]
确保 vi 处于命令模式,然后输入
/vi
并按下
[Return]
,vi 会从光标当前位置开始向前搜索字符字符串
vi
,若文件中有该字符串,光标会定位到其首次出现的位置。之后按
n
可移动光标到
vi
的下一个出现位置,每次按
n
,vi 都会显示正在搜索的模式的下一个出现位置,直到文件末尾,然后回到文件开头继续该过程。