关于linux的图形界面

关于linux的图形界面

    • 1. 概述
      • 1.1 X
      • 1.2 DM(显示管理器/登录管理器)
      • 1.3 WM(窗口管理器)
      • 1.4 GUI Toolkits
      • 1.5 Desktop Environment
      • 1.6 基本架构
    • 2. 安装桌面
      • 2.1 Centos安装桌面
      • 2.2 Ubuntu安装桌面(未实践)
    • 3. 远程桌面(ubuntu)
      • 3.1 VNC
      • 3.2 RDP
      • 3.3 vnc4server和xfce4

在这里插入图片描述

1. 概述

Linux操作系统提供了多种用户界面,主要分为图形用户界面(GUI)命令行界面(CLI)

我们知道linux操作系统是由GNU套件/linux内核组成,linux本身是基于命令行的操作系统,更倾向于搭建服务器,Linux内核是没有GUI图形显示的,X Window的目标就是提供GUI的显示。

图形用户界面(GUI)(Graphical User Interface)
Linux的图形界面类似于Windows和macOS系统,提供了图标、窗口、工具栏等元素,使得用户可以通过鼠标点击来执行命令,而不需要记忆和输入命令行指令。Linux有多种桌面环境供用户选择,其中一些较为流行的包括 GNOME、KDE Plasma、XFCE、LXDE等。这些桌面环境不仅外观和操作逻辑不同,对系统资源的需求也有所不同,用户可以根据个人喜好和硬件条件选择最适合自己的桌面环境。

我们要了解linux的图形界面,还需要参考下图进行说明

在这里插入图片描述

1.1 X

X,即X协议/X Window System,用于 UNIX 和 Linux 图形显示的 X 视窗系统协议(X-Window/X Protocol)

X 就是 X Window System ,1984年由MIT研发,它的设计哲学之一是:提供机制,而非策略。为啥要命名为X呢,因为英文字母X就在W(indow)后面,戏称为下一版的新视窗之意。XFree86 『 X + Free software + x86硬件 』

主要特点:
1,Server/Client网络模型。
2,通过扩展使它保持”与时俱进”。

由于标准的重要性,有人为窗口的绘制和移动、通过鼠标的移动和键盘实现程序和用户间的互动,以及其它重要的方面创建了一种标准,这种标准就叫做X Window 系统,它通常缩写为 X11 或者X。它广泛应用于Unix,Linux,以及其他类Unix操作系统上。

为Linux用户提供运行图形化用户界面条件并且使用X11标准的应用程序是Xorg-X11,是 XFree86项目的一个分支。由于XFree86决定使用与GPL相悖的许可证,所以推荐使用 Xorg。但是,Xorg和XFree86之间的区别在目前是很细微的:如果你了解了二者之一,你一定不会对另一个感到陌生。你同样可以在Portage上找到XFree 4.4以前的版本。

X Window System由客户端和服务端组成,服务端X Server负责图形显示,而客户端X Client根据系统设置的DISPLAY环境变量,将图形显示请求发送给相应的X Server。

root@dbc-db-server-2:/etc# env|grep DISPLAY
DISPLAY=localhost:10.0

X协议由服务端和客户端组成

  • 服务端(server),基于X11 协议的服务端。管理硬件设备(驱动),键盘鼠标显示器等。
    X Client主要就是告知 X Server 要绘制什么。X Server 的主要功能 ( 不论是 Xorg 或是 XFree86 都是一个 X server 喔!) 就是在管理 X Server 所在主机上面关于显示的硬件配备啦~ 例如显示卡、屏幕分辨率、键盘形式、鼠标形式等等。
  • 客户端(client),基于X11 协议的客户端;X Client 最重要的工作就是处理来自 X Server 的动作,将动作处理成绘图资料, 再将这些绘图资料回传给 X Server

一般由两种工作模式:

  • 服务端和客户端在同一台主机上运行
  • 服务端和客户端不在同一台主机上运行,通过网络连接

X.Org项目提供了X Window System的开源实现。Xorg(通常简称为X)是Linux用户中最流行的显示服务器程序

X.Org 项目

  • X.Org项目创建并且拥有一个可供自由散布的开源X11系统实施方案。它是一个基于X11的开源桌面构架。
  • Xorg在你的硬件和你想运行的图形界面软件之间提供了一个接口。除此之外,Xorg完全具有网络意识功能,这意味着当你在一个系统上运行某个程序,你同时可以在另一个系统上查看它。

Xorg : ubuntu Gentoo solaris …
XFree86 : redhat
Xsun :solaris

X windows的启动程序startx
start X window system. 可以接X Client和X Server的参数。

root@dbc-db-server-2:/etc# whereis startx
startx: /usr/bin/startx /usr/share/man/man1/startx.1.gz
root@dbc-db-server-2:/etc# file  /usr/bin/startx
/usr/bin/startx: POSIX shell script, ASCII text executable

在预设的情況下 (使用者尚未有 ~/.xinitrc 等文件時),你输入 startx , 就等于执行 xinit /etc/X11/xinit/xinitrc – /etc/X11/xinit/xserverrc 这个指令一般!
那为什么不直接执行xinit而是使用 startx 来呼叫 xinit 呢?因为需要提供参数。 startx 可以帮我们快速找到这些参数而非手动。
X 窗口最先需要启动的就是 X server 啊,那 X server 启动的脚本参数是通过 /etc/X11/xinit/ 里面的 xserverrc 。

#xserverrc:
exec /usr/bin/X -nolistem tcp “$@

启动了 X server 后,接下来就是载入 X client 到这个 X server 上面了!

root@dbc-db-server-2:/etc# X -version

X.Org X Server 1.19.6
Release Date: 2017-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.15.0-140-generic x86_64 Ubuntu
Current Operating System: Linux dbc-db-server-2.150 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-142-generic root=UUID=1cb9e013-b34b-46fc-be66-e5c8f267d9f3 ro quiet splash vt.handoff=7
Build Date: 08 April 2021  02:38:58PM
xorg-server 2:1.19.6-1ubuntu4.1~16.04.6 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.33.6
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.

苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因。

由于X server只提供了最基本的功能,如建立窗口、键盘输入等,但无法最小化、最大化和移动等,采用窗口管理器来实现对窗口的管理

1.2 DM(显示管理器/登录管理器)

DM(Display manager,显示管理器),可以简单的理解为登录界面即是显示管理器界面,也就是欢迎页。在登录界面可以输入帐号密码,可以选择桌面环境类型。输入账户密码确认之后进入的界面即是桌面环境。

显示管理器是一个为你的 Linux 发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后,立即启动显示服务器并加载桌面环境。

Only one display manager can manage a given X server, if multiple display manager packages are installed.

主要功能为提供登录页面和提供桌面环境选择入口。

  1. 常用显示管理器

gdm3:The GNOME Display Manager
kdm:KDE Display Manager
sddm:Simple Desktop Display Manage
lightdm:Light Display Manager
轻量化,占用资源少

  1. 查看当前显示管理器
oot@dbc-db-server-2:/etc# ll /etc/X11/default-display-manager /usr/sbin/lightdm
-rw-r--r-- 1 root root     18 81  2017 /etc/X11/default-display-manager
-rwxr-xr-x 1 root root 254816 41  2017 /usr/sbin/lightdm*
  1. 切换显示管理器

如果想要切换显示管理器,则可使用以下命令:
(注:只能切换已安装的,若想使用其它的需要先安装)

$ sudo dpkg-reconfigure gdm3

确认命令后会显示如下信息,选择想要使用的显示管理器并确认即可,下次启动系统时生效。

1.3 WM(窗口管理器)

WM(window manager,窗口管理器),窗口管理器的作用就是最大化,最小化,移动,关闭窗口等。而这些不是X服务器来负责完成的,所以,我们看到的linux图形界面,都是启动了WM的,否则linux图形界面的窗口将不能移动,放大和缩小。

常见的窗口管理器

1)twm(X.org提供的简单的窗口管理器)
2)gnome-wm(gnome提供的窗口管理器)
3)kwin(KDE使用的窗口管理器)
4)FVWM(一款知名的窗口管理器)

其它的小型窗口管理器有:

windowmaker
after step
blackbox
fvwm
fvwm2

RedHat9中有windowmaker, 但是并不是默认安装。大家可以装来试试,只要xinitwmaker&就可以用 windowmaker 了。

X协议的Client端实现:XFree86是X协议的服务器软件(以软件的形式实现),为了使程序员在客户端更方便的使用X协议与服务器端的XFree86交互,故就产生了一个Xlib库,封装了X协议内容,如果你还觉得直接使用Xlib不方便,于是就产生了QT和GTK,对Xlib进一步封装,提供了很多控件,可以可视化的使用X协议更方便程序员的开发。
在这里插入图片描述

1.4 GUI Toolkits

图形界面工具集

  • QT直接使用xlib库。
  • GTK并未直接使用xlib,而是使用更低层的函数库GDK和Glib。这种结构使得GTK可以更方便地移植到其它系统上,或使用与X Windows系统无关的图形库。

既然需要显示图形,自然少不了与X协议的服务器软件打交道,既然QT和GTK进一步封装了X协议,并且他们提供了更为丰富的窗口及控制机制,于是在QT基础上实现的窗口管理器叫KDE在GTK基础上实现的窗口管理器叫GNOME.

1.5 Desktop Environment

桌面环境/桌面系统,集成了窗口管理器及一些应用程序的套件

常用的桌面系统:

  • GNOME:GNU Network Object Model Environment
  • KDE: KING DESKTOP ENVIRMENT
  • Xfce: 轻量级桌面环境
  • Unity :ubuntu 在gnome 的基础上自己做的桌面环境

在命令行中输入:

xinit	#启动X-server
gnome-session #启动GNOME窗口管理器

1.6 基本架构

ubuntu: 根据 /etc/rcS.d/ 文件夹中对应的脚本启动Xwindow服务器 xorg;

Base System => X Protocol => Windows Manager => Application

  1. Base System :kernel, filesystem, glibc, bash等.zuixiaoxitong.
  2. 在Linux早期的时候,是通过XFree86来实现X协议,经过多年的发展,XFree86已经更替为今天的X.Org项目。
  3. Windows Manager
    有了X层的支持以后,广大开源软件开发者或开发组织,就可以基于这样的一个接口,来开发上层的图形化窗口管理器,即Windows Manager, 比如我们熟知的KDE,Gnome, Xfce, Openbox等,这些图形化的桌面环境也就是对上面提到的X Client的一个具体实现,来和 X Server进行交互通信。
  4. Application
    Application也就是指我们的上层图形化应用程序,比如 Liberoffice办公套件,Firefox,Thunderbird,Pidgin等。
    Linux系统中的大多数图形化应用程序都是基于QT或GTK+这两个开发套件来开发的,当然也有像Java, Python等编写的应用程序。

在这里插入图片描述

2. 安装桌面

2.1 Centos安装桌面

如果选择了最小系统安装,在后面想使用桌面,可以单独安装桌面

yum grouplist	#列出本系统支持的图形化界面
yum groupinstall “GNOME Desktop” “Graphical Administration Tools” #获取并安装图形化界面GNOME程序包(大小写敏感)

安装完成后,可以选择系统的默认运行级别

systemctl get-default	#查看当前的运行级别
systemctl set-default graphical.target/multi-user.target #设置默认运行级别

经过一个不太漫长的等待,程序就安装完成了

重启后,需要进行设置,比如语言,时区,设置登录用户等等,然后就可以登录了
在这里插入图片描述

2.2 Ubuntu安装桌面(未实践)

安装 X 窗口系统:

sudo apt-get install x-window-system-core。

安装登录管理器:

sudo apt-get install xdm/gdm/kdm

最常见的Ubuntu图形化登录管理器包括 XDM、GDM、KDM,用户可根据自己的需要选择其中之一。

安装桌面环境或窗口管理器:

sudo apt-get install Ubuntu-desktop/kubuntu -desktop/xubuntu-desktop

这将分别安装 GNOME、KDE、XFCE 桌面环境。对于 GNOME、KDE、XFCE 这些桌面环境来说,为了获得更强的定制效果,也可仅安装最基本的组件,如:

sudo apt-get install gnome-core/kde-core/xfce4

当然,如果不需要桌面环境,也可选择安装窗口管理器代替。那样的话,可以执行指令

sudo apt-get install fluxbox/icewm/enlightenment/fvwm。

这样,桌面程序就安装完成了。

设置root登录

① 修改文件/usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf文件,增加两行:

sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 

greeter-show-manual-login=true 
all-guest=false 

② 进入/etc/pam.d目录,修改gdm-autologin和gdm-password文件

vi gdm-autologin 
#注释掉auth required pam_succeed_if.so user != root quiet_success这一行,保存 
vi gdm-password 
#注释掉 auth required pam_succeed_if.so user != root quiet_success这一行,保存

③ 修改/root/.profile文件

sudo vi /root/.profile 
#将文件末尾的mesg n || true这一行修改成tty -s&&mesg n || true, 保存

④ 重启系统,输入root用户名和密码,登录系统。
⑤ root自动登录

vim /etc/gdm3/custom.conf
#将[daemon]
AutomaticLoginEnable=True
AutomaticLogin=root
#设置为root用户自动登录

3. 远程桌面(ubuntu)

参考 https://blog.csdn.net/qq_24287711/article/details/129402662

如果你需要通过远程连接到ubuntu桌面,有很多种方式,但归根到底其实就两种VNC和RDP

3.1 VNC

首先,使用VNC方式连接ubuntu,ubuntu桌面版系统自带了一个vnc服务端,叫vino,设置开关中的共享屏幕其实就是这个vnc服务端,如果你是最小安装版,那就没有共享屏幕这个选项,你需要手动安装,安装方式

apt install vino

如果是server,默认是没有ubuntu图形化界面的,需要安装好才能使用远程桌面。

ubuntu的图形化界面主要有几种:unity、gnome、xfce、kde。 其中unity在ubuntu早期版本中常用,新版本ubuntu默认桌面是gnome,而如果安装的是ubuntu server系统,需要在图形化操作,一般安装xfce,它非常轻量,kde在ubuntu中不常用。

所以如果要远程连接ubuntu桌面,前提你得有一个桌面,在gnome桌面环境下,默认有一个vnc服务端叫vino

这个vnc服务端很坑爹,必须要ubuntu物理机登录上一个账户并且把安全认证关闭才能通过vnc客户端连接,比如vnc-viewer。

关闭安全认证方式有两种,一种直接通过命令:

sudo gsettings set org.gnome.Vino require-encryption false

另一种方式通过安装工具,使用工具来关闭,这个工具就是dconf-editor

 sudo apt-get install dconf-editor 

选择:

org->gnome->desktop->remote access->require encrytion 关闭

系统自带的vino很鸡肋,所以如果你想用vnc,就安装一个第三方的吧,vnc4server,使用这个需要关闭系统默认的共享桌面,你可以在图像化菜单中关闭屏幕共享,或者直接卸载 sudo apt remove vino ,为什么要关闭,因为你打开的话就占用了5900端口,只要是vnc服务,默认端口都是5900,如果不关闭,会造成其他vnc服务端开启失败。

然后安装vnc4Server

sudo apt install vnc4server 

3.2 RDP

rdp是windows系统专用的远程连接方式,但是ubuntu等linux系统下可以通过移花接木的方式,也就是xrdp。
xrdp本身不具备桌面服务功能,需要和图形化桌面配合,这个提供桌面能力的其实就是xorg,xorg在ubuntu中默认存在,所以通过xrdp连接远程桌面默认会选择xorg,xorg为xrdp提供桌面服务,xrdp本身提供远程连接能力。

如果你安装了GNOME, 那xorg就将GNOME桌面远程提供给你
如果你安装了xfce,xorg就将xfce桌面提供给你

"可以说"xorg是远程桌面服务的中间件,但是xorg和gnome配合不是很好,往往会有问题,但是网上也有解决方案,最佳的配合还是xfce + xorg + xrdp,由于xorg是ubuntu默认存在的图形化能力,所以只要在ubuntu中安装上xrdp,如果你的桌面系统是xfce就能直接使用远程桌面。

如果没有xfce桌面,需要安装

sudo apt update
sudo apt install xubuntu-desktop

安装xrdp

sudo apt install xrdp
#Xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对“ssl-cert” 用户组成语可读。运行下面的命令,将xrdp用户添加到这个用户组:
sudo adduser xrdp ssl-cert  
#重启就能使用
sudo systemctl restart xrdp

windows可以通过远程桌面客户端连接了,xrdp的端口和rdp一样都是3389,所以可以直接使用windows自带的远程桌面连接工具(mstsc),连接口弹出窗口,默认选中了xorg,输入ubuntu用户名密码就可以登录,这个和ubuntu下面的屏幕共享(vino)没有半毛钱关系。

当然,xrdp不仅可以选择xorg,还能选择vnc-any,也就是选择了这个,你可以连接vnc服务端,也就是 xrdp不仅可以和xorg配合,也能和vnc4server、vino、tightvncserver等vnc服务端配置使用。

3.3 vnc4server和xfce4

xfce4安装

sudo apt install xfce4*  #xfce4桌面已经安装的可忽略

vnc4server安装

sudo apt install vnc4server   #安装VNC4,注意不是TIGERVNC或者其他

第一次启动vnc4server

vncserver #启动,如有密码设置,则设置后记下
vncserver -kill :1  #停止默认的vncsever

修改vnc配置文件xstartup

  • 使用xfce远程桌面配置
vim ~/.vnc/xstartup  #编辑已有的vncserver xstartup配置,如果打开是空的,则未正确找对该配置文件位置。

使用以下配置,该配置虽然简单,但是和其他配置相比,能解决以下报错:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

报错:

xfce4-session: Another session manager is already running 
  • 使用GNOME原生桌面配置
#!/bin/sh                                                                       
 
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#gnome-terminal &    
#nautilus &   
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &

如果vnc后的画面是纯灰色,则安装gnome-panel

sudo apt install gnome-panel

新建连接端口

$ vncserver -geometry 1920x1080 -depth 24 :4

参数说明:
-geometry 用于设置想打开的界面的分辨率,与自己的显示器分辨率匹配。如2560x1440、1920x1080、1024x768等。
-depth 用于设置显示颜色深度。最大24。
:4 显示号,自行指定。

删除虚拟桌面: vncserver -kill :桌面编号 (注意空格),如下面的命令是删除像素编号为2的虚拟桌面

vncserver -kill :2

查看已经打开的vnc端口

netstat -lnpt |grep Xvnc

最好使用root用户来查看当前打开的所有端口。而使用普通用户只能看到普通用户下打开的端口。

使用vncviewer连接
输入IP和端口号,如xxx.xxx.xxx.xxx:5901
密码:123456
可以在Properties选项中调节终端显示的画质(High)和缩放比(100%或Scale to fit windows),之后全屏显示即可完全显示屏幕。

  • 配置vnc开机自启动
    开机启动脚本如下
sudo gedit /etc/init.d/vncserver_start

写入以下内容:

#!/bin/sh

### Customize this entry
# Set the USER variable to the name of the user to start tightvncserver under
export USER='Andy'  #修改成自己的userid
### End customization required
 
eval cd ~$USER
 
case "$1" in
  start)
    # 启动命令行。此处自定义分辨率、控制台号码或其它参数。
    su $USER -c '/usr/bin/vncserver -depth 24 -geometry 1280x720 :1'
    echo "Starting vncserver server for $USER "
    ;;
  stop)
    # 终止命令行。此处控制台号码与启动一致。
    su $USER -c '/usr/bin/vncserver -kill :1'
    echo "vncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/vncserver_start {start|stop}"
    exit 1
    ;;
esac
exit 0

注:用户名要修改成自己的修改USER变量。
给vncserver_start文件加执行权限,并更新开机启动列表。

sudo chmod 755 /etc/init.d/vncserver_start
sudo update-rc.d vncserver_start defaults

然后再reboot一下,就不需要到板子上面开启vncserver了,直接打开VNC Viewer登录。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/747502.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL-ES 学习(6)---- 立方体绘制

目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成,共6个面,所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示,三维坐标…

调试代码Pair-wise-Similarity-module-master

第一步:运行.py文件生成json文件 问题一:json.decoder.JSONDecodeError: Invalid \escape: line 1 column 31616 (char 31615) 解决: for dataset in dataset_list:with open(datasetmap[dataset] ".csv", "r") as li…

ETO外汇:日元技术分析,美元/日元、欧元/日元、英镑/日元未来走势如何?

摘要: 根据近期的市场分析,美元/日元、欧元/日元和英镑/日元这三组货币对在未来的走势将受到多方面因素的影响。本文将从技术角度对每一组货币对进行详细分析,帮助投资者了解可能的支撑和阻力位,以及未来的走势预期。通过对关键技…

基于Transformer的自监督学习在NLP中的前沿应用

1. 引言 自然语言处理(NLP)领域正经历一场由自监督学习(Self-Supervised Learning, SSL)和Transformer架构共同驱动的革命。自监督学习通过巧妙地利用未标注数据,大大减少了对人工标注的依赖,而Transforme…

第二节课 6月13日 ssh密钥登陆方式

centos和ubuntu openssh服务的初始安装 一、实验:ubuntu系统激活root用户 ubuntu系统如何激活root用户,允许root用户ssh登陆? 1、ubuntu默认root用户未设置密码,未激活 激活root用户,设置root密码 sudo passwd roo…

无线幅频仪制作(WiFi通信)-含STM32源程序,JAVA上位机与设计报告

资料下载地址:无线幅频仪制作(WiFi通信)-含STM32源程序,JAVA上位机与设计报告 目录 项目功能 1、 系统方案1.1 比较与选择 1.1.1 控制器的论证与选择 1.1.2 信号源的论证与选择 1.1.3 放大器模块的论证与选择 1.1.4 键盘与显示模块的论证与选择 1.1.5 网络通…

GPOPS-II教程(3): 航天器最优控制问题

文章目录 问题描述GPOPS代码main functioncontinuous functionendpoint function完整代码代码仿真结果 最后 问题描述 例子出自论文 Direct solution of nonlinear optimal control problems using quasilinearization and Chebyshev polynomials(DOI:1…

CircuitBreaker断路器-Resilience4j

目录 背景分布式架构面临的问题:服务雪崩如何解决? CircuitBreakerResilience4jCircuitBreaker 服务熔断服务降级三种状态转换例子参数配置案例demo作业 BulkHead隔离特性SemaphoreBulkhead使用了信号量FixedThreadPoolBulkhead使用了有界队列和固定大小…

Ubuntu22安装PyCharm

下载(社区版) 官网下载地址 解压 sudo tar -xzvf pycharm-community-2024.1.4.tar.gz 软件移动到指定目录下(根据不同版本修改) sudo mv pycharm-community-2024.1.4/ /usr/local/PyCharm/运行 cd /usr/local/PyCharm/pycha…

Altera不同系列的型号命名规则

Altera芯片型号:10AX07H4F34I3SG 20nm工艺 资源: 大数据 云计算 人工智能 图像处理 MSEL

固定翼无人机入门(二)

这里讲讲无人机的路径跟踪控制相关知识,路径跟踪需要制导率(平面)和控制器,在无人机中较为常用的是L1制导率,不过L1制导率是控制无人机在二维平面上的转向,此处还引入总能量控制,控制无人机的高…

Vue3学习笔记<->开发环境安装

背景 公司开始做产品开发,前端就选择使用了vue,替换了传统的jsp。公司要求每个开发人员都要前后端都可以开发,于是就开始学习vue了。 安装环境 安装node.js node.js下载地址:node.js下载地址 安装:选在安装路径&…

Web渗透:逻辑漏洞

逻辑漏洞是指应用程序的逻辑中存在缺陷,导致应用程序无法按照预期执行,可能被攻击者利用来执行未授权的操作或绕过安全措施。逻辑漏洞通常不依赖于常见的输入验证漏洞或技术漏洞,而是利用系统设计或实现中的问题;本文以两个例子举…

makefile中的用户自定义变量

makefile: CC gcc CFLAGS -Isub -Isub -O2 OBJS add_int.o add_float.o sub_int.o sub_float.o main.o TARGET ccb RM rm -f $(TARGET):$(OBJS)$(CC) -o $(TARGET) $(OBJS) $(CFLAGS) $(OBJS):%.o:%.c$(CC) -c $(CFLAGS) $< -o $ clean:-$(RM) $(TARGET) $(OBJS)编译运…

使用命令行创建uniapp+TS项目,使用vscode编辑器

一:如果没有pnpm,先安装pnpm 二:使用npx工具和degit工具从 GitHub 上的 dcloudio/uni-preset-vue 仓库克隆一个名为 vite-ts 的分支,到项目中. 执行完上面命令后,去manifest.json添加appid(自己微信小程序的Id),也可不执行直接下一步,执行pnpm install ,再执行pnpm:dev:mp-weix…

OPenFast中AeroDyn,ElastoDyn,ElastoDyn_Tower,ServoDyn的作用!

在OpenFAST中&#xff0c;这四个文件分别有不同的作用&#xff0c;它们用于定义风力涡轮机不同部分的特性和行为。以下是每个文件的总结及其作用&#xff1a; NRELOffshrBsline5MW_Onshore_AeroDyn15.dat 作用&#xff1a;这是AeroDyn模块的输入文件&#xff0c;用于定义风力涡…

Android C++系列:内存知识整理

1. 控制C的内存分配 在嵌入式系统中使用C的一个常见问题是内存分配&#xff0c;即对new 和 delete 操作符的失控。 具有讽刺意味的是&#xff0c;问题的根源却是C对内存的管理非常的容易而且安全。具体地说&#xff0c;当一个对象被消除时&#xff0c;它的析构函数能够安全的释…

基线核查--渗透

基线检查 基线核查概念 it中定义&#xff1a; 基线为初始的标准&#xff0c;以后更改就要经过授权&#xff0c;形成下一基线。 软件配置管理的基线&#xff1a;1功能基线&#xff0c;分配基线&#xff0c;产品基线 安全配置基线--基线核查 安全基线可以说是木桶理论&…

RocketMQ 和 Kafka 关于消息队列的推拉模式是怎么做的?

引言&#xff1a;在当今的大数据和分布式系统中&#xff0c;消息队列扮演着至关重要的角色&#xff0c;它们作为系统之间通信和数据传输的媒介&#xff0c;为各种场景下的数据流动提供了可靠的基础设施支持。在消息队列的设计中&#xff0c;推拉模式是两种常见的消息传递机制&a…

搜索引擎的原理与相关知识

搜索引擎是一种网络服务&#xff0c;它通过互联网帮助用户找到所需的信息。搜索引擎的工作原理主要包括以下几个步骤&#xff1a; 网络爬虫&#xff08;Web Crawler&#xff09;&#xff1a;搜索引擎使用网络爬虫&#xff08;也称为蜘蛛或机器人&#xff09;来遍历互联网&#…