linux 异构 计算

为了有效地测试和编写各种软件程序,我在本地网络上保留了相当多的计算机。 这些机器运行各种操作系统,并使用各种硬件配置。 有时我正在评估各种平台上的工具; 其他时候我正在测试和调试我编写的工具。

我网络中的大多数计算机都以多重引导配置安装了多个操作系统,但其中一些也“无头”(没有显示器或键盘)。 虽然多引导加载程序很不错,但重新启动所花费的时间却使对平台进行详细的比较测试相当耗时,而仅在一台计算机上就很耗时。 多引导对于“并排”比较不是很好。 我尚未评估可让您“虚拟化”另一个操作系统中的任何工具的任何工具,例如VMWare,Plex86,VirtualPC,SheepShaver或其他工具。 在某些方面,这些工具实现了与我将在本文中讨论的目的类似的目的。

几种不同的技术允许一个工作站上的用户运行位于另一台计算机上的应用程序。 SSH为远程计算机提供文本终端; X窗口系统可用于在交互式工作站实际运行的工作站以外的工作站上显示交互式应用程序; VNC可以充当整个远程桌面的“远程控制”。 每种技术都有优点和缺点。 它们都在Linux上运行,但是不同的版本(主机或远程)允许与其他各种OS环境(用于异构网络)进行交互。 使用这些工具的组合,我可以坐在一个工作站(具有最佳显示器,键盘和椅子的工作站)上,并在多个平台上运行,测试和计时应用程序(通常无需重新启动任何设备)。

我的网络设置

我的本地网络上有七个节点,分别是Apollo,Bacchus,Chaos,Delphi,Echo,Fury和Gaia。 这些节点分别分配了本地IP地址192.168.1.101至192.168.1.107。 在大多数情况下,同一台物理计算机在多次引导到不同的操作系统时会获得相同的IP地址(但有时我使用DHCP,它分配的地址高于192.168.1.200)。 整个过程都位于硬件防火墙/路由器的后面,我对防火墙的信任度很高,以至于我对本地计算机上运行的服务可能不那么偏执。 (那些需要在公共互联网上共享计算机的读者应该比我担心的安全性问题更多。这对文章的第二部分增加了对安全性问题的讨论。)

我主要提到上面的细节,以便您可以按照下面给出的一些shell示例进行操作。 我实际坐在的机器是Bacchus,它的本地IP地址为192.168.1.102。

安全壳(ssh)

连接计算机的最带宽友好的方法是通过简单的文本外壳。 telnetrsh是用于执行此操作的非安全工具,但是使用这些工具会产生很多安全问题,因此在需要通信的计算机上安装ssh几乎总是更好。 即使下面的一些示例在我的防火墙内使用telnet ,即使这种妥协也是人为的事实,即“ Fury”当前专门用于安装和重新安装测试操作系统。 默认情况下,许多类似UNIX的操作系统(包括最新的Linux发行版)都将安装ssh 。 如果不是,请参阅本文后面的“ 相关主题 ”进行设置。

安全外壳( ssh )加密通过某个通道的所有流量。 由于使用了公共密钥加密,因此服务器和客户端无需在会话启动之前共享密钥。 而且,不会通过通道以未加密的形式传输任何机密信息(例如登录密码, telnet其大声传输给任何拦截器)。 其他协议(例如VNC或X Window)可以在ssh之上分层,但是该协议最简单的用法是创建远程文本控制台。

使用ssh ,您可以轻松地连接到运行与本地计算机上不同的操作系统的计算机。 唯一的要求是远程计算机要运行sshd服务器,本地计算机要有ssh客户端。 例如,将我的OS / 2 Warp“ Bacchus”计算机连接到隔壁房间中的Slackware Linux“ Delphi”计算机非常简单:

使用SSH通过HOSTS名称连接到远程盒
C:\UTILS % ssh quilty@delphi
Last login: Thu Nov 29 01:41:36 2001 from 192.168.1.102
Linux 2.2.19.
quilty@delphi:~$ exit
logout
Connection to delphi closed.

如果我的HOSTS文件没有定义别名,则可以使用:

通过ssh通过IP连接到远程盒
C:\UTILS % ssh quilty@192.168.1.104
Last login: Thu Nov 29 01:51:31 2001 from 192.168.1.102
Linux 2.2.19.
quilty@delphi:~$

同样,我经常使用以下方法管理来自全国/世界各地的租用Web服务器:

使用SSH通过DNS名称连接到远程邮箱
C:\UTILS % ssh gnosis@gnosis.cx
gnosis@gnosis.cx's password:

在异构平台上,关于ssh的最困难的事情就是正确配置终端配置。 问题本身并不是真正的ssh问题( telnet往往会遭受相同范围的问题)。 将两台Linux机器连接在一起几乎总是可以无缝进行。 但是通常当涉及到另一个平台作为客户端或服务器时,显示并不总是很正确,或者按键绑定不能按预期工作。 当涉及非UNIX平台(例如Win32,BeOS,MacOS和OS / 2)时,该问题似乎特别严重,但是即使将FreeBSD与Linux连接也不完美。

在异构机器之间创建ssh连接时,最典型的问题是代码页错误或颜色转义代码错误。 发生任何一种情况时,都可以使用基本命令行,但画线字符会显示为其他字符。 通常,您也只会看到单色端子,而不是彩色端子。 Shell命令受此“阻抗不匹配”的影响并不大,但是交互式cursesslang type应用程序通常会遭受很大的损失。 最著名的此类应用程序是文本编辑器,通常是您最需要在远程控制台上运行的应用程序。 顺便说一句, jed是一个特别好的远程文本模式编辑器。 坚强的人可能会使用vim 。 大多数其他Linux / UNIX编辑器都是基于X的,或者过于粗糙(对于emacs过于肥胖)。

如果终端配置有问题,则需要考虑一些因素。 如果要连接到类似UNIX的sshd服务器,请尝试更改远程TERM环境变量。 例如:

流行的远程终端设置
quilty@delphi:~$ TERM=vt100
quilty@delphi:~$ TERM=ansi
quilty@delphi:~$ TERM=linux

同时,您的本地ssh客户端通常将具有一种配置连接的终端类型的方法。 根据平台和客户端程序的不同,这可能是命令行选项,环境变量或菜单对话框。 您在两端使用的名称可能不会完全相同。 这里涉及一些反复试验。 您可能还会检查以确保在客户端配置中使用“无代码页转换”。 要测试“阻抗匹配”,请尝试运行全屏远程应用程序(如jed或其他编辑器)。

虚拟网络计算(VNC)

VNC是已经移植到许多GUI平台的客户端/服务器系统。 VNC提供了一种轻量级协议,用于在本地系统上显示远程计算机的整个“桌面”。 赛门铁克的pcAnywhere是具有类似用途的商业产品,但仅限于Microsoft操作系统。 按照合同,VNC实际上可以在许多不同的操作系统上运行,并且具有许多实现和变体。

了解VNC的一种好方法是查看其网站上的一些屏幕截图(请参阅参考资料 )。 在那里显示了更多可能的组合,但是所示的十二种变体表明了这一点。 通常,具有VNC客户端的任何平台(通常称为vncviewer )都可以在本地窗口中显示具有VNC服务器( vncviewer )的任何平台的虚拟桌面。 根据VNC客户端的版本,可能会提供调整大小和全屏显示选项。

基于X的VNC服务器( Xvnc )版本与其他平台的版本之间存在一些差异。 Windows,MacOS,BeOS和OS / 2等单用户系统没有X窗口系统那样的“桌面会话”概念。 因此,例如,Windows VNC服务器仅显示与本地系统上相同的Windows桌面的远程版本。 连接时称为“桌面:0”。 相比之下,X Window是多用户和多会话的。 每个Xvnc会话都会创建一个全新的桌面,并且可能具有自己的分辨率,窗口管理器和状态。 换句话说,对于VNC,X更好。

安装VNC服务器后,开始会话很容易,安装也很容易。 请参阅“ 相关主题” 。 对于单用户平台,您基本上运行该应用程序,没有任何选项(第一次时,您需要设置一些权限)。 在X下,一些命令行选项很有用。 例如,我已经从本地OS / 2 Warp“ Bacchus”计算机连接到下面的Mandrake Linux“ Fury”计算机的telnet会话:

在Fury上启动VNC服务器会话
[root@fury quilty]# cat /usr/bin/vnc-sessions
vncserver -name TinyLinux -depth 8 -geometry 640x480
vncserver -name BigLinux -depth 32 -geometry 1260x940
[root@fury quilty]# vnc-sessionsNew 'TinyLinux' desktop is fury.gnosis.lan:1Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/fury.gnosis.lan:1.logNew 'BigLinux' desktop is fury.gnosis.lan:2Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/fury.gnosis.lan:2.log

现在,可以从客户端使用本地vncviewer连接到Fury:1Fury:2 (或同时连接到两者)。 如果愿意,我也可以明确指定192.168.1.106:1

相同的原理适用于非本地网络,出于安全目的,可以将VNC配置为通过SSH进行隧道传输。

在大多数情况下,与远程计算机建立vncviewer连接与坐在该远程计算机的本地监视器和键盘前面的功能相同(假定它不是无头的)。 从美学上讲,远程系统的桌面将使用本地计算机的小部件由一个窗口框起(除非您使用全屏选项)。 这些额外的帧乍一看可能会让人分心,但在稍加使用后很容易忽略。

选择正确的会话几何结构和颜色深度很重要(假设您使用的是Xvnc服务器,或者在其他vncserver平台上,您愿意将远程计算机的本地显示切换为适合的分辨率满足您的VNC需求)。 远程桌面越小,使用的颜色越少,显示响应越快。 再说一次,对于许多应用程序来说,都需要屏幕不动产。 我发现降低色深对响应度的影响相对较小; VNC的十六进制编码比纯朴的逐像素传输屏幕更有效。 但是屏幕大小显然会有所不同。

总的来说,我发现使用像上面的1260x940这样的远程几何体可以很好地与本地1280x1024视频设置配合使用。 我只剩下一点点额外的空间,以便为VNC标题栏和本地桌面的任务栏腾出空间。 但是我的vncviewer窗口仍然占据了我的整个屏幕,这很不错。 在100 Mbit的以太网连接上,此连接几乎不会比本地显示器差。 在10 Mbit以太网上,移动或调整窗口大小时会看到一些延迟。 在较慢的速度下,VNC往往不是远程操作的最佳解决方案。 电缆,DSL或T1连接仍然可以使用,但不能无缝连接。 低于此的值仅是为了紧急情况。

VNC连接的一个问题是本地桌面需要为自己的目的进行一些按键操作。 根据特定的客户端,可能必须使用多击键操作来模拟许多远程击键。 例如,我的本地OS / 2 vncviewer要求我按Alt-A, F, Alt-A输入远程Alt-F 。 对于触摸打字员来说,这些额外的笔画有时很难适应。 在非PC平台(例如Mac)上,情况更加复杂,因为Mac平台具有自己的键盘和(一键式)鼠标。 还有很多东西要学习和打字,但是通常有一种方法可以模拟任何远程输入操作。 但是,Linux到Linux的连接工作非常顺利。 根据两端使用的特定窗口管理器,通常只有少数几个键组合不会直接传递给远程会话。

VNC的一个值得注意的实现是Java版本。 有许多本机版本可用,但即使是那些没有本机vncviewer平台也可以使用Java版本(假设该平台存在JVM)。 VNC-java可以在Web浏览器中运行,该Web浏览器提供了用于建立连接的熟悉界面。 但是Java查看器也可以在浏览器外部作为Java应用程序运行。 在相关主题下方提供一点上VNC-java的额外信息,包括我创建了可以帮助一些用户走了档案。

下次

在第2部分中,我们将研究远程X和通过网络运行远程应用程序的其他方式,以及使用远程应用程序时的安全性问题。


翻译自: https://www.ibm.com/developerworks/opensource/library/l-share1/index.html

linux 异构 计算

linux 异构 计算_在Linux(或异构)网络上共享计算机,第1部分相关推荐

  1. linux 网络部分,在 Linux(或异构)网络上共享计算机,第 1 部分

    级别: 初级 David Mertz,博士 (mertz@gnosis.cx), 程序员和作家, Gnosis Software,Inc. 2001 年 12 月 01 日 在 这两篇文章的第一篇中, ...

  2. linux 连接两个异构网,如何在Linux(或异构)网络上共享计算机?

    在有关共享计算机的这两篇文章中的第 1 部分中,我描述了我的异构本地网络以及如何使用它来比较和测试不同操作系统和体系结构上的应用程序.有几种技术使一台工作站上的用户可以运行位于另一台工作站上的应用程序 ...

  3. linux系统怎么共享网络,在Linux操作系统的网络上共享计算机

    比较"安全 shell(SSH)"和"虚拟网络计算(VNC)" 在这两篇文章的第一篇中,David 比较和对照了"安全 shell(SSH)" ...

  4. linux 科学计算器_探索Linux作为科学计算平台

    linux 科学计算器 科学界的Linux Linux在科学界中占有举足轻重的地位也就不足为奇了. 从高性能计算集群到可视化软件的解决方案比比皆是. 甚至还有一个完整的基于Red Hat Enterp ...

  5. c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...

  6. linux 日志乱码_这些 Linux 技巧大大提高你的工作效率

    (给Linux爱好者加星标,提升Linux技能) 作者:守望(本文来自作者投稿,简介见末尾) www.yanbinghu.com/2019/03/24/44171.html 前言 linux中的一些小 ...

  7. linux打开端口_在Linux上打开端口

    linux打开端口 Before we learn about opening a port on Linux, let's understand what network ports are. A ...

  8. centos linux引导修复_【Linux 运维】 Centos7.x 系统修复模式

    一.linux的运行级别: 运行级别就是来确定系统启动时到底启动那个服务. linux默认有7个运行级别: 0 关机 1 单用户模式,用于系统修复 2 不完全的命令模式,不含NFS服务 3 完全的命令 ...

  9. linux急救模式_抢救Linux:我如何将组织介绍给Linux

    linux急救模式 1998年,我管理了明尼苏达大学新网络团队的服务器管理小组. 密西根大学是一个非常大的机构,在所有系统校区中有60,000多名学生. 在那之前,大学在老化的大型机系统上管理学生记录 ...

最新文章

  1. python计算无穷级数求和常用公式_无穷级数-从入门到火葬
  2. PDO绑定含IN的SQL语句的参数注意事项
  3. 论设计,需求和编码三者的关系
  4. 008_tracker.conf配置详情
  5. Matlab命令集--常用字符串函数
  6. 获取两个时间之间的间隔_花了两天,终于把 Python 的时间转化给整明白了(超多图解)...
  7. 跑步呼吸方法(细胞分裂呼吸法)
  8. 一图看懂 Python 2 / Python 3 编码 | CSDN 博文精选
  9. 只有音频没指纹,能抓对人吗?CMU音频分析AI说没问题
  10. 时间操作(JavaScript版)—页面显示格式:年月日 时分秒 星期
  11. linux实验项目,实验--项目2_Linux基本命令
  12. python测试之道电子书_python测试开发面试之深浅拷贝
  13. 如何查看某台计算机的IP地址 物理地址,显示ip:如何查看电脑ip地址和物理地址(地址)? _ 惠州SEO...
  14. pico3pro使用unity播放360全景视频及事件交互
  15. 立体感css播放按钮样式
  16. pppoe服务器账号和密码是什么,路由器的PPPOE拨号宽带账号和密码是多少?
  17. [小说连载]张小庆,在路上(11)- 产品还是项目?
  18. shell - 01 - Shell入门:扎好马步 走的更稳
  19. 读 Dov M. Gabbay 之 Handbook of the History of Logic. Volume 1: Greek, Indian and Arabic Logic
  20. python怎么让电脑说话_懒人专用的奇淫技巧,用Python实现炫酷的语音操作电脑

热门文章

  1. PhEmail:基于Python的开源网络钓鱼测试工具
  2. java计算机毕业设计校园二手交易平台源程序+mysql+系统+lw文档+远程调试
  3. 损失来自粗心 巧设置避免WMP11误删文件
  4. PSP课程(一): PSP简介
  5. 转:Tumblr:150亿月浏览量背后的架构挑战
  6. Linux 之Sed使用
  7. 易语言QQpost加好友源码
  8. Python第五章序列,集合,字典
  9. UPPAAL例子-维京人过河
  10. WIFI|WPA_SUPPLICANT翻译