liu 发布的文章

【前言】

虚拟机下的软路由、NAS玩了几个月了,当初选择虚拟系统真是纠结得很,觉得哪个都好哪个都有问题。试来试去,发现已经把ESXi、PVE、unRaid这三大虚拟系统(unRaid有点冤)都折腾了几遍了。

这里罗列记录一下,也许也可以帮你少纠结一点。

我会粗略描述一些操作步骤,旨在体现操作复杂度等,可能无法当做完整教程。有需要了解详细步骤的同学可以参看其它大神的文章。

【概述】

ESXi,是VMWare vSphere Hypervisor套件之下重要组件。前身是ESX,依赖Linux源码,后来抛弃Linux源码做成了ESXi。整个产品商用气息浓重,界面清晰易用,但硬件兼容性较差(主要面向服务器),没什么扩展性(毕竟不是linux)。

PVE,全称Proxmox Virtual Environment,是基于Debian的Linux系统,虚拟机内核为KVM。硬件兼容性优秀。界面功能不强,很多操作要靠命令行,但扩展能力几乎是无限的。

unRaid,其实是个NAS系统,是基于Slackware的Linux系统,虚拟机内核也是KVM。磁盘阵列管理非常有特色,灵活性很高。同时还有很不错的插件、Docker和虚拟机支持。

【系统安装】

ESXi,官网获取iso镜像,做成启动盘来安装。

iso引导界面。整个安装过程界面都很简陋。

有磁盘选择和密码设定等简单环节。

安装成功后重启进入系统,会看到管理地址的提示。

此时可以按f2进入这个系统设定菜单。主要是用来解决网络设定等问题。

PVE,同样是官网获取iso镜像,做成启动盘来安装。

iso引导界面

有磁盘、密码、网络等设定过程。

同样,安装重启后即可看到管理地址。也可以此时登陆控制台进行高级操作。

unRaid,比较特别,需要准备一个U盘,制作启动U盘。可以从官网的下载制作工具(exe)来制作。也可以直接下载系统的zip包,如果要用开(po)心(jie)版,也只能下载zip包。

如果是zip包,需要解压到U盘,修改卷标为UNRAID,执行make_bootable.bat。

插上U盘,设置好引导,启动后直接进入系统。可以看到后台管理地址,也可以登陆控制台。

【系统资源占用】

以下测试数据来自于我笔记本的Win10下的VMWare虚拟机,仅供参考。

ESXi 7.0b,安装iso大小351M,系统占用130G硬盘,待机内存1.1G,待机CPU约1-6%,系统启动时间61秒。
你没看错,系统占用130G磁盘!如果你是128G的ssd,可用空间直接就没有了!其实罪魁祸首是ESXi 7.0版本安装系统会默认分配120G的虚拟闪存(安装系统启动前,可以用shift+o,加上autoPartitionOSDataSize=...来改变默认大小,单位MB)。另外,ESXi 6.7安装之后默认占用磁盘空间约10G。

PVE 6.2-4,安装iso大小862M,系统占用6G以上硬盘,待机内存900M,待机CPU约1%,系统启动时间20秒。
安装系统时,磁盘空间会动态分配,除了交换分区等,主要两个分区是:系统分区和LVM分区,后者提供给虚拟机磁盘使用。不知道具体什么分配算法,实测得到:
16G硬盘安装PVE,交换分区1.9G、系统3.6G(1.8G已用)、LVM 6G。
128G硬盘安装PVE,交换分区4G、系统31G(1.8G已用)、LVM 74G。

unRaid 6.8.3,zip包213M,系统必须放入U盘(所需空间不足300M),占用23G硬盘空间,待机内存不足200M,待机CPU约1-3%,系统启动时间59秒。
23G硬盘空间中,启动Docker会默认创建20G的镜像文件。不用Docker可以手动删除镜像,也可以自定义镜像大小,还可以采用文件夹的方式而不是固定大小的镜像。

【创建/编辑虚拟机】

ESXi,创建/编辑虚拟机,比较简单易懂

创建按钮,你应该一眼就能找到了。

创建(1/2)前面的指引步骤,降低了新手理解难度。

创建(2/2)后面也有详细参数的设定。

编辑虚拟机跟创建时的详细参数差不多,每一项都比较好理解,多数可以进一步展开。

PVE,创建/编辑虚拟机,功能也比较全

创建按钮,你能想到藏在右上角吗?

创建也是多步骤指引,但是设计细节还是略不友好(步骤太多、有几个步骤不能默认)。

编辑虚拟机变成了截然不同的界面

unRaid,需要先设定并启用阵列后才能使用虚拟机。(阵列相关后面再讲)

虚拟机放在靠后的菜单里面了(毕竟主要是做NAS的)

创建的系统选择倒是挺直观的

创建/编辑界面完全一样,可设定参数比较有局限

创建/编辑可以切换为xml形式,看起来比较高级,但每次用界面编辑都会导致xml修改丢失。。。

【硬盘直通】

三个虚拟系统的虚拟硬盘性能都不怎么样。具体虚拟磁盘的性能问题可以见我另一篇分享(zhuanlan.zhihu.com/p/27)。如果真的需要高性能磁盘,最好还是做硬盘直通。

ESXi,需要命令行操作找到硬盘并挂载(RDM),然后在界面添加此磁盘。

首先要先开启SSH(最好在完成操作后再关上)

SSH下找到硬盘并执行命令挂载为vmdk文件

虚拟机中添加刚才的vmdk磁盘(ESXi 6.7以上理论上可以直接添加裸盘,但有额外要求)

PVE,只需要命令行操作

SSH下找到硬盘并直接添加给虚拟机

unRaid,先用命令行找到磁盘名,然后界面添加

类似pve,用SSH查到硬盘名

添加Manual类型硬盘,并指定前面找到的硬盘全路径

【PCI硬件直通】

网卡、声卡、sata控制器等都可以用PCI直通的方式供虚拟机使用(显卡相关后面详述),性能会好过模拟设备。使用硬件直通,需要CPU有Vt-d功能,并在bios中开启,且要求不可以使用动态内存。

还有一种叫SR-IOV直通的,能力更强一些,但要求较高,我还没成功过,就不聊了。

ESXi,直接界面操作

在硬件列表中切换需要直通的设备为活动状态。7.0以后,直通切换无需重启系统。

添加新PCI设备、选择需要的设备。

PVE,先修改系统配置打开直通功能,然后就可以直接界面操作了

引导配置加上一段,执行update-grub更新

模块配置确保包含这些模块,然后重启

此后,就可以随时添加任意一个PCI设备了

unRaid,6.9.2之后可以在系统工具中屏蔽要直通的设备,然后在虚拟机配置中勾选要直通的设备即可。(6.9.1以及之前需要安装VFIO-PCI Config插件)

在Tools/System Devices中选择要直通的硬件,打勾、保存、重启。(有一些情况会失败,甚至无法开机,好在你可以拔掉U盘在另一台电脑上修复一下U盘上的配置文件)

在虚拟机配置中会出现新的可直通设备,勾选即可直通。

【显卡直通】

显卡本来也是PCI硬件之一,但是会有诸多原因导致它的直通不会那么容易。

ESXi,基本操作还是PCI硬件直通的操作,但可能遇到了以下诸多的限制:

  • 核显直通后在Win10下驱动错误,代码43(据说其它系统可以直通,但不能显示)

  • 想直通独显,需要在bios屏蔽核显,否则可能无法启动或蓝屏(有的主板没这个限制)

  • NVIDIA显卡直通需要配置hypervisor.cpuid.v0 = FALSE,否则驱动错误,代码43

  • ESXi7.0以后切换显卡直通不需要重启,但是已经直通显卡再重启会导致直通失败,手动切换两次可恢复。这个BUG导致直通显卡的虚拟机是无法开机自动启动的。

PVE,除一般PCI硬件直通的步骤外还需要一些配置,具体操作因为pve版本不同、硬件不同等差别很大。几乎没有限制,技术够牛(改bios、改源码……),基本能直通成功。这里只按照我遇到的简单情况说明下(PVE 6.4-4、Q87主板、NVIDIA显卡)。

在/etc/modprobe.d/pve-blacklist.conf添加这些驱动黑名单,随后重启。

虚拟机的硬件配置中,机器(machine)设置为q35。

添加PCI设备,需要勾选“高级”,随后勾选主GPU、PCI-Express

unRaid,系统帮忙解决了很多直通问题,仅在虚拟机中设置即可,连硬件的屏蔽都省了。

直接把默认的VNC虚拟显卡改成想要直通的显卡即可。也可以添加多个显卡。声卡一样。

【虚拟光驱】

虚拟光驱最大的作用是加载iso光盘镜像,用于安装系统。少数人还需要把真的光驱给虚拟机用,用来读取/刻录光盘。

ESXi,支持主机设备和ISO镜像,主机设备还能选具体哪一个设备

PVE,也支持主机设备和ISO,但是主机设备下面没有具体设备选择

unRaid,直接被简化成了安装ISO,不支持主机设备

【自动开机、关机】

有时候虚拟系统主机会需要重启或是意外断电等情况,此时我们需要某些虚拟机会在系统启动后按顺序自动启动。

ESXi,一次性整体设置自动启动的开关、顺序、延迟时间等。

PVE,需要在每一个虚拟机里面设置自动启动的开关和顺序。

unRaid,每个虚拟机可以开关自动启动,启动顺序就是但是不能调整顺序和间隔时间。

【网络管理】

ESXi,有众多的网络配置功能,完全可以自己组建各式各样的复杂虚拟网络拓扑结构。不过家用的话,基本用不上,甚至你可能都不需要碰到这个界面。

PVE,网络管理简单一些,功能也没那么强,但家用足够了。

unRaid,几乎只有网卡设置,不过一般用途倒是够了。只是每次修改网络配置必须先停掉阵列(所有虚拟机、Docker都要关闭)。

【稳定性】

单说长时间运行的话,三者没发现什么区别,都很稳定。但如果你跟我一样喜欢“瞎折腾”,那就很容易出事了。

所以ESXi是最稳的,界面清晰、扩展性不强,所以也不太会出故障。PVE、unRaid折腾多了都很危险。尤其是unRaid,似乎虚拟机部分还没那么成熟,花样越多坑越多,而且很多设定(比如网络、直通)必须通过重启或关闭磁盘阵列(所有Docker、虚拟机都要关闭)来生效。

【CPU性能】

ESXI使用自己的VMware内核,CPU优化相当好,损耗趋近于0%。

PVE与unRaid接近(都是KVM),损耗大约是4-10%的样子。

详细的对比我就不展示了,受影响因素太多,我也没搞清楚,容易误导大家。总的来说三者差距不会很大,如果你的CPU性能本身有一定过剩,就不用特别纠结这点点损耗了。

【授权】

ESXi,安装即可试用60天。官网可以免费注册,会有功能限制,但个人足够用了。
最便宜的1年期授权大概是1700人民币以上。
网上可以搜注册码。

PVE,算是免费吧。不注册会每次登陆有个提示框,且不能更新官方稳定源。
最便宜的1年期授权是85欧元。
可以通过修改代码屏蔽提示,还可以添加免费更新源来更新。

unRaid,针对U盘注册,不注册几乎等于不能用。可以免费注册30天试用版。
6块硬盘的永久授权是59美元,允许一年换一块U盘(毕竟是U盘杀手)。
网上有开(po)心(jie)版。

【Docker】

如果你没玩过Docker,强烈建议你入坑~ 比虚拟机更轻便、灵活。很多好用的Linux软件都会有Docker的版本,很好地解决了兼容性等问题。

ESXi,不支持Docker,估计未来也不会支持,毕竟不是Linux。你只能先装个linux虚拟系统,再用docker。

PVE,本身不直接支持Docker,但是可以自己安装相关软件。

unRaid,可以运行Docker,还有方便的界面支持。但是虚拟缓存有点麻烦(内存不足时才用),算是瑕疵。

【温度显示】

如果不是用过这几个虚拟系统,我还真想象不到温度显示也会是一个需要考虑的问题。

ESXi,需要主板支持IPMI,基本只有服务器才行了。否则,就完全看不到温度。

PVE,需要安装软件和手改界面代码。不同机器情况还不一样,要解决得有点编程基础。

unRaid,默认只显示硬盘温度。需要安装温度显示插件来显示CPU、主板温度。

【特别的磁盘阵列】

这是unRaid独有的,也是它最初的主要卖点。它不同于真正的raid阵列,是一种灵活的文件级磁盘空间组织方式。

使用中体会到的几个优点:

  • 硬盘数量可以随时增加(减少也能,但会麻烦点)。

  • 每一块盘上面都是独立的文件系统(阵列只剩一块盘,也能读出部分数据)。

  • 结合共享目录做设定,可以指定不同目录的不同阵列分配方案。

但这个文件系统的性能不是太好,连续满负荷读写会突然性能下降,即使有ssd缓存也不行。不知道是BUG还是某些机制决定了这样的特性。

【总结特点】

ESXi,注重企业支持,界面简单易用,自身功能较强,对硬件要求较高,扩展性较低。
适合初学者、不想太折腾的、有服务器主板的(例如Gen8这种家用服务器)。迷茫的时候,优选ESXi吧。

PVE,兼容性最好,扩展性好,界面友善度欠佳,需要一定Linux基础。
适合低端机型、懂Linux的、爱折腾的。PVE玩得溜了之后,看其它的系统都像是弟弟。(可惜我玩不溜)

unRaid,Docker、磁盘阵列、显卡直通、虚拟U盘等都是亮点。必须U盘引导有点麻烦(廉价U盘7x24工作,心还是很慌)。特色功能多,出新快,因此问题也多。
适合直接做NAS、玩PT,尤其适合做家庭影视库、HTPC,玩一拖二也是个不错的选择。比较有可玩性,又不会难度特别高。


ESXi虚拟机备份是确保虚拟机数据安全的重要措施,在本文中,我们将向您介绍一下VMware ESXi虚拟机的基本知识以及2个简单有效的ESXi虚拟机备份是确保虚拟机数据安全的重要措施,在本文中,我们将向您介绍一下VMware ESXi虚拟机的基本知识以及2个简单有效的备份方法!备份方法!

虚拟机备份概述

VMware ESXi是VMware vSphere企业虚拟化套件的核心,在4.1版之前一直称为ESX,它是一个直接安装在物理服务器上的裸机管理程序,提供对底层资源的直接访问和控制,允许您使用单个物理主机创建和运行多个虚拟机。

esxi虚拟机备份
 

与其他数据类型一样,ESXi虚拟机备份也是一项重要的保护措施,可以确保及时恢复重要数据并保持业务连续性,但备份VMware ESXi在概念和方法上与备份普通文件有所不同。接下来在本文中,我们将向大家简单介绍一下基础知识,并提供2个免费有效的VMware ESXi备份解决方案给大家,一起来看看吧!

适用于VMware ESXi的备份选项

对于ESXi虚拟机备份来说,有哪些不同的备份类型呢?通常来说,有2种:

① 基于映像的备份:包含操作系统、配置文件和磁盘上的全部数据。

② 基于文件的备份:通过在来宾计算机上安装代理将VM备份为物理计算机。

基于文件的备份不包括虚拟化环境,因此完全备份VMware ESXi虚拟机的优先考虑方法仍然是基于映像的备份,因为它允许您恢复整个虚拟机,当您要保护多个虚拟机时,这是特别方便的。

无代理自动备份VMware ESXi虚拟机的方法!

借助一些内置的功能来备份虚拟机操作比较麻烦,并且还只能一次备份一个虚拟机,这对于需要管理大量虚拟机的企业来说是很不方便的。那么有没有办法可以集中性地自动备份多台虚拟机呢?在傲梅企业备份旗舰版中可以轻松做到。

  • 自动备份:根据每日/每周/每月计划自动备份,以自动运行备份任务,无需人工干预。

  • 集中备份:在中央控制台中批量备份虚拟机,而无需在每个虚拟机上安装代理。

  • 备份策略:创建完整备份,或执行增量备份以仅捕获更改的数据。

  • 热备份:在虚拟机运行时也能轻松执行备份任务,包括操作系统、配置、应用程序、个人数据和系统状态。

  • 兼容性强:支持Windows PC与Server操作系统,支持备份Hyper-V或VMware虚拟机。

快点击下方按钮进入下载中心下载安装傲梅企业备份旗舰版,然后跟着我们的演示教程一起看看怎么轻松备份虚拟机吧!

立即下载软件

VMware ESXi & Hyper-V

步骤1. 绑定设备:打开傲梅企业备份旗舰版,登录您的账号,在主界面中将您的vCenter或ESXi主机添加为源设备。

vCenter或ESXi主机添加为源设备
 

步骤2. 创建备份任务:点击“备份任务”>“新建任务”

新建任务
 

步骤3. 根据您的需求设置备份类型、任务名、设备、备份目标、备份计划、版本清理等。

【CSDN 编者按】IDE 经过 30 年的发展,种类越来越繁多。放眼国际,主流的 IDE 有 Intellij IDEA、Eclipse、PyCharm、Visual Studio Code 等等;近几年国产 IDE 也相继崛起,如 deepin-IDE、CodeArts IDE 等。

面对不断涌现的 IDE,有软件开发者 Julio Merino 指出,30 年前我们所拥有的 IDE 虽然没有图形界面,但是却带来了许多令人印象非常深刻的功能,如今 随着时光的流逝,很多功能失去了,而且如今的 IDE 并没有太大的进步,唯一的区别可能只是添加了 AI 辅助代码功能。

此观点一出,也引发了巨大的讨论。接下来,我们将走入 Julio Merino 这篇文章,深入探讨我们过去拥有的文本编辑器以及与当今主流编辑器的最新比较,也旨在推动 IDE 更好的未来。

原文地址:https://blogsystem5.substack.com/p/the-ides-we-had-30-years-ago-and

本文为 CSDN 翻译,未经允许禁止转载。 

编译 | 苏宓
出品 | CSDN(ID:CSDNnews)

以下为译文:

我是在 20 世纪 80 年代末 90 年代初学习编程长大的。那时,我并没有完全理解我在做什么,以及为什么我使用的工具在当时硬件存在限制的条件下,表现得令人印象深刻。随着年龄的增长,现在通过使用 DOSBox 重新体验那些程序并将它们与我们当前的状态进行比较真的很有趣。

这一次,我想看看在 Windows 主导个人电脑行业之前那个时代我们所拥有的纯文本 IDE。我想这样做是因为那些 IDE 几乎毫不逊色于今天的 IDE。然而,感觉好像我们经历了一个黑暗时代,在那段时间内我们失去了大部分功能,而时代似乎是个轮回,这些功能现在才重新浮出水面。

接下来,我们将领略一次怀旧之旅,同时对“臃肿的 IDE”发表一点看法。但更重要的是,继续了解以前存在的东西,才能更好地评估未来功能的推出。

图片

第一款编辑器和 TUI 界面

在 20 世纪 90 年代,几乎每个运行的 DOS 程序都有一个全屏的文本用户界面(TUI),它具有基于文本的窗口、下拉阴影、颜色和鼠标支持。以下是一个示例:

图片

MS-DOS 编辑器(也称为 EDIT.COM)展示了其中一个设置对话框。请注意菜单栏、带有列表选择器和按钮的丰富对话框,以及记录了导航快捷方式的状态栏。

每个程序都是独立的,因为它们的界面是独特的。然而,它们在外观上如此相似(80x25 个字符没有太多的差异),以及它们的工作方式如此相似,以至于这些差异实际上并不妨碍可用性和可发现性。一旦你学会了 Alt 键打开菜单,Tab 键在输入字段和按钮之间切换,你几乎可以轻松地浏览任何程序。

但是我们来谈谈编辑器。MS-DOS 从第 5 版(1991年)开始附带了一个 TUI 文本编辑器,如上图所示。这个编辑器“能用”,但对于编码来说确实很不方便:你需要退出编辑器来编译和运行你的代码,当你重新运行编辑器时,你需要导航回到之前的位置。

在“我家”中,我们使用了一个叫做 SideKick Plus(1984年)的东西,它不是一个真正的代码编辑器:它更像是一个带有内置记事本的个人信息管理(PIM)系统。然而,它的酷炫之处在于它是一个常驻程序(TSR),这意味着它在后台加载,并且你可以随时通过按下 Ctrl+Alt 键来调出它。

图片

按下Ctrl+Alt键后,SideKick Plus的主屏幕出现。请注意DOS仍然在后台运行。

将这个 TSR 功能视为一种基本的多任务处理方式,适用于没有多任务处理的操作系统。这非常有效,因为在高效的内部开发循环中,快速切换代码编辑和构建是至关重要的。

然而,到这个时候,真正的 IDE 已经存在了几年。Turbo Pascal 1.0(1983年)展示了一种集成体验的开始,尽管它还没有其标志性的 TUI 界面。QuickBASIC 2.0(1986年)展示了更多“传统”的TUI界面(与EDIT.COM相同,因为它们是同一个编辑器),而 MS-DOS 5 附带了 QBasic,这是QuickBASIC 的简化版本,它不允许编译为本机代码,但外观相同。

图片

Borland 公司开发的 Turbo 系列

在我看来,IDE 的巅峰之作是后来的 Borland Turbo 系列,其中包括 Turbo C++(1990年)、Turbo Assembler 和 Turbo Pascal。这些 IDE 是特定于语言的,但它们拥有全屏的 TUI 界面,并且功能非常强大。

让我们来看看当时拥有的功能。语法高亮:

图片

Borland Turbo C++ 显示一个用于演示语法高亮的“Hello World”程序。

编译器集成和诊断:

图片

Borland Turbo C++编译一个程序后显示一个警告,因为我没有从main()函数返回值。

集成的项目和构建系统管理:

图片

Borland Turbo C++显示其项目管理和多窗口功能。在图片中,你可以看到两个C++源文件,其中一个依赖于另一个,并且项目窗口列出了所有需要一起编译的文件。

带有断点、堆栈跟踪等功能的调试器:

图片

Borland Turbo C++ 显示一个包含多个函数、断点和当前调用堆栈的调试会话。

甚至还有完整的参考手册:

图片

Borland Turbo C++显示其集成的帮助系统,背景中是“Hello World”程序,而帮助中是printf函数的说明。

请记住:这些都是在 20 世纪 90 年代早期,距今已经过去了 30 多年。

我是 Turbo C++ 的忠实用户,通过它我学到了很多东西。我记得使用它们的 conio.h 库来实现自己的 TUI,并使用它们内置的 graphics.h 库来尝试实现 GUI。请注意:这是在没有互联网的情况下完成的。对于很多人来说,没有“查找事物如何工作”的选项,也不能在 Stack Overflow 上找到答案:IDE 必须是即时可发现的(而且它确实是这样的),并且是自包含的,为你提供完整的开发体验。

图片

那时候的 Linux 怎么样?

那么回顾一下 20 世纪 90 年代初的 Linux 情景。

在 Linux 中,几乎每个程序都是基于文本的,但这些程序并没有提供全屏的 TUI(文本用户界面)。这不符合“Unix的方式”。我记得当时看到 X11 配置工具(XF86Setup)或 OpenBSD 安装程序时,对它们的简单性感到震惊:连我这个几乎没有什么“真实”编程经验的年轻少年都已经写出了好看的程序。

无论如何,这并没有阻止我追求不使用 Windows 的目标。我继续学习 Linux 的知识,并很快经历了每本书和在线社区都在推荐的“最佳”编辑器:Vim 和 Emacs。但我无法理解它们为什么受到如此高的欢迎。使用它们就像回到了过去。它们确实是全屏程序,但看起来相当晦涩。Vim 确实支持语法高亮,但远远称不上是一个 IDE。Emacs 可以配置与一些代码辅助功能等集成,但也远远称不上是类似“开箱即用”的 Turbo 系列 IDE。

看看今天的默认 Emacs 配置,它自那时以来几乎没有改变。它确实有窗口,但它们没有装饰。它没有颜色(现在依然几乎没有);过去不支持鼠标。虽然它确实有一个菜单栏,但这只是一个噱头?如果按照说明按下 M-` 键,你会面对一个真正奇怪的界面来导航菜单,这让人怀疑为什么他们甚至要浪费一整行屏幕空间来显示一个毫无作用的菜单栏。

图片

现在试着把这些交给一个没有编程经验的人,让他们来创建、编译和调试一个程序。他们在浏览编辑器时会遇到麻烦,也找不到任何能够进行项目管理或编译器集成的功能。

相比之下,在撰写这篇文章时,我在 DOSBox 中启动了 Turbo C++,只需要几分钟就能够创建一个“Hello World”的项目并且在环境中进行导航,而且一切都是直观的。作为一个 IDE,它提供了全面的集成。

图片

当代 TUI IDE

无论如何。让我们忘掉过去,看看 TUI 领域的今天。我不想看 GUI,因为......Visual Basic 曾是图形编程的巅峰之作,而我们现在也没有了,这也是后话了。

与 Borland Turbo C++ 环境最接近的现代版本是 RHIDE(https://directory.fsf.org/wiki/RHIDE)。如下图所示,它看起来非常相似——如果你以为这是 Turbo C++,那就大错特错了。遗憾的是,它只能在 DOS 环境下运行,而且现在似乎已基本废弃,其最新版本发布于 7 年前。

图片

RHIDE IDE 显示的 "hello world "程序与之前的一样,编译后既无错误也无警告。

然后就有了 Free Pascal。这是最接近旧版本的体验,但采用了现代代码库,可在 Unix 系统上本地运行,并可利用任何大小的终端。

图片

Free Pascal IDE 包含一个简单的“hello world”程序,以及用于内置 ASCII 表格和计算器的重叠窗口

最后是 QB64。它与 Microsoft QuickBasic 非常相似,但......别被它骗了:尽管它看起来像一个 TUI,但它实际上是一个模拟 TUI 的 GUI 应用程序。你不能在终端运行 QB64。

图片

QB64 IDE 看起来像文本,但实际上是图形程序。

Free Pascal 和 QB64 都在维护和相对活跃的开发中,它们的最新版本发布于 2021 年......但它们大多被忽视了,因为它们使用的是现在大多数人都不感兴趣的晦涩语言。

图片

“真正的”现代控制台 IDE

那么对于现代编程语言而言,我们还剩下什么选择呢?

目前最先进的选择似乎是 Neovim(https://neovim.io/)、Doom Emacs(https://github.com/doomemacs/doomemacs),甚至是 Helix(https://helix-editor.com/)。这些编辑器非常强大,并且通过各种插件提供了类似于 IDE 的体验。

不过,如果你问我,我觉得这些编辑器都没有像之前的 Borland 产品那样提供相同的体验:它们的界面很复杂,并且由于支持多种语言,对于几乎所有语言都能工作得不错,但是对于特定语言来说并不出色。可以说是“万能但不精”。

无论如何,根据我在 microsoft/terminal#16440(https://github.com/microsoft/terminal/discussions/16440)讨论中观察到的情况来看,首选的“简单”TUI(文本用户界面)编辑器似乎是 GNU Nano......但其实首先它不是 IDE;其次对我来说,它看起来像 WordStar。Nano 的外观让我想起了我在 CP/M 时代使用文字处理器的第一次经历。看看这个:

图片

GNU Nano 编辑器的默认设置,打开一个空文件。

所以,尽管现在我们有很多功能强大的控制台编辑器,但它们并没有提供与 30 年前完全相同的可用体验。事实上,感觉在这 30 年间,我们在很多方面出现了倒退,直到现在才达到了一些曾经拥有的功能水平。

当图形化操作系统开始流行起来时,TUI(文本用户界面)自然而然地变得不那么受欢迎,而它们最近才重新流行起来确实有些有趣。至于为什么会有这种趋势,我认为我们应该归功于 LSP(Language Server Protocol)的发明对这个领域的最新进展。

多年来,TUI 编辑器一直“搁置”不前,因为为它们构建 IDE 功能需要很大的努力,而且它们的小型维护人员团队无法承担实现这些功能的成本。LSP 为现有的语言特定集成提供了接入方式,并重新激发了对古老而可靠的 Vim 和 Emacs 的兴趣。希望即将发布的 BSP(Build Server Protocol)能够更进一步,使这些 TUI 编辑器更像 IDE。

图片

为什么要使用 TUI IDE(基于文本用户界面)?

有人会问:“谁在乎呢?现在每台台式机和笔记本电脑都运行图形操作系统了!”

这个问题问得好。

一般来说,你可能不需要 TUI IDE。如果 VSCode 是你的首选,那么它的远程处理能力是一流的,而且 VSCode 拥有一个相当不错的图形界面,而不是一个完整的集成开发环境。但是,VSCode 也有一些不足之处。

首先,TUI IDE 非常适合在远程计算机上工作,甚至比 VSCode 更好。你可以通过 SSH 轻松进入任何机器并启动 IDE。将其与 tmux(终端复用器类自由软件,功能类似 GNU Screen)相结合,就能获得“完整”的多任务处理。当然,你也可以使用远程桌面客户端来代替 SSH,但我总觉得远程桌面客户端很笨拙,因为会出现延迟,而且与本地桌面快捷方式的整合也不恰当。

其次,VSCode 的远程扩展不是开源的,这并不是什么大问题......只是它们无法在 FreeBSD 等操作系统上运行,而且也无法修复。因此,我无法使用 VSCode 远程登录我的主开发服务器。

第三个问题是......减少资源消耗。

图片

无处不臃肿的 IDE

最后,我还想吐槽一下“IDE 的臃肿”问题。Borland 公司在 1990 年发布的 Turbo C++ 编译器,配备了所有应有的功能(UI、C++ 工具链、集成手册...),安装后大小不到 9 MB,在 640KB 的 RAM 内运行。

相比之下,Helix 文本编辑器在磁盘占用的空间也只有 16 MB,但 Doom Emacs 占用大约 500 MB,并消耗 RAM 的许多空间。然而,请注意,过往这些工具都不包含语言工具链或帮助系统,而现代工具链在磁盘空间都是以 GB 为单位。

要获得“真正的”IDE,我们必须转向使用 IntelliJ、VSCode 这类的图形程序。不过,VSCode 占用磁盘空间约为 350 MB(令人惊讶地比 Doom Emacs 少),但它可能会吃掉你的电脑(占用内存):毕竟它是基于 Electron 开发的。我注意到通过放弃 VSCode 并转向 Doom Emacs,可以显著节省笔记本电脑的电池寿命。

因此,我想要留下的问题是:在 30 年内,IDE 进步了多少?现代 IDE 拥有一些更好的重构工具、更好的功能并支持更多的语言,但从根本上来说...它们并没有太大变化。

对比 30 年前和 30 年后的 IDE,唯一主要区别可能是 AI 辅助编码,但这是一项主要由远程服务提供的功能,甚至不是由安装的代码提供的!


Windows Server 2012/2016/2019/2022服务器默认仅支持一个用户远程,如果第二个人远程上去之后会直接把前面一个登录用户踢掉,很多办公场景需要两个人同时远程,本文介绍更改系统设置的方式实现。

 操作步骤

1. 按"Windows+R"在运行的输入框里面输入"gpedit.msc"命令、然后点击确定



2. 在“计算机组策略”中依次展开 计算机配置-->管理模板--->windows组件--->然后在右边的菜单中选择双击打开"远程桌面服务";



3. 在远程桌面服务界面中;双击打开“远程桌面会话主机”



4. 在“远程桌面会话主机”界面中双击打开“连接”



5. 在“连接”界面中双击打开“将远程桌面服务用户限制到单独的远程桌面服务会话”



6. 在“将远程桌面服务用户限制到单独的远程桌面服务会话”界面中选择“已禁用”然后点击确定



7. 然后返回连接界面,在“连接”界面中双击打开“限制连接的数量”



8. 在“限制连接的数量”界面中;选择“已启用”--->然后在选项里面“允许的RD最大连接数”里面选择你能接受的最大的同时远程的用户数;我这里选择的是2;也就是能支持同时2个远程桌面管理;然后点击确定即可



9. 这是我服务器上同时登陆2个用户后看到的连接情况


每个用户使用完后退出时建议"注销"退出!!!


Windows Server 2012默认情况下,只允许2个用户远程桌面登陆,可以通过安装远程桌面会话主机配置来实现2个以上用户的远程桌面登陆。

进行以下步骤前,先关闭系统防火墙,在服务器管理器中,选择本地服务器,远程桌面设置为启用。


1、安装桌面会话主机和远程桌面授权

1)打开“服务器管理器”,选择“添加角色和功能向导”>> 选择远程桌面服务>>下一步 >> 下一步 >> 选择桌面会话主机和远程桌面授权 >>选择安装 >> 重新启动后设置便会生效。


2、 web申请激活码

管理工具—远程桌面服务—远程桌面授权管理器,选择未激活的服务器,选择”属性”,请记下对话框中出现的产品ID,我们要用这20位的ID号到网上注册例如:00184-50100-21572-AT706

注意:如果终端服务器授权中没有服务器,请选择连接,然后输入本机服务器IP地址。


必需信息,如图下填写:



打开Internet Explorer浏览器,在地址栏中输入https://activate.microsoft.com这个地址,此时是英文界面。选择GO



确保已选中"启用许可证服务器"项,再单击"下一步"按钮。



在随后要求提供的信息界面中,"产品ID"处输入刚才抄下的那个20位数字,再填写刚才步骤1中必需信息,然后再选"下一步"继续。



可以得到"已成功处理您的许可证服务器启动申请。你的许可证ID是:…",又是一个需要抄下的分为七段的35位数,里面包含有数字也有大写的英文字母;并且还会问你"需要此时获取客户机许可证吗?"选择”是”

许可服务器ID:CCB9Q-Y44D6-BR2HD-9H4VM-YPXMM-KF2KJ-RJ473



如果没有许可证,那么许可证程序选择“企业协议”,确定您的信息后,便可继续”下一步”;


“产品类型"一项应为"Windows 2003终端服务客户端访问许可证”;“数量"为你欲连接的最大用户数(比如为"500”);在"注册号码"中输入你从微软获得的那个七位数(如果自己没有许可证,那么就输入6565792,4954438,6879321或者5296992),再"下一步";

注意:建议选择Windwos Server 2012远程桌面服务器每用户访问许可。



记录前面的35位数的"许可证服务器ID",一个是现在才取得的另一个七段共35位数的"许可证密钥包ID"。



许可密钥ID:RBG28-9884M-GXC4V-WKXGJ-8QPXG-FG8YP-9RV8Q

9) 选择结束


3、激活终端服务

1)管理工具->远程桌面服务->远程桌面授权管理器,选择服务器名称后点击右键,将”属性”中的”安装方法”设为”Web浏览器”;



再选择服务器,点击右键,选择”激活许可>>下一步>> 选择WEB >>输入许可服务器ID:CCB9Q-Y44D6-BR2HD-9H4VM-YPXMM-KF2KJ-RJ473 >>选择立即启动许可安装向导>>下一步 >>输入许可密钥ID:RBG28-9884M-GXC4V-WKXGJ-8QPXG-FG8YP-9RV8Q >>点击完成

4、配置远程桌面会话主机授权服务器

1)管理工具—远程桌面服务—RD授权诊断程序,查看当前服务器为没有授权


2)运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----授权,找到 “使用指定的远程桌面许可服务器”,设置为启用,并在“要使用的许可证服务器”中,设置当前服务器的IP或者主机名。


3)运行—>gpedit.msc->计算机配置—管理模板—windows组件—终端服务找到 “限制连接数量”,设置为Disable,即禁用或者未配置。也可以设置具体数量,如图:(没找到不用改了)


5、配置远程桌面会话主机授权模式

1)管理工具—远程桌面服务—RD授权诊断程序,查看当前服务器授权为0


2)运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----授权,找到 “设置远程桌面授权模式”,设置为启用,并在“指定RD 会话主机服务器授权模式”中,选择“按用户”。


3)重新打开RD授权诊断程序


6、配置远程桌面会话主机连接

运行—>gpedit.msc->计算机配置—管理模板—windows组件—远程桌面服务—远程桌面会话主机----连接,可以在“限制连接的数量”中设置最大连接数量(默认无限制)


设置一个用户是否可以使用多个远程桌面连接。选择“将远程桌面服务限制到单独的远程桌面会话”,这里必须设置禁用,否则一个用户只能连接一个远程桌面。

————————————————

版权声明:本文为CSDN博主「lzwx5213」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_43352213/article/details/99975729