我已经使用 Linux 大约 6 个月了,并且接触过 cmus、MPlayer 和 sc 等终端程序。我想知道在创建 GUI 之前程序可以变得多复杂。例如,如果我使用 GIMP 并使其在终端中呈现和工作完全相同。我想我只是不了解终端的局限性(如果有的话)。任何知道终端局限性或知道可以指出这一点的资源的人都将不胜感激。
答案1
这不是复杂性的问题,而是数据表示和分辨率的问题。经典终端仅包含文本,而完整的 GUI 则基于像素,使用像素绘制任何文本。
在传统终端中,只能显示字符。虽然可以只用文本来实现完整的“图形”菜单,甚至鼠标手势,但与完整的 GUI 相比,有时它有点笨拙,但仍然非常实用,而且可能非常复杂。
但是,像在 gimp 中那样显示图像不能仅通过文本来实现。你可以用 ascii art 来表示图像,但这并不完全一样,而且分辨率也不行。
类似地,您可以在原始图形帧缓冲区中实现类似 gimp 的功能,而无需完整的 GUI,但仍可充分利用像素表示和分辨率,但它会缺少窗口操作等功能,因此您可能只能使用单个窗口和单个应用程序,或者您必须重新实现完整的 GUI。此外,gimp 所基于的 GUI 工具包必须移植到帧缓冲区,因为它旨在使用完整 GUI 中提供的支持。
答案2
理论上,运行某个 Ubuntu 版本的终端能够在没有桌面环境的情况下启动另一个 Ubuntu 版本的虚拟机最小客户操作系统,并模拟安装和卸载等包管理操作,而无需对最小客户操作系统进行任何更改。所有这些都不依赖于 GUI,因此可以完全在终端的命令行中完成。
这种纯文本最小客户操作系统的用途之一是告知用户是否可以升级现有的 Ubuntu 安装,而无需卸载任何当前安装的应用程序。