
Ich möchte, dass mein Fedora Linux Folgendes unterstützt:
Verwenden Sie Linux als vollständige Entwicklungsplattform, ohne dass die Installation eines anderen Betriebssystems erforderlich ist, und können Sie dennoch Programme auf verschiedenen Plattformen erstellen und testen.
Ersetzen Sie den Windows-Computer vollständig für alle anderen Arbeiten, z. B. Office, Paint, Remote Desktop usw.
Können Sie Open-Source-Projekte und Tools zum Erreichen der oben genannten Ziele vorschlagen?
Antwort1
Definieren Sie „Plattform“. Sie können Software, die für Windows oder Mac gedacht ist, nicht sinnvoll testen, ohne diese Betriebssysteme tatsächlich auszuführen, selbst wenn es möglich ist, sie mithilfe einer Cross-Compilierung unter Linux zu erstellen. Für echte Tests auf anderen Betriebssystemen ist VMware ein großartiges Tool.
Der zweite Teil Ihrer Frage sollte wahrscheinlich eine völlig separate Frage sein. Aber Sie können OpenOffice.org oder Google Docs verwenden, um MS Office zu ersetzen, Pinta oder GIMP oder was auch immer, um Paint zu ersetzen, VNC oder Empathy+Vinagre, um Remote Desktop zu ersetzen, usw. usw.
Diese Fragen ließen sich leichter beantworten, wenn Sie einige spezifischere Anwendungsfälle angeben würden.
Antwort2
Sie können problemlos plattformübergreifend entwickeln, egal ob Sie Systemprogrammierer, Webentwickler oder Entwickler von Desktop-Anwendungen sind. Wenn Sie sich mit Systemen auskennen, funktionieren alle Dienstprogramme und/oder Treiber, die Sie für Linux schreiben, wahrscheinlich mit sehr geringen Änderungen auch für andere *nix-Systeme. Vorausgesetzt, Sie schreiben Standard-C-Code und verwenden nicht zu viele systemspezifische Aufrufe, lassen sie sich möglicherweise sogar problemlos auf Windows portieren.
Wenn Sie ein Desktop-Anwendungsentwickler sind, können Sie GTK, QT oder wxWidgets als Ziel verwenden und Ihre App wird wahrscheinlich auf den drei wichtigsten Plattformen von heute (*nix, Windows, Mac) gut funktionieren. Beschränken Sie systemspezifische Aufrufe auf ein Minimum oder isolieren Sie sie in einer Wrapper-Bibliothek, die systemspezifisch ist. Sie können auch eine virtuelle Maschine wie die JVM und/oder CLR als Ziel verwenden, damit die Anwendung übergreifend funktioniert.
Wenn Sie ein Webentwickler sind, werden Sie wahrscheinlich auf zu viele verschiedene Alternativen stoßen, aus denen Sie wählen können. Ich bevorzuge einen kleinen Webserver namensCherokeeund ich entwickle und betreibe ASP.NET (Mono) und Django-Apps, die darauf laufen und ein PgSQL-Backend verwenden.
Die Schlussfolgerung ist also, dass plattformübergreifende Entwicklung unter Linux möglich ist, vorausgesetzt, Sie können den Code auf der Zielplattform kompilieren und berücksichtigen dies beim Schreiben Ihres Codes oder wenn Sie eine VM als Ziel verwenden. Der andere Punkt ist, dass Sie möglicherweise aufDas Paradox der Wahlund nicht wissen, was Sie verwenden sollen. Lesen Sie dazu unten meine Antwort auf die zweite Frage.
Zur zweiten Frage: Die beste Ressource, die ich gefunden habe, heißtOpen Source-Alternativen. Diese Website listet kommerzielle Software und ihre Open-Source-Alternativen auf. Fast alle Alternativen laufen unter Linux und FreeBSD.
Antwort3
Naaaaaa, Nr. 1 ist ein echter Knaller, Sir. Ich weiß nicht, ob es irgendeine Möglichkeit gibt, dieses Ziel zu erreichen. Cross-Compiling zu anderen *nixes ist möglich (mit leichten Kopfschmerzen) auf Ihrer Entwicklungs-Box, aber wie genau sollen Sie diesen Code ohne das entsprechende Betriebssystem und die entsprechende Architektur ausführen? Es gibt umfangreiche Streifzüge inSystememulationda draußen, aber letztendlich ist das ein Pfusch. Wenn Sie Software auf einem Betriebssystem/einer Architektur testen möchten, führen Sie sie auf diesem Betriebssystem/dieser Architektur aus!
Andererseits gibt es mittlerweile Tools, die es einfach machen, dasselbe Projekt in einer Vielzahl von Konfigurationen zu erstellen. Cmakeist wahrscheinlich die bekannteste und am besten getestete. Zumindest wird es Ihnen dabei helfen, Ihr Projekt auf anderen Systemen zu testen oder andere dazu ermutigen, dies für Sie zu tun.
Um fair zu sein, ich bin ziemlich sicher, dass dies auch auf anderen Betriebssystemen nicht möglich ist.
#2 ist viel viel einfacher
und so weiter und so fort. Ich würde mehr helfen, aber die Schärfe Ihrer Fragen lässt rapide nach.
Antwort4
MonoDevelopsollte Ihnen dabei helfen, die Entwicklungsseite in den Griff zu bekommen:
MonoDevelop ist eine IDE, die hauptsächlich für C# und andere .NET-Sprachen entwickelt wurde. Mit MonoDevelop können Entwickler schnell Desktop- und ASP.NET-Webanwendungen schreiben aufLinux, WindowsUndMac OS X. MonoDevelop erleichtert Entwicklern das Portieren von mit Visual Studio erstellten .NET-Anwendungen auf Linux und die Pflege einer einheitlichen Codebasis für alle Plattformen.
(Hervorhebung von mir)