Linux come piattaforma di sviluppo completa?


8

Voglio rendere Fedora Linux in grado di seguire:

  1. Usa Linux per una piattaforma di sviluppo completa senza richiedere l'installazione di altri sistemi operativi, ma è comunque in grado di creare e testare programmi su piattaforme diverse.

  2. Sostituisci completamente la macchina Windows per tutti gli altri lavori, ad esempio Office, Paint, Desktop remoto, ecc.

Puoi suggerire progetti e strumenti open source per raggiungere gli obiettivi sopra indicati?


Vuoi testare il tuo programma su altre piattaforme con averle installate? O sto fraintendendo quella parte
Michael Mrozek

3
Questa domanda è formulata in modo molto generale e quindi non è facile rispondere. Sarebbe utile se potessi specificare un po 'più da vicino cosa vuoi fare esattamente. È possibile che alcune piattaforme siano supportate da una soluzione, ma non tutte le piattaforme possibili. Inoltre, accetti VM?
txwikinger,

Risposte:


3

Puoi facilmente fare lo sviluppo multipiattaforma sia che tu sia un programmatore di sistemi, uno sviluppatore web o uno sviluppatore di applicazioni desktop. Se ti piacciono i sistemi, allora qualsiasi utilità e / o driver che scrivi per Linux probabilmente funzionerà bene per altri * nix con modifiche minime. A condizione che si scriva un codice C standard e non si utilizzino troppe chiamate specifiche del sistema, potrebbero essere persino facili da trasferire su Windows.

Se sei uno sviluppatore di applicazioni desktop, puoi scegliere come target GTK, QT o wxWidgets e la tua app probabilmente funzionerà bene oggi sulle principali 3 piattaforme (* nix, Windows, Mac). Ancora una volta, riduci al minimo le chiamate specifiche del sistema o isolale in una libreria wrapper che sarà specifica del sistema. Chiamate anche una macchina virtuale come JVM e / o CLR che consentirà all'applicazione di funzionare su tutta la linea.

Se sei un sviluppatore web, è probabile che ti imbatti in troppe alternative diverse tra cui scegliere. Preferisco un piccolo server web chiamato Cherokee e sviluppo ed eseguo applicazioni ASP.NET (mono) e Django che girano su di esso e usano un back-end PgSQL.

Quindi la conclusione è che lo sviluppo multipiattaforma in Linux può essere fatto, a condizione che sia possibile compilare il codice sulla piattaforma di destinazione e tenerlo presente durante la scrittura del codice o se si targetizza una VM. L'altro punto è che potresti imbatterti in The Paradox of Choice e non sapere cosa usare. Per quello leggi sotto la mia risposta alla seconda domanda.

Per quanto riguarda la seconda domanda, la migliore risorsa che ho trovato si chiama Open Source Alternatives . Questo sito Web elenca i software commerciali e le loro alternative open source. Quasi tutte le alternative funzionano su Linux e FreeBSD.



Siamo spiacenti, ma i driver di dispositivo dipendono molto dal kernel (e persino dalla versione esatta di esso). I pezzi che interagiscono direttamente con il kernel dipendono più o meno intimamente da esso (cose come glibc, ps (1), mount (8)), altri pezzi "di sistema" molto meno (ad esempio, sort (1) o bash (1) sono programmi "solo" run-of-the-mill C / C ++, che verranno compilati ed eseguiti esattamente gli stessi su Unices assortiti). L'intera GUI è indipendente dal kernel, ma ha le sue regole.
vonbrand,

4

Definire "piattaforma". Non è possibile testare ragionevolmente il software destinato all'uso su Windows o Mac senza eseguire effettivamente tali sistemi operativi, anche se è possibile utilizzare la compilazione incrociata per costruirlo su Linux. Per test reali su altri sistemi operativi, VMware è un ottimo strumento.

La seconda parte della tua domanda dovrebbe probabilmente essere una domanda totalmente separata. Ma puoi usare OpenOffice.org o Google Docs per sostituire MS Office, Pinta o GIMP o qualsiasi altra cosa per sostituire Paint, VNC o Empathy + Vinagre per sostituire Desktop remoto, ecc. Ecc.

Sarebbe più semplice rispondere a queste domande se hai fornito alcuni casi d'uso più specifici.


Potresti ricordare che Apple concede in licenza MacOSX solo per l'esecuzione su computer con marchio Apple. Oppure potresti ignorarlo, a seconda di come ti senti riguardo alle licenze termoretraibili.
David Thornley,

Bene, puoi ovviamente usare OS X come sistema operativo host ed eseguire Linux e Windows con VMware Fusion.
Sandy,

2

Weeeeeeel, il numero 1 è piuttosto il doozie, signore. Non so che esiste un modo per raggiungere questo obiettivo. La compilazione incrociata con altri * nix può essere eseguita ( con un po 'di mal di testa ) sulla tua casella di sviluppo, ma come dovresti eseguire esattamente quel codice senza il sistema operativo e l'architettura appropriati? Esistono estese incursioni nell'emulazione del sistema , ma alla fine questo è un cludge. Se vuoi testare il software su un sistema operativo / architettura, eseguilo su quel sistema operativo / architettura!

Ora, d'altra parte, ci sono strumenti là fuori che rendono semplice costruire lo stesso progetto in vaste gamme di configurazioni. Cmake è probabilmente il più noto e testato. Almeno questo ti aiuterà a testare il tuo progetto su altri sistemi o incoraggerà gli altri a farlo per te.

Ad essere sinceri, sono abbastanza sicuro che ciò sia impossibile anche su altri sistemi operativi.

# 2 è molto più semplice

e ancora e ancora. Vorrei aiutare di più, ma l'acuità delle tue domande diminuisce drasticamente.


1

Dipende dalla tua piattaforma di destinazione. Se stai sviluppando per una piattaforma virtuale (Java o persino .NET), dovresti andare più che bene. Ci sono alcune piattaforme che sono ancora più amichevoli su Linux che su Windows (ad esempio Ruby).

Per quanto riguarda Linux come desktop, devi solo elencare il software che stai cercando. Al giorno d'oggi quasi nessun software desktop per Windows non ha un'alternativa a Linux.


1

MonoDevelop dovrebbe essere in grado di aiutarti a gestire il lato sviluppo:

MonoDevelop è un IDE progettato principalmente per C # e altri linguaggi .NET. MonoDevelop consente agli sviluppatori di scrivere rapidamente applicazioni Web desktop e ASP.NET su Linux , Windows e Mac OSX . MonoDevelop semplifica il trasferimento da parte degli sviluppatori di applicazioni .NET create con Visual Studio su Linux e il mantenimento di un'unica base di codice per tutte le piattaforme.

(l'enfasi è mia)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.