9.1 用户接口
L51
学习目标
寻道调度(电梯等);RAID 思想;一致性检查。Flash 课强调「减少擦写」。
- SSTF/SCAN。
- 日志/事务思想保证一致性。
- Shell 是用户态/任务循环。
- 本课可用串口简易命令(ps/help)规划。
原理 · 深入理解
9.1 用户接口
用户接口是用户和操作系统说话的窗口。联机时可以敲命令,也可以点图标;脱机时则事先写好作业说明书。本节先分清字符界面和图形界面,再看联机命令大致分哪几类。
- 字符显示式联机用户接口
- 图形化联机用户接口
- 联机命令的类型
9.1.1 字符显示式联机用户接口
两类联机界面
不同操作系统的联机接口并不一样:命令的写法、提示符、甚至同一系统里的几种界面都可能不同。联机用户接口大体分成两类——字符显示式,以及图形化。
字符界面里又常用两种输入习惯:一行一行敲的命令行,和事先写好一串命令再交给系统执行的批命令。
命令行方式
命令行方式以「行」为单位输入和显示。一行通常不超过 256 个字符,回车表示这条命令结束。
执行多半是间断、串行的:前一条尚未执行完毕,一般不会让你接着敲下一条;系统处理完后再次给出提示符,你才能继续。
批命令方式
实际工作里常常要连续敲多条命令、重复某几条,或按条件选用不同命令。若每次都靠键盘一条条敲,既慢又容易打错。
因此操作系统都支持批命令:将一系列命令预先写入批命令文件,一次建立、多次执行。输入次数减少,出错概率降低,使用更为便捷。
9.1.2 图形化联机用户接口
GUI 的引入
命令行和批命令都能向操作系统要服务、控制自己的作业,但要求你记住动词和参数,并严格按格式输入;不同系统的词法、语法也不一样——既不方便,又费时间。
图形用户接口(GUI,Graphical User Interface)正是为了解决这件事:少背命令,多靠看得见的对象来操作。
使用 WIMP 技术
GUI 用图形化操作界面,核心常概括为 WIMP:把窗口、图标、菜单、指点设备,再配上面向对象的想法,集成在一起。
系统功能、应用程序和文件都用形象的图标画出来,形成一个图文并茂的视窗环境。下面可逐步点亮四个字母。
一块可独立操作的矩形工作区,程序和对话都装在里面。
用小图画代表程序、文件或功能,一眼能认出来。
把可选操作列成条目,点选即可,不必背命令动词。
鼠标等设备用来指向、点击、拖放屏幕上的对象。
Windows 的 GUI 简介
以 Microsoft Windows 为例:系统初始化之后,操作系统为终端用户生成一个运行 explorer.exe 的进程。
这个进程执行的是带窗口界面的命令解释程序;其中有一个特别的窗口,就是大家熟悉的桌面。
内核与基础服务起来之后,才为用户准备桌面环境。
用户态下的窗口式命令解释进程,负责桌面与资源管理器一类界面。
一个特殊窗口:图标、任务栏、开始菜单都挂在这里。
9.1.3 联机命令的类型
系统访问类
多用户系统里,为了安全,几乎都会提供注册命令 Login。上机前须向管理员取得合法注册名和口令。
接通终端电源后,系统直接调用注册流程:先提示 Login: 让你输入注册名,再提示 Password: 输入口令。键入口令时关闭回送显示,避免口令留在屏幕上。多次(通常不超过三次)都错,系统会断开与你的连接。
文件操作命令
文件操作命令用来显示、复制、比较、改名和删除文件。名字因系统而异,下面是常见的一类写法(DOS/早期教学示例)。
- type:把指定文件内容显示到屏幕
- copy:复制文件
- comp:比较两个文件(可在同一或不同驱动器)
- Rename:把第一参数命名的文件改成第二参数给定的名字
- erase:删除一个或一组文件(如 *.BAK 表示删某目录下所有 .Bak)
目录操作命令
目录操作命令管的是「文件夹」这一层:建目录、列目录、看树、删空目录、切换当前目录。
- mkdir:建立指定名字的新子目录
- dir:显示指定磁盘中的目录项
- tree:显示盘上目录路径及其层次
- rmdir:删除指定的空子目录(不能删普通文件,也不能删根或当前目录)
- chdir:把当前目录改到路径参数给定的目录;「..」表示回到上一级
其它命令
除此之外,联机环境里还常见几类「把命令串起来用」的机制,后面讲 Shell 时还会再展开。
- 输入输出重定向
- 管道连接
- 过滤命令
- 批命令
做 · 交互动画
- 根据「学习目标」列出 3 个关键词,对照原理段落解释给自己听。
用户接口
用控件单步操作;日志区记下每一步发生了什么。
总结与提升
- 能说出一种提高 Flash 寿命的软件策略。
- 能用自己的话复述学习目标,并指出概念与板上实验的对应。
- 能区分 Shell 与内核。
延伸思考
- 断电瞬间写元数据为何危险?
- 如果把本节机制拿到 Linux 或完整 OpenHarmony 上,会多出哪些硬件假设?
- 图形 UI 在 SOWL TFT 上对应哪一层?