Linux als komplette Entwicklungsplattform?

8

Ich möchte mein Fedora Linux in die Lage versetzen, Folgendes zu tun:

  1. Verwenden Sie Linux für eine vollständige Entwicklungsplattform, ohne dass eine andere Betriebssysteminstallation erforderlich ist, und können Sie dennoch Programme auf verschiedenen Plattformen erstellen und testen.

  2. Ersetzen Sie den Windows-Computer vollständig für alle anderen Arbeiten, z. B. Office, Paint, Remotedesktop usw.

Können Sie Open Source-Projekte und -Tools zur Erreichung der oben genannten Ziele vorschlagen?

Xinus
quelle
Sie möchten Ihr Programm auf anderen Plattformen testen, indem Sie sie installiert haben? Oder verstehe ich diesen Teil falsch
Michael Mrozek
3
Diese Frage ist sehr allgemein formuliert und daher nicht leicht zu beantworten. Es wäre hilfreich, wenn Sie etwas genauer angeben könnten, was genau Sie tun möchten. Es kann sein, dass bestimmte Plattformen von einer Lösung unterstützt werden, jedoch nicht alle möglichen Plattformen. Akzeptieren Sie außerdem VMs?
Txwikinger

Antworten:

3

Sie können problemlos plattformübergreifend entwickeln, unabhängig davon, ob Sie ein Systemprogrammierer, ein Webentwickler oder ein Entwickler von Desktopanwendungen sind. Wenn Sie sich für Systeme interessieren, funktionieren Dienstprogramme und / oder Treiber, die Sie für Linux schreiben, wahrscheinlich mit sehr geringen Änderungen gut für andere * nix. Vorausgesetzt, Sie schreiben Standard-C-Code und verwenden nicht zu viele systemspezifische Aufrufe, können diese möglicherweise sogar einfach auf Windows portiert werden.

Wenn Sie ein Entwickler von Desktop-Anwendungen sind, können Sie auf GTK, QT oder wxWidgets abzielen, und Ihre App wird heute wahrscheinlich auf den drei wichtigsten Plattformen (* nix, Windows, Mac) gut funktionieren. Halten Sie systemspezifische Aufrufe auf ein Minimum oder isolieren Sie sie in eine Wrapper-Bibliothek, die systemspezifisch sein wird. Sie rufen auch eine virtuelle Maschine wie die JVM und / oder die CLR an, mit der die Anwendung auf der ganzen Linie arbeiten kann.

Wenn Sie ein Webentwickler sind, werden Sie wahrscheinlich auf zu viele verschiedene Alternativen stoßen, aus denen Sie auswählen können. Ich bevorzuge einen kleinen Webserver namens Cherokee und entwickle und starte ASP.NET- (Mono-) und Django-Apps, die darauf ausgeführt werden und ein PgSQL-Backend verwenden.

Die Schlussfolgerung lautet also, dass eine plattformübergreifende Entwicklung unter Linux durchgeführt werden kann, vorausgesetzt, Sie können den Code auf der Zielplattform kompilieren und dies beim Schreiben Ihres Codes oder bei der Ausrichtung auf eine VM berücksichtigen. Der andere Punkt ist, dass Sie möglicherweise auf das Paradox der Wahl stoßen und nicht wissen, was Sie verwenden sollen. Lesen Sie dazu unten meine Antwort auf die zweite Frage.

In Bezug auf die zweite Frage heißt die beste Ressource, die ich gefunden habe, Open Source Alternatives . Diese Website listet kommerzielle Software und ihre Open Source-Alternativen auf. Fast alle Alternativen laufen unter Linux und FreeBSD.

λ Jonas Gorauskas
quelle
Sorry, aber Gerätetreiber sind sehr, sehr stark vom Kernel abhängig (und sogar von der genauen Version davon). Die Teile, die direkt mit dem Kernel interagieren, hängen mehr oder weniger eng davon ab (Dinge wie glibc, ps (1), mount (8)), andere "System" -Stücke viel weniger (z. B. sort (1) oder bash) (1) sind "nur" normale C / C ++ - Programme, die auf verschiedenen Unices genau das gleiche kompilieren und ausführen. Das gesamte GUI-Zeug ist kernelunabhängig, hat aber seine eigenen Regeln.
vonbrand
4

Definieren Sie "Plattform". Sie können Software, die für die Verwendung unter Windows oder Mac vorgesehen ist, nicht angemessen testen, ohne diese Betriebssysteme tatsächlich auszuführen, selbst wenn es möglich ist, Cross-Compilation zu verwenden, um sie 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. Sie können jedoch OpenOffice.org oder Google Docs verwenden, um MS Office, Pinta oder GIMP zu ersetzen, oder was auch immer, um Paint, VNC oder Empathy + Vinagre zu ersetzen, um Remotedesktop usw. usw. zu ersetzen.

Es wäre einfacher, diese Fragen zu beantworten, wenn Sie spezifischere Anwendungsfälle angeben würden.

Sandig
quelle
Möglicherweise möchten Sie daran denken, dass Apple MacOSX nur für die Ausführung auf Computern der Marke Apple lizenziert. Oder Sie können dies ignorieren, je nachdem, wie Sie sich zu Shrink-Wrap-Lizenzen fühlen.
David Thornley
Richtig, Sie können natürlich OS X als Host-Betriebssystem verwenden und Linux und Windows mit VMware Fusion ausführen.
Sandy
2

Weeeeeeel, # 1 ist ziemlich doozie, Sir. Ich weiß nicht, dass es einen Weg gibt, dieses Ziel zu erreichen. Cross-Compilieren mit anderen * Nixen kann ( mit ein wenig Kopfschmerzen ) auf Ihrer Entwicklungsbox durchgeführt werden, aber wie genau sollten Sie diesen Code ohne das entsprechende Betriebssystem und die entsprechende Architektur ausführen? Es gibt umfangreiche Vorstöße System Emulation gibt, aber letztlich ist dies eine cludge. Wenn Sie Software auf einem Betriebssystem / einer Architektur testen möchten, führen Sie sie auf diesem Betriebssystem / dieser Architektur aus!

Auf der anderen Seite gibt es Tools, die es einfach machen, dasselbe Projekt in einer Vielzahl von Konfigurationen zu erstellen. Cmake ist wahrscheinlich das bekannteste und am besten getestete. Zumindest hilft Ihnen dies beim Testen Ihres Projekts auf anderen Systemen oder ermutigt andere, dies für Sie zu tun.

Ich bin mir ziemlich sicher, dass dies auch auf anderen Betriebssystemen unmöglich ist.

# 2 ist viel viel einfacher

und weiter und weiter. Ich würde mehr helfen, aber Ihre Fragen Schärfe fällt stark ab.

Eli Frey
quelle
1

Dies hängt von Ihrer Zielplattform ab. Wenn Sie für eine virtuelle Plattform (Java oder sogar .NET) entwickeln, sollten Sie mehr als in Ordnung sein. Es gibt einige Plattformen, die unter Linux noch freundlicher sind als unter Windows (z. B. Ruby).

Für Linux als Desktop müssen Sie nur die gesuchte Software auflisten. Es gibt heutzutage kaum eine Windows-Desktop-Software, die keine Linux-Alternative bietet.

Pablo
quelle
1

MonoDevelop sollte Ihnen helfen können, 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 unter Linux , Windows und Mac OSX schreiben . Mit MonoDevelop können Entwickler problemlos mit Visual Studio erstellte .NET-Anwendungen auf Linux portieren und eine einzige Codebasis für alle Plattformen verwalten.

(Schwerpunkt liegt bei mir)

Larry Smithmier
quelle