海基101计算机:一些基础概念

感谢知乎用户 @话唠 提供选题建议。

本文由AI参与撰写,具体:

  • Deepseek:观点输出概念化,解释实时操作系统、交互设计的概念。

说在前面

本文基本上只罗列并讲述基础概念,所以它理论上不应该算正式文章。

数码圈的事情,说破天还是计算机学。只要是玩数码的,我都建议你关注一下这个东西,玩数码玩到最后是需要转进到科技区的,只有了解科技区的一些事情才能解释数码区出现的一系列技术。

软件危机(Software Crysis)

计算机学术语,指软件开发和维护中遇到的一系列严重问题的统称。

表现

  • 预算大幅超出
  • 大幅偏离用户需求
  • 软件产品质量低下
  • 产品难以维护和管理

产生原因

  • 规模增加,结构越来越复杂
  • 费用不断增加
  • 技术、方式、工具等落后

案例

  • 小米MIUI 12“雷军 金凡”梗与后续的HyperOS RescuePartyPlus删除用户数据事件:MIUI在多年发展中陷入软件危机,同时HyperOS 2并未把MIUI的遗留问题全部修复
  • 华为EMUI下游的荣耀MagicOS锁屏画报事件:提供多个选项,但用户要的是抛弃
  • 华为eNSP、新华三H3C Cloud Lab:依赖老旧版本的VirtualBox,且与Hyper-V等不兼容,导致无人敢谈将其移植到鸿蒙的事宜

操作系统(Operating System)

一个或一组向下管理底层软硬件资源,向上提供公共服务,组织用户交互的程序。

内核(Kernel)

一个或一组向下管理底层硬件资源,向上暴露底层接口、管理软件发出的I/O(输入与输出)要求的程序。

本部分为冷饭,来源于如下文章:

通常:

  • 单片机、MCU:没有内核(不需要操作系统),或RTOS
  • 手机、家用计算机、服务器等:微内核、宏内核、混合内核等

微内核(Microkernel)、宏内核(Monolithic Kernel)、混合内核(Hybrid Kernel)

详见:

看不懂也没关系,你只需要知道大致什么情况就是,避免说出“内核有桌面端和移动端之分”的错误言论。

个人见解:

  • 宏内核:我TM塞爆。(效率最高,但看起来最灵车,哪出问题了跟着内核一起炸)
  • 微内核:除了IPC、虚拟内存、调度等必要的,其余全给我踢到用户空间去,作为模块存在。(设计上模块炸了不会让内核一起炸,但效率就不太好说了)
  • 混合内核:有些东西还是要在内核里面的,有些实在没必要的还是让它在外面为好。(在稳定和效率方面尽量做到平衡)

实时操作系统(Real-Time Operating System)、实时内核(Real-Time Kernel)与通用操作系统、通用内核

这就是另一种分类维度了。它们之间区别不必细究(因为我也没搞懂),主要是“确定性”上的差别(实时内核确定性更好,强调最坏情况可预测)。

例如,一个问题:为什么对比手机大的设备多说微内核之类,而对于手环之类则多提及什么实时性?

简单回答就是二者用途不一样。手环、手表之类错过截止期不能接受(例如传感器数据采集及传递至手机,步数记录、秒针计算与渲染等),而手机则不一样(丢失几个传感器数据是可接受的,不影响画图和分析)。

交互界面(User Interface)与交互范式(Interaction Paradigm)

交互界面UI指人与计算机进行信息交换的”通道“,交互范式指对互动设计的一种特殊思维和方式。

注:这和操作系统无关。例如在Linux中,窗口管理器、桌面环境等是独立组件且可替换,Plasma和GNOME的交互范式差异也相当大。

WIMP(Windows,Icons,Menus,Pointer)

一张图:

图片来源于BetaWorld,Windows 7 Build 7000。

有窗口,有图标,有菜单,有指针(虽然图里看起来没有)。标准的桌面设计核心范式。

后WIMP、自然用户界面(NUI)

如图。

图片来源于BetaWorld,Windows 8.1,“帮助 + 提示”Metro应用。

自然用户界面(NUI)讲究通过用手触摸,用嘴下达指令等人类天生就熟悉的了解世界的方式对计算机进行控制。

手机、平板等使用了这种设计范式,它们讲究去符号化,也就是减少按钮和菜单,让设备操作变得直观且无需额外提示。通常,它们的交互与调度逻辑趋近于单任务前台、后台限制和沙盒化。例如,在图中的Windows 8/8.1/10 平板模式中,体现在沙盒化的Metro/UWP应用、仅允许1-3应用前台等。这些设计是从Windows Phone/Windows Mobile中移植过去的。

需求分析(Requirements Analysis)

一个用于确认新项目的目的、范围、定义、功能等时所需的所有工作。它是软件工程开始的第一步,也是关键步骤。在多个软件工程开发和维护范式当中,需求分析永远是打头阵的,它定义了项目的方向。


由

发布于

修改于

,即

(未显示说明未经修改)

分类:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


许可协议

更多文章

致谢2024年10月6日TuskedEvening0
我是如何通过知乎找到工作的我是如何通过知乎找到工作的2026年8月4日TuskedEvening0