例如,卸载是在文件系统中实现的。
更改视频分辨率是在计算机程序中实现的,该程序使用视频渲染硬件来跟踪和管理监视器上的显示。
在命令行中,您可以更改结果(我在 Ubuntu 中这样做了,Ubuntu 本质上是 Linux)。
解析 Linux 内核 API 的命令接口是否类似于在 GUI 程序中执行此操作以更改分辨率,或者 CLI 在这种形式上是否有所不同?
希望我的问题不会太令人困惑。如果是的话,我会适当编辑。
答案1
在 Linux 中,GUI 应用程序和终端应用程序之间实际上没有任何有意义的区别。事实上,X 是只是另一个应用程序——它恰好做了一些相当复杂的事情,但就操作系统而言,它没有什么特别的。 X 可以做的任何事情,任何其他应用程序都可以做,最后,X 就是管理显示和输入设备并公开统一的 API 来执行诸如绘制到屏幕和读取指点设备输入之类的操作,而不管底层如何硬件。各种工具包(例如 Qt、GTK 等)在此基础上构建,提供了一种更高级的方法来开发用户态应用程序,提供输入文本框、菜单、可单击按钮、列表视图等高级功能。
一些 Linux 应用程序甚至公开双用户界面,根据当前终端是否连接显示器来选择使用哪一个。更多的版本有单独的版本,具体取决于您是否需要 X 接口。例如 Emacs 和 Vim。
这与 Windows 或(我相信)OS X 形成鲜明对比,其中 GUI 出于所有意图和目的都是操作系统本身不可分割的一部分。以 Windows Server Core 为例;他们取消了资源管理器和一大堆其他东西,但他们保留了 GUI,除非默认情况下它只会将你带到命令提示符窗口!现在那需要一些时间来适应。
Linux 内核不关心任何命令行,除了它自己的命令行(您可以通过启动管理器编辑的命令行)。除此之外的任何事情(包括 $PATH 处理和文件名通配)都由用户空间应用程序处理,例如 GNOME 桌面、bash shell、系统初始化应用程序(通常是 /sbin/init——尽管该应用程序是有些内核的一部分和用户层程序之间的混合体,就像任何其他程序一样,它在用户空间中执行,并且没有内核授予的特殊权限)、文本编辑器或其他任何东西。
Ubuntu 并不是“本质上是 Linux”;而是“本质上是 Linux”。它是一个 Linux 发行版,如 Debian、Slackware、RHEL、SuSE 或任何其他发行版。他们可能会像几乎所有其他主流发行版一样打包自己的一些软件,但其中没有任何非 Linux 的东西。但它与 Debian 密切相关,能可以在没有 Linux 的情况下使用(即 Debian/kFreeBSD,它与旧的 Debian 几乎相同,但运行在 FreeBSD 内核之上)。