9.1 用户接口

L51

学习目标

寻道调度(电梯等);RAID 思想;一致性检查。Flash 课强调「减少擦写」。

  • SSTF/SCAN。
  • 日志/事务思想保证一致性。
  • Shell 是用户态/任务循环。
  • 本课可用串口简易命令(ps/help)规划。

原理 · 深入理解

9.1 用户接口

用户接口是用户和操作系统说话的窗口。联机时可以敲命令,也可以点图标;脱机时则事先写好作业说明书。本节先分清字符界面和图形界面,再看联机命令大致分哪几类。

  1. 字符显示式联机用户接口
  2. 图形化联机用户接口
  3. 联机命令的类型

9.1.1 字符显示式联机用户接口

两类联机界面

不同操作系统的联机接口并不一样:命令的写法、提示符、甚至同一系统里的几种界面都可能不同。联机用户接口大体分成两类——字符显示式,以及图形化。

字符界面里又常用两种输入习惯:一行一行敲的命令行,和事先写好一串命令再交给系统执行的批命令。

命令行方式

命令行方式以「行」为单位输入和显示。一行通常不超过 256 个字符,回车表示这条命令结束。

执行多半是间断、串行的:前一条尚未执行完毕,一般不会让你接着敲下一条;系统处理完后再次给出提示符,你才能继续。

批命令方式

实际工作里常常要连续敲多条命令、重复某几条,或按条件选用不同命令。若每次都靠键盘一条条敲,既慢又容易打错。

因此操作系统都支持批命令:将一系列命令预先写入批命令文件,一次建立、多次执行。输入次数减少,出错概率降低,使用更为便捷。

9.1.2 图形化联机用户接口

GUI 的引入

命令行和批命令都能向操作系统要服务、控制自己的作业,但要求你记住动词和参数,并严格按格式输入;不同系统的词法、语法也不一样——既不方便,又费时间。

图形用户接口(GUI,Graphical User Interface)正是为了解决这件事:少背命令,多靠看得见的对象来操作。

使用 WIMP 技术

GUI 用图形化操作界面,核心常概括为 WIMP:把窗口、图标、菜单、指点设备,再配上面向对象的想法,集成在一起。

系统功能、应用程序和文件都用形象的图标画出来,形成一个图文并茂的视窗环境。下面可逐步点亮四个字母。

Window(窗口)

一块可独立操作的矩形工作区,程序和对话都装在里面。

Icon(图标)

用小图画代表程序、文件或功能,一眼能认出来。

Menu(菜单)

把可选操作列成条目,点选即可,不必背命令动词。

Pointing device(指点设备)

鼠标等设备用来指向、点击、拖放屏幕上的对象。

Windows 的 GUI 简介

以 Microsoft Windows 为例:系统初始化之后,操作系统为终端用户生成一个运行 explorer.exe 的进程。

这个进程执行的是带窗口界面的命令解释程序;其中有一个特别的窗口,就是大家熟悉的桌面。

系统初始化

内核与基础服务起来之后,才为用户准备桌面环境。

explorer.exe

用户态下的窗口式命令解释进程,负责桌面与资源管理器一类界面。

桌面

一个特殊窗口:图标、任务栏、开始菜单都挂在这里。

9.1.3 联机命令的类型

系统访问类

多用户系统里,为了安全,几乎都会提供注册命令 Login。上机前须向管理员取得合法注册名和口令。

接通终端电源后,系统直接调用注册流程:先提示 Login: 让你输入注册名,再提示 Password: 输入口令。键入口令时关闭回送显示,避免口令留在屏幕上。多次(通常不超过三次)都错,系统会断开与你的连接。

文件操作命令

文件操作命令用来显示、复制、比较、改名和删除文件。名字因系统而异,下面是常见的一类写法(DOS/早期教学示例)。

  1. type:把指定文件内容显示到屏幕
  2. copy:复制文件
  3. comp:比较两个文件(可在同一或不同驱动器)
  4. Rename:把第一参数命名的文件改成第二参数给定的名字
  5. erase:删除一个或一组文件(如 *.BAK 表示删某目录下所有 .Bak)

目录操作命令

目录操作命令管的是「文件夹」这一层:建目录、列目录、看树、删空目录、切换当前目录。

  1. mkdir:建立指定名字的新子目录
  2. dir:显示指定磁盘中的目录项
  3. tree:显示盘上目录路径及其层次
  4. rmdir:删除指定的空子目录(不能删普通文件,也不能删根或当前目录)
  5. chdir:把当前目录改到路径参数给定的目录;「..」表示回到上一级

其它命令

除此之外,联机环境里还常见几类「把命令串起来用」的机制,后面讲 Shell 时还会再展开。

  1. 输入输出重定向
  2. 管道连接
  3. 过滤命令
  4. 批命令

做 · 交互动画

  • 根据「学习目标」列出 3 个关键词,对照原理段落解释给自己听。

用户接口

用控件单步操作;日志区记下每一步发生了什么。

总结与提升

  • 能说出一种提高 Flash 寿命的软件策略。
  • 能用自己的话复述学习目标,并指出概念与板上实验的对应。
  • 能区分 Shell 与内核。

延伸思考

  • 断电瞬间写元数据为何危险?
  • 如果把本节机制拿到 Linux 或完整 OpenHarmony 上,会多出哪些硬件假设?
  • 图形 UI 在 SOWL TFT 上对应哪一层?

← 本阶段封面 · 课程列表