【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

Linux 图形界面的显示原理是什么?

放大字体  缩小字体 发布日期:2020-06-20 04:19:22    浏览次数:16
导读

  我也不清楚怎么描述这个问题:我在wsl下装了vscode,把所有需要的图形的库都装齐了。运行正常,后台都有进程,但是没有界面;此外我运行vmd ovito,控制台也有也在运行,但是也没有界面。 其实问题重点并不是在于怎么在wsl下用图形界面,而是想借此机会了解一下linux系统显示图形界面的原理,为什么装了软件要求的图形

  我也不清楚怎么描述这个问题:我在wsl下装了vscode,把所有需要的图形的库都装齐了。运行正常,后台都有进程,但是没有界面;此外我运行vmd ovito,控制台也有也在运行,但是也没有界面。 其实问题重点并不是在于怎么在wsl下用图形界面,而是想借此机会了解一下linux系统显示图形界面的原理,为什么装了软件要求的图形库却仍然没有界面显示。所以我想问这个界面是怎么显示出来的?有人装了xfce就能用这些软件的图形界面了,这是…

  X窗口系统:X Window System.这是MIT 1984年提出的以位图图像显示图形化界面的一套软件规范及协议.

  客户端(也就是各种软件)将绘图请求发给服务端,服务端操纵显卡或视频终端把位图图像绘制出来,并处理键盘鼠标的事件,发送给客户端.注意,和人交互的是服务端.

  而为了方便编写GUI程序,程序员开发出GTK,QT这种图形库,这些图形库作为X window的客户端工作.

  WSL是Windows的一个子系统,科学的(非官方)名称为GNU/NT:lxcore.微软没有从Linux抄一行代码,实现了Linux大部分二进制接口,但是目前没有实现Linux的显卡驱动功能,因此即使WSL中安装了Xorg,也会不能启动.

  为了管理众多的窗口怎么在屏幕上显示,需要窗口管理器(Window manager).窗口管理器可以实现一个屏幕上显示多个X程序,实现调整程序大小,标题栏,最大化,最小化,关闭按钮,虚拟桌面这些功能.

  为了使用方便,一般还需要Windows里任务栏,开始按钮,通知区域这种功能,Linux里一般称之为面板.

  Linux还有一个组件叫显示管理器(display manager),用于开机后显示登陆界面,并启动窗口管理器等X组件.没有显示管理器,Linux开机会显示命令行登陆界面,需要使用命令行登陆后手动启动Xserver和窗口管理器才能显示GUI,显示管理器自动的完成这些工作.常见的有GDM,KDM,LightDM,LXDM

  把窗口管理器,显示管理器,合成器,文件管理器及其他应用,主题,GTK+/QT等图形库,连同通用的组件,比如Xorg,进程间通信用的Dbus等等库或程序,打包起来,就形成当今Linux下的桌面环境(Desktop environment),Gnome,KDE,Xfce,Ubuntu放弃的Unity,国产Deepin的DDE,都是桌面环境.也可以使用各种组件拼接出自己的桌面环境.

  一方面这是所有DE中对WSL兼容性最好的,既不简陋,也没有强制使用3D合成器(目前WSL不支持3D加速,OpenGL不能使用)

  其次可以使用单一窗口模式(即在Windows窗口中绘制整个Linux屏幕,就像虚拟机一样).

  提示:1903之后的Windows可以在资源管理器或者任何支持网络路径的win32程序中打开

  传统的Linux图形界面基于Xwindow系统(wayland什么的先不说)分为两部分,一部分是Xserver,这一部分负责驱动显卡和在屏幕上绘图,另一部分是client,这一部分包括window manger以及各种GUI应用比如浏览器之类。这两部分通过X定义的一套协议进行交互,这个协议是网络透明的,也就是说Xserver和X client可以不在同一台机器上,所以X天生支持远程图形界面,但代价就是在本地跑的时候性能也会有损失。

  WSL目前并不包含任何Xserver的功能,只能安装一些X client,所以你还需要一个Xserver并正确配置才能看到UI,Windows下常见的有Xming和Exceed之类。

  Linux本身无图形化界面。KDE和GNOME是LINUX里最常用的图形界面操作环境,他们不仅仅是一个窗口管理器那么简单,kDE是K Desktop Environment的缩写。他不仅是一个窗口管理器,还有很多配套的应用软件和方便使用的桌面环境,比如任务栏,开始菜单,桌面图标等等。 GNOME是GNU Network Object Model Environment的缩写。和KDE一样,也是一个功能强大的综合环境。 另外在其它UNIX系统中,常常使用CDE作为这样一个环境。 其它的小型窗口管理器有: window maker,after step,blackbox,fvwm,fvwm2,等等都是常用的优秀窗口管理器。REDHAT9中有window maker 但是默认不安装,大家可以装来试试。只要xinit再wmaker & 就可以用windowmaker了。 linux本身--X服务器-[通过X协议交谈]-窗口管理器(综合桌面环境)--X应用程序。

  如果只是要用VSCode配合Linux系的工具的话, 可以用python搞一个localhost上的服务器, 底下开一个bash的子进程, 把vsc的task设置成向这个服务器发送命令, 服务器再把输出发送回来.

  xorg是一个具有统一接口的服务程序,通过内核访问显示相关的硬件,按照应用程序的要求绘制图形。

  Windows下的Linux子系统并没有独立的内核,而是通过让Windows内核兼容Linux的api和elf应用程序格式的方式实现的

  所以要运行wsl中的图形程序,需要运行移植到Windows的x server才行,移植版的x server可以在cygwin项目找到

  安装好桌面和依赖的图形库后装一个远程桌面Server 如xrdp或者vncserver等,然后在Windows上用对应的客户端即可显示桌面(实际上是跑在本地的远程桌面)

  另外VSCODE现在支持WSL了,装几个插件就可以轻松访问WSL文件和使用WSL的开发环境进行编译调试了,不需要在WSL下面搞图形界面了(效率太低,巨难用)

  我想补充的是, 如果你花点功夫(比较大的功夫)去试试ArchLinux的安装(在物理机上最好, 虚拟机当然也不错)

  另外也许和Qt的库有关,比如我用的WSL是基于Arch的i3wm,官方源中的libQtCore.so需要经过strip才能正常调用的。

  但是如果你是为了使用vscode的话,它有个web版本的。可以在linux运行,然后用浏览器使用

  wsl下面要运行图形界面,你需要把适当的东西装进Windows里才对,因为wsl是Windows的一个部分,他自己是不包含显示功能的.

 
关键词: linux界面什么样
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-290763.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4