Linux como uma plataforma de desenvolvimento completa?

8

Quero tornar meu Fedora Linux capaz de seguir:

  1. Use o Linux para uma plataforma de desenvolvimento completa sem exigir nenhuma outra instalação do sistema operacional, mas ainda capaz de criar e testar programas em plataformas diferentes.

  2. Substitua completamente a máquina Windows por todos os outros trabalhos, por exemplo, Office, Paint, Área de trabalho remota, etc.

Você pode sugerir projetos e ferramentas de código aberto para alcançar os objetivos acima?

Xinus
fonte
Deseja testar seu programa em outras plataformas com a instalação? Ou estou entendendo mal essa parte
Michael Mrozek
3
Esta questão é formulada de maneira muito geral e, portanto, não é fácil de responder. Ajudaria se você pudesse especificar um pouco mais o que exatamente você quer fazer. Pode ser que certas plataformas sejam suportadas por uma solução, mas nem todas as plataformas possíveis. Além disso, você aceita VMs?
precisa saber é o seguinte

Respostas:

3

Você pode facilmente desenvolver desenvolvimento de plataforma cruzada, seja um programador de sistemas, desenvolvedor da Web ou desenvolvedor de aplicativos de desktop. Se você gosta de sistemas, é provável que todos os utilitários e / ou drivers que você escreve para o Linux funcionem bem para outros * nix com modificações mínimas. Desde que você escreva o código C padrão e não use muitas chamadas específicas do sistema, elas podem ser fáceis de portar para o Windows.

Se você é um desenvolvedor de aplicativos para desktop, pode segmentar GTK, QT ou wxWidgets e provavelmente seu aplicativo funcionará bem nas três principais plataformas de hoje (* nix, Windows, Mac). Novamente, reduza ao mínimo as chamadas específicas do sistema ou isole-as em uma biblioteca de wrapper que será específica do sistema. Você também pode segmentar uma máquina virtual como a JVM e / ou CLR, que permitirá que o aplicativo funcione de maneira geral.

Se você é um desenvolvedor da Web, provavelmente encontrará muitas alternativas diferentes para escolher. Prefiro um pequeno servidor web chamado Cherokee e desenvolvo e executo aplicativos ASP.NET (mono) e Django que executam nele e usam um back-end PgSQL.

Portanto, a conclusão é que o desenvolvimento de plataforma cruzada no Linux pode ser feito, desde que você possa compilar o código na plataforma de destino e tenha isso em mente ao escrever seu código ou se tiver como destino uma VM. O outro ponto é que você pode encontrar o The Paradox of Choice e não saber o que usar. Para isso leia abaixo a minha resposta para a segunda pergunta.

Quanto à segunda pergunta, o melhor recurso que encontrei é chamado de alternativas de código aberto . Este site lista softwares comerciais e suas alternativas de código aberto. Quase todas as alternativas rodam no Linux e no FreeBSD.

λ Jonas Gorauskas
fonte
Desculpe, mas os drivers de dispositivo são muito, muito dependentes do kernel (e até da versão exata). As partes que interagem diretamente com o kernel dependem mais ou menos intimamente dele (coisas como glibc, ps (1), mount (8)), outras partes do "sistema" muito menos (por exemplo, sort (1) ou bash (1) são "apenas" programas C / C ++ comuns, que serão compilados e executados exatamente da mesma maneira em diversos Unices). Todo o material da GUI é independente do kernel, mas tem suas próprias regras.
precisa saber é o seguinte
4

Defina "plataforma". Não é possível testar razoavelmente o software destinado ao uso no Windows ou Mac sem realmente executar esses sistemas operacionais, mesmo que seja possível usar a compilação cruzada para construí-lo no Linux. Para testes reais em outros sistemas operacionais, o VMware é uma ótima ferramenta.

A segunda parte da sua pergunta provavelmente deve ser uma pergunta totalmente separada. Mas você pode usar o OpenOffice.org ou o Google Docs para substituir o MS Office, Pinta ou GIMP ou qualquer outra coisa para substituir o Paint, VNC ou Empathy + Vinagre para substituir a Área de Trabalho Remota, etc.

Seria mais fácil responder a essas perguntas se você desse alguns casos de uso mais específicos.

Sandy
fonte
Você pode se lembrar que a Apple apenas licencia o MacOSX para rodar em computadores da marca Apple. Ou você pode desconsiderar isso, dependendo de como você se sente com as licenças de encolhimento.
David Thornley
Certo, é claro que você pode usar o OS X como sistema operacional host e executar o Linux e o Windows com o VMware Fusion.
23410 Sandy Sandy
2

Weeeeeeel, # 1 é bastante doozie, senhor. Não sei se existe alguma maneira de alcançar esse objetivo. A compilação cruzada para outros * nixes pode ser feita ( com um pouco de dor de cabeça ) na sua caixa de desenvolvimento, mas como exatamente você deve executar esse código sem o SO e a arquitetura apropriados? Existem incursões extensas na emulação de sistema por aí, mas, no final das contas, isso é uma confusão. Se você deseja testar o software em um SO / arquitetura, execute-o nesse SO / arquitetura!

Agora, por outro lado, existem ferramentas que simplificam a criação do mesmo projeto em vastas faixas de configurações. Cmake é provavelmente o mais conhecido e bem testado. Pelo menos, isso o ajudará a testar seu projeto em outros sistemas ou incentivará outras pessoas a fazer isso por você.

Para ser bom, tenho certeza de que isso também é impossível em outros sistemas operacionais.

# 2 é muito, muito mais fácil

e assim por diante. Eu ajudaria mais, mas a acuidade das suas perguntas diminui acentuadamente.

Eli Frey
fonte
1

Depende da sua plataforma de destino. Se você está desenvolvendo para uma plataforma virtual (Java ou mesmo .NET), deve ficar bem. Existem algumas plataformas mais amigáveis ​​no Linux do que no Windows (por exemplo, Ruby).

Quanto ao Linux como desktop, você apenas precisa listar o software que está procurando. Atualmente, praticamente não há software para desktop do Windows que não tenha uma alternativa para Linux.

Pablo
fonte
1

O MonoDevelop deve ser capaz de ajudá-lo a lidar com o lado do desenvolvimento:

O MonoDevelop é um IDE projetado principalmente para C # e outras linguagens .NET. O MonoDevelop permite que os desenvolvedores escrevam rapidamente aplicativos da Web para desktop e ASP.NET no Linux , Windows e Mac OSX . O MonoDevelop facilita para os desenvolvedores portar aplicativos .NET criados com o Visual Studio para Linux e manter uma base de código única para todas as plataformas.

(ênfase é minha)

Larry Smithmier
fonte