什么是 Mono 以及它如何帮助 Linux 新手 Windows 切换器?

Linux 有很多东西。 它是大量发行版的核心组件,是大型移动平台的支柱,并且比其他更流行的操作系统更好(绝对不是意见)。

然而,它的缺点之一是它在桌面上的受欢迎程度较低:程序的可用性。 幸运的是,有些东西可以帮助这个, 单核细胞增多症 作为其中之一。

软件框架:构建块

软件框架并不是最令人兴奋的事情,但它们以自己的方式有用,在幕后工作。 它们允许人们轻松地为他人开发应用程序,而无需完全从头开始。 单核细胞增多症 是其中之一,.NET Framework 也是如此。

这些框架的范围可以从用于特定桌面环境到可用于多个操作系统的东西。 为了 example,KDE Plasma 桌面具有多个软件,有助于更轻松地编写集成的本机应用程序。 这包括他们自己的名为 KDevelop 的 IDE(集成开发环境)。

这也可以为最终用户带来许多好处。 开发人员能够更快、更轻松地创建应用程序,因此可以更快地推动更改和改进。 当你站在巨人的肩膀上时,到达那个额外的高度会减轻一点痛苦。

一些框架本质上是跨平台的——用它们编写的程序可以在不同的操作系统之间工作。 这对开发人员和最终用户都很有用。 一方面,此类程序可以覆盖更多人,另一方面,更广泛的用户群提供更高的可靠性。

什么是单声道?

单声道是 example 在 Windows、macOS、Linux 等平台上可用的跨平台框架。 它最初被设计为 Linux 上 .NET Framework 的开源实现。 从那里开始,它变成了更多东西,支持多种不同的操作系统。

Mono(如 .NET)与 C# 编程语言紧密相关,C# 以其高度的可移植性而闻名。 为了 example,Unity 游戏引擎使用 C# 作为创建视频游戏的跨平台方式。 这部分是由于语言的设计。 C#可以变成 CIL (通用中间语言),既可以编译为本机代码(更快,更不便携),也可以通过虚拟机运行(更慢,更便携)。 Mono 提供了编译和运行 C# 程序的方法,类似于 .NET Framework。

这些天来,它是由它试图模仿的软件的所有者开发的:微软。 随着 .NET 框架的开源,Mono 比以往任何时候都更加相似,能够将其代码集成到自己的设计中。 该项目还包括一个名为 MonoDevelop 的特殊 IDE(集成开发环境),有点像 Linux 等效的 Visual Studio。

单声道和跨平台应用程序

考虑到所有这些,很明显,Mono 的跨平台特性对于从 Windows 迁移到 Linux 的人们非常有用。 它充当了两个操作系统之间的另一个桥接点,以消除切换的更大问题之一:专有软件。

有许多程序是用 Mono 编写的。 这些应用程序很有可能是跨平台的,可在多个操作系统之间使用。 除此之外,Mono 实际上支持许多开箱即用的 .NET 二进制文件(即用 Visual Studio 编写的 C# EXE 文件)。 因此,Linux 上尚未出现的 .NET 程序很可能在未来出现。

您甚至可能在不知情的情况下使用这些应用程序之一!

记事通

KeePass 是一款出色的离线密码管理器。 这意味着与 LastPass 不同,为了方便起见,您的信息并未绑定到服务器。 但这可能是值得付出的代价,以获得更高水平的控制权。

它也是用 Mono 编写的,可以跨多个不同平台运行。 虽然它主要针对 Windows,但这也意味着它同时支持 macOS 和 Linux。 虽然它可能看起来不是很原生,但它工作得很好。 另外,让您的密码可以访问是有好处的。

品塔

描述 Pinta 的最佳方式是 Paint.NET 的跨平台版本(反过来又是 Microsoft Paint 的更好版本)。 这是一个相当简单的应用程序,具有相当大的编辑和创建图像的能力。 与 KeePass 不同,它在不同操作系统之间看起来要好一些。

可悲的是,它也展示了 Mono 的一些限制。 Paint.NET 是它的灵感来源,毕竟它是使用 .NET 框架编写的,但仍然仅适用于 Windows。 虽然大多数事情都可以在两者之间进行,但如果程序依赖于框架的 Windows 特定组件,您将需要寻找替代方案。

Wine + Mono = 更好的兼容性

Mono 还可以通过扩展 Wine 来帮助 Windows 切换器,Wine 是一个允许用户运行 Windows 应用程序的兼容层。 Wine 对许多 Windows 功能进行逆向工程,并将该行为转换为它们的 Linux 等效项。 因此,它可以运行许多不是为 Linux 设计的程序,就好像它们是一样的。

实际的 Mono 安装文件包含许多软件库、其他程序可以构建的组件。 它们旨在尽可能多地实现 .NET Framework(尽管是跨平台的)。 正因为如此,许多使用上述框架为 Windows 编写的东西也可以在 Mono 下工作。

Wine 可以利用 Mono 多年来所做的所有工作,使用它来帮助运行 .NET 应用程序,甚至是其中包含上述组件的程序。 一些游戏,对于 example,在一定程度上依赖于框架。

开源 .NET 世界中的 Mono

如前所述,.NET 框架的大部分现在都是开源的,而且还会有更多。 已经可以(在某种程度上)在 Windows 以外的平台上利用它。 然后,可能想知道 Mono 可能对人们仍然有用。

答案很简单:.NET 的许多可用组件对最终用户是不可见的。 仅使用微软现在的开源框架来构建跨平台图形应用程序仍然相当困难。 另一方面,Mono 已经很成熟了,有多种方法可以编写具有原生外观的程序,而且几乎没有麻烦。 它只会继续增长,

当然,当 .NET 的开源组件变得更加成熟时,它将获得 Mono 目前提供的许多好处。 这对于 Linux 以及可能想要切换到它的用户来说只能是一件好事。 毕竟,更便携的应用程序总是受欢迎的。

您如何处理 Linux 上的应用程序差距?

图片来源:OndrejProsicky/Depositphotos