
Fedora Linux で次のことができるようにしたいと考えています。
他の OS のインストールを必要とせず、さまざまなプラットフォームでプログラムを構築およびテストできる完全な開発プラットフォームとして Linux を使用します。
Office、ペイント、リモート デスクトップなど、他のすべての作業については Windows マシンを完全に置き換えます。
上記の目的を達成するためのオープンソース プロジェクトやツールを提案していただけますか?
答え1
「プラットフォーム」を定義します。クロスコンパイルを使用して Linux 上でソフトウェアをビルドすることは可能であっても、Windows または Mac で使用することを目的としたソフトウェアを実際にそれらのオペレーティング システムを実行せずにテストすることは合理的にできません。他のオペレーティング システムで実際にテストするには、VMware が優れたツールです。
質問の 2 番目の部分は、おそらく完全に別の質問になるはずです。ただし、MS Office の代わりに OpenOffice.org または Google Docs を使用したり、Paint の代わりに Pinta または GIMP などを使用したり、リモート デスクトップの代わりに VNC または Empathy+Vinagre を使用したりすることはできます。
より具体的な使用例をいくつか挙げていただければ、これらの質問に答えやすくなります。
答え2
システム プログラマー、Web 開発者、デスクトップ アプリケーション開発者のいずれであっても、クロスプラットフォーム開発を簡単に行うことができます。システムに興味があるなら、Linux 用に作成したユーティリティやドライバーは、最小限の変更で他の *nix でも問題なく動作するはずです。標準の C コードを記述し、システム固有の呼び出しをあまり使用しない限り、Windows への移植も簡単かもしれません。
デスクトップ アプリケーション開発者であれば、GTK、QT、または wxWidgets をターゲットにすることができ、そのアプリケーションは現在の主要な 3 つのプラットフォーム (*nix、Windows、Mac) で問題なく動作するでしょう。繰り返しますが、システム固有の呼び出しは最小限に抑えるか、システム固有のラッパー ライブラリに分離してください。また、JVM や CLR などの仮想マシンをターゲットにすると、アプリケーションがあらゆるプラットフォームで動作できるようになります。
あなたがウェブ開発者であれば、選択肢が多すぎて選ぶのが難しいでしょう。私は、チェロキーそして、その上で実行され、PgSQL バックエンドを使用する ASP.NET (mono) および Django アプリを開発および実行しています。
結論としては、コードをターゲットプラットフォーム上でコンパイルでき、コードを書く際にそれを念頭に置いておくか、VMをターゲットにすれば、Linuxでのクロスプラットフォーム開発は可能だということです。もう1つのポイントは、次のような問題に遭遇する可能性があるということです。選択のパラドックス何を使うべきか分からない。それについては、以下の 2 番目の質問に対する私の回答をお読みください。
2番目の質問に関して、私が見つけた最高のリソースはオープンソースの代替品この Web サイトには、商用ソフトウェアとそのオープンソースの代替品がリストされています。代替品のほとんどすべてが Linux および FreeBSD で動作します。
答え3
うわー、#1 はなかなかすごいですね。この目標を達成する方法があるかどうかはわかりません。他の *nix へのクロスコンパイルは可能です (少し頭痛がする)を開発ボックスにインストールしたとしても、適切なOSとアーキテクチャがなければ、そのコードをどのように実行すればよいのでしょうか?システムエミュレーション世の中にはいろいろな方法がありますが、結局のところ、これは役に立たないものです。OS/アーキテクチャ上でソフトウェアをテストしたい場合は、その OS/アーキテクチャ上で実行してください。
一方、同じプロジェクトをさまざまな構成で簡単に構築できるツールも存在します。 CMake のおそらく最もよく知られており、十分にテストされています。少なくとも、これはプロジェクトを他のシステムでテストする際に役立ち、他の人が代わりにテストするように促すのに役立ちます。
公平に言えば、これは他のオペレーティング システムでも不可能であると確信しています。
#2ははるかに簡単です
などなど。もっと助けたいのですが、あなたの質問の鋭さは急激に低下しています。
答え4
モノ開発開発面の理解に役立つはずです:
MonoDevelopは、主にC#やその他の.NET言語向けに設計されたIDEです。MonoDevelopを使用すると、開発者はデスクトップアプリケーションやASP.NET Webアプリケーションを迅速に作成できます。リナックス、 ウィンドウズそしてマックOSXMonoDevelop を使用すると、開発者は Visual Studio で作成された .NET アプリケーションを Linux に簡単に移植し、すべてのプラットフォームに対して単一のコード ベースを維持できるようになります。
(強調は私によるものです)