Linux作为完整的开发平台?


8

我想使我的Fedora Linux具有以下功能:

  1. 将Linux用于完整的开发平台,而无需安装任何其他操作系统,但仍能够在不同平台上构建和测试程序。

  2. 将Windows机器完全替代所有其他工作,例如Office,Paint,Remote Desktop等。

您可以建议实现上述目标的开源项目和工具吗?


您想在其他平台上安装它们来测试您的程序吗?还是我误会了那部分
Michael Mrozek

3
这个问题的措词很笼统,因此不容易回答。如果您可以更精确地指定您想做什么,这将有所帮助。一种解决方案可能支持某些平台,但并非所有可能的平台都支持。此外,您接受VM吗?
txwikinger 2010年

Answers:


3

无论您是系统程序员,Web开发人员还是桌面应用程序开发人员,都可以轻松地进行跨平台开发。如果您是系统用户,那么您为Linux编写的任何实用程序和/或驱动程序都可以通过最少的修改而很好地适用于其他* nix。只要您编写标准的C代码并且不使用过多的系统特定调用,它们甚至可能很容易移植到Windows。

如果您是桌面应用程序开发人员,则可以定位GTK,QT或wxWidgets,您的应用程序可能会在当今的主要3个平台(* nix,Windows,Mac)上很好地运行。同样,将特定于系统的调用保持在最低限度,或者将它们隔离到特定于系统的包装器库中。您还调用了以JVM和/或CLR之类的虚拟机为目标,该虚拟机将允许应用程序全面运行。

如果您是网络开发人员,那么您可能会遇到太多不同的选择。我更喜欢一个名为Cherokee的小型Web服务器,我开发并运行ASP.NET(单声道)和在其上运行并使用PgSQL后端的Django应用程序。

因此,得出的结论是,只要您可以在目标平台上编译代码,并且在编写代码或针对VM时牢记这一点,就可以完成Linux中的跨平台开发。另一点是,您可能会遇到选择悖论,却不知道该使用什么。为此,请阅读我对第二个问题的回答。

关于第二个问题,我发现的最好的资源称为“ 开源替代方案”。该网站列出了商业软件及其开源替代方案。几乎所有替代方案都可以在Linux和FreeBSD上运行。



抱歉,设备驱动程序非常依赖内核(甚至是内核的确切版本)。与内核直接交互的部分确实或多或少地依赖于它(诸如glibc,ps(1),mount(8)之类的东西),其他“系统”部分则少得多(例如,sort(1)或bash) (1)是“普通”的常规C / C ++程序,它们将在各种Unices上进行完全相同的编译和运行)。整个GUI内容与内核无关,但是有其自己的规则。
vonbrand

4

定义“平台”。即使实际上可以使用交叉编译在Linux或Windows上运行,也无法合理地测试要在Windows或Mac上使用的软件。对于在其他操作系统上的真实测试,VMware是一个很好的工具。

问题的第二部分可能应该是一个完全独立的问题。但是您可以使用OpenOffice.org或Google Docs替换MS Office,Pinta或GIMP,或使用其他任何方式替换Paint,VNC或Empathy + Vinagre替换远程桌面等。

如果给出了一些更具体的用例,则回答这些问题会更容易。


您可能要记住,Apple仅许可MacOSX在Apple品牌的计算机上运行。或者,您也可以忽略它,具体取决于您对收缩包装许可证的感觉。
David Thornley,2010年

正确,您当然可以将OS X用作主机OS,并通过VMware Fusion运行Linux和Windows。
桑迪

2

Weeeeeeel,第一名,先生。我不知道有什么方法可以实现这个目标。可以在开发盒上完成对其他* nix的交叉编译(有点麻烦),但是如果没有适当的OS和体系结构,您应该如何准确地运行该代码?那里有广泛的系统仿真方面的尝试,但是最终这是一个麻烦。如果要在OS /体系结构上测试软件,请在该OS /体系结构上运行它!

另一方面,现在有可用的工具可以简化在各种配置中构建同一项目的过程。 Cmake可能是最著名和经过测试的。至少这将帮助您在其他系统上测试项目,或者鼓励其他人为您测试。

顺便说一句,我很确定这在其他操作系统上也是不可能的。

#2容易得多

等等。我会提供更多帮助,但是您的问题敏锐度急剧下降。


1

这取决于您的目标平台。如果您正在为虚拟平台(Java甚至.NET)开发,那么应该会更好。在Linux上,有些平台甚至比Windows(例如Ruby)更友好。

对于作为桌面的Linux,只需列出所需的软件即可。如今几乎没有Windows桌面软件没有Linux替代品。


1

MonoDevelop应该能够帮助您掌握开发方面的知识:

MonoDevelop是主要用于C#和其他.NET语言的IDE。MonoDevelop使开发人员能够在LinuxWindowsMac OSX上快速编写桌面和ASP.NET Web应用程序。MonoDevelop使开发人员可以轻松地将使用Visual Studio创建的.NET应用程序移植到Linux,并为所有平台维护单个代码库。

(重点是我的)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.