小编Rub*_*ben的帖子

在没有"--net host"的SSH连接的服务器上可靠地在Docker容器中运行X应用程序

如果没有Docker容器,可以直接使用SSH X11转发(ssh -X)在远程服务器上运行X11程序.当应用程序在服务器上的Docker容器内运行时,我试图让同样的东西工作.当使用-X选项SSH连接到服务器时,会设置X11隧道,并且环境变量"$ DISPLAY"会自动设置为"localhost:10.0"或类似内容.如果我只是尝试在Docker中运行X应用程序,我会收到此错误:

Error: GDK_BACKEND does not match available displays
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是实际将$ DISPLAY传递给容器,其中包含"-e"选项,如下所示:

docker run -ti -e DISPLAY=$DISPLAY name_of_docker_image
Run Code Online (Sandbox Code Playgroud)

这有帮助,但它没有解决问题.错误消息更改为:

Unable to init server: Broadway display type not supported: localhost:10.0
Error: cannot open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

在搜索网络后,我发现我可以做一些xauth魔术来修复身份验证.我添加了以下内容:

SOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
chmod 777 $XAUTH
docker run -ti -e DISPLAY=$DISPLAY -v $XSOCK:$XSOCK -v $XAUTH:$XAUTH \ 
  -e XAUTHORITY=$XAUTH name_of_docker_image
Run Code Online (Sandbox Code Playgroud)

但是,这仅在将" --net host " 添加到docker命令时才有效:

docker run …
Run Code Online (Sandbox Code Playgroud)

x11 ssh x11-forwarding docker

19
推荐指数
1
解决办法
6365
查看次数

支持AVX2的所有CPU是否也支持SSE4.2和AVX?

我计划实现SIMD扩展的运行时检测.如果我发现处理器具有AVX2支持,它是否也保证有SSE4.2和AVX支持?

sse simd avx avx2

6
推荐指数
1
解决办法
1745
查看次数

从纯 Makefile 构建 APK 时如何正确生成 Android 库项目的 R.java 文件?

为了更好地理解 Android 应用程序开发工具的工作原理,我开始使用纯 GNU Makefile 来创建完全独立于antgradle的 APK 。我从这个 Makefile 中调用低级工具(管道工命令),例如aaptjavacjarsignerzipaligndalvik-exchangeaidl。(我参考https://spin.atomicobject.com/2011/08/22/building-android-application-bundles-apks-by-hand/了解一些背景知识)对于小型且简单的应用程序项目,这现在可以工作很好,但我对一些更复杂的应用程序有一些问题。

在这种特殊情况下,有一个 Android 应用程序,其中包含一个单独的库项目,其中包含代码和资源。当我使用aapt为库项目生成 R.java 文件时,结果如下:

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.mycompany.myapp.mylibrary;

public final class R {
    public static final class attr …
Run Code Online (Sandbox Code Playgroud)

ant android makefile android-resources

5
推荐指数
0
解决办法
985
查看次数

是否可以在64位Linux中使用相同的可执行文件中的64位和32位指令?

64位CPU(amd64)在兼容模式下支持32位Intel指令.此外,如果ELF头表示它是32位可执行文件,64位Linux安装允许运行包含32位指令的ELF.

我想知道是否可以在ELF中放置一些汇编指令,在程序中间将CPU切换到32位兼容模式(然后再返回)?如果内核不允许这些汇编指令,我们是否可以通过某种方式让内核将已经运行的进程切换到32位?

这主要是出于好奇心的问题,因为我无法真正看到任何用例.

linux x86 assembly x86-64 32bit-64bit

4
推荐指数
1
解决办法
622
查看次数

64位Linux内核如何从ELF中启动32位进程

通过查看内核源代码中的binfmt_elf.c,我无法弄清楚在生成32位进程与64位进程时内核(64位)的作用有何不同.

任何人都可以向我解释我错过了什么吗?

(这个问题与我关于在64位指令(链接)的同一过程中有32位指令的其他问题有关,但这可以作为一个单独的问题.)

linux x86-64 linux-kernel 32bit-64bit

0
推荐指数
1
解决办法
253
查看次数