Linux中什么是“桌面”和X窗口系统

本文深入解析了Linux图形用户环境的基础——X窗口系统。详细介绍了X服务器、X客户端程序、窗口管理器、显示管理器和widget库的功能及作用,以及它们在桌面环境中的整合方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里的“桌面”指的是桌面环境,Linux不是一种基于图形界面环境的操作系统,它的图形环境是完全可以卸载。在内核眼里,图形环境只不过是一个普通的应用程序,和其他的服务器程序没有什么不同。
在说桌面,先讲X窗口系统的基本组成。X窗口系统(X Window System)是Linux图形用户环境的基础,基于一种够独特的服务器/客户机架构。

X窗口系统的基本组成

  1. X服务器
    X服务器用于实际控制输入设备(如键盘、鼠标等)和位图式输出设备((如显示器)。准确地说,X服务器定义了给X客户机使用这些设备的抽象接口,但没有定义高级实体的编程接口,这意味着它不能理解“画一个按钮”这类语句。而必须告诉它:“画一个方块,周围有阴影,用户点鼠标左键的时候阴影要消失、、、方块上还要有字、、”。
    这种设计的意义在于,X服务器能够最大程度上的与平台无关。用户可以自由选择窗口管理器和widget库来定制自己的桌面,而不需要改变窗口系统的底层配置。
  2. X客户端程序
    需要向X服务器请求服务的程序就是X客户端程序。
  3. 窗口管理器
    窗口管理器负责控制应用程序窗口的各种行为,如移动、缩放、最大化和最小化窗口,在多个窗口间切换等。从本质上来说,窗口管理器是一种特殊的X客户端程序,因为这些功能也是需要向X服务器发送指令实现的。
  4. 显示管理器
    显示管理器提供了一个登录界面,它的任务就是验证用户的身份,让用户登录到系统。可以说,图形界面的一切(除了它自己)都是由显示管理器启动,包括X服务器。用户可以选择关闭显示管理器,这样就必须通过命令运行startx命令(或使用.login脚本)来启动X服务器。
  5. widget库
    widget库定义了一套图形用户界面的编程接口。应用程序的开发人员调用widget库来实现具体的用户界面,如按钮、菜单、滚动条、文本框等。
  6. 桌面环境
    桌面环境是把各种X有关的东西(除了X服务器)整合在一起的“大杂烩”。这些程序包括像gedit这样的普通应用软件、窗口管理器、显示管理器和widget库。无论桌面环境如何复杂,最后处理图形输出的仍然是X服务器。

X系统的启动过程

X系统的启动过程基本是由显示管理器完成的。显示管理器需要做下面的工作:

  1. 启动X服务器
  2. 提供一个友界面友好的屏幕,等待验证用户的身份。
  3. 执行用户的引导脚本,这个脚本用于建立用户的桌面环境。
    桌面环境的引导脚本是一段用Linux命令组成的脚本程序,叫做Xsession。Xsession通过启动窗口管理器、任务栏,设定应用默认值、安装标准键绑定等来启动整个桌面环境。Xsession会一直运行,直到用户退出,或者说,当Xsession结束后,用户就退出了。窗口管理器(Window Manager)是Xsession启动的唯一的前提程序(其他程序都在后台执行),如果没有这个前台程序,那么用户会在登录又立即退出系统。

第一次使用这个Markdown编辑工具,基本不会用,纯文字没有划重点,有怪莫怪。感觉还是之前那个富文本编辑好用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值