回答:
あなたが話しているゲームは、.NET Frameworkに基づいており、Microsoftの.NET Frameworkの無料のオープンソース実装であるMonoで実行されています。
これらのアプリケーションは.NETベースであるため、アセンブリの拡張子は.dllです。そのため、フォルダー内のDLLファイルを確認できます。
クロスプラットフォーム用に設計された1つの.NETプログラムは、MSILでコンパイルされ、.NET / Monoランタイムを実行する必要がある同じ「バイナリ」(アセンブリでもあるDLLを含む)でWindows、Linux、またはMacで実行できます。 。
また、Ubuntuリポジトリで使用可能なMono Frameworkに基づいたいくつかの無料のアプリケーション(ゲームだけでなく)も持っていることに注意してください。例:おてんば娘。
.dll
およびなどのファイル拡張子.so
は、Linuxでは無意味です。彼らは私たちの便宜のためにのみ使用されています。
gcc
はありません。たとえば-lm
、ファイル名がそのバージョン名のバージョンで終わらない場合.so
や.a
、バージョン付きのバリアントがない場合など、提供されるライブラリは見つかりません。
.dll
内のファイルGameDataFolder/Managed
内部でモノを使用してネイティブコードのプログラムに属しています。
.NET共通言語ランタイムまたはMonoで実行できるクロスプラットフォームの実行可能ファイルおよび共有ライブラリは、Windowsに固有ではない場合でも、多くの場合、それぞれサフィックス.exe
および.dll
サフィックスが付いています。.dll
UbuntuのようなGNU / Linuxシステム、またはWindows以外のOSのプログラムでファイルを見つけるとき、これが通常の理由です。ほとんどの場合.dll
、Ubuntuシステムで見つけますが、Golbothの答えはそれを説明しています。しかし、それはここで起こっていることではありません。
ユニティゲームエンジン - と混同すべきではない、ほとんどのUbuntuのリリースでは、デフォルトのグラフィカル・インターフェースは、人気の高い独自のクロスプラットフォームのゲームエンジンを--is。このエンジンは、.NET FrameworkまたはMonoの上では動作しません。代わりに、Monoが埋め込まれます。つまり、Monoはその上で実行されます。これは、開発者が、Unityエンジンの一部ではないゲームに必要なコードを作成する方法です。
一般に、Monoは、Microsoftの.NET CLRが通常使用されるのと同じ方法で使用され、完全な.NET / Monoプログラムを実行します。しかし、モノも容易になるように設計されたネイティブコードアプリケーションで埋め込みなど、カスタマイズするそれらのアプリケーションを有効にします。それはあなたが説明している状況で起こっていることです。表示されているファイルは、Monoまたは.NET CLRの上で直接実行されるプログラムに属していません。代わりに、Monoを埋め込むネイティブコードプログラムに属します。
ほとんどがC ++で記述されているUnityゲームエンジンは、システムのパッケージマネージャーからインストールされたバージョン(存在する場合)を使用せず、異なるバージョンのMonoのインスタンスをホストします。この組み込みMonoランタイムは、目的ではないため、スタンドアロンの.NET / Monoプログラムの実行には使用できません。代わりに、エンジンのネイティブコード部分はそれを使用してCILコードを実行します。(CILはCommon Intermediate Languageであり、正式名称です。Microsoftが最初に開発したため、以前はMSILまたはMicrosoft Intermediate Languageと呼ばれていました。)Unityエンジンを使用するゲームを作成するプログラマーは通常、C#で独自のコードを記述しますサポートされています。
Unityエンジンは、WindowsにもMonoを埋め込みます。以下のためにユニバーサルのWindowsプラットフォームとなし、他のプラットフォーム- -ゲームではなく、モノのは、Microsoft .NET Frameworkを使用しています。ただし、ほとんどのモバイルデバイスやゲームコンソール、UbuntuやWindowsなど、ほとんどのプラットフォームのUnityゲームの大部分はMonoを使用しています。一部のプラットフォームでは、Monoの代替としてIL2CPPが利用可能であり、一部のIL2CPPのみがサポートされています。詳細については、スクリプトの制限を参照してください。
.dll
Ubuntuでファイルが表示されるその他の状況.dll
Ubuntuでファイルが表示される可能性がある2つの状況について説明しました。
.dll
、Ubuntuシステムで表示されるほとんどのものです。フォルダー内の.dll
ファイルが何のためにあるのかは偶然ではありませんGameDataFolder/Managed
。.dll
Ubuntuでファイルが表示される可能性のある他の2つの合理的に一般的なケースがあります。
.dll
ファイルではなく.exe
ファイルを生成します。通常の.NET FrameworkやMonoではなく、.NET Coreランタイム(CoreCLRと呼ばれます)がこれらのファイルを実行します。.NET CoreはMicrosoft製品ですが、標準の.NET Frameworkとは異なり、.NET Coreは UbuntuのようなGNU / Linuxシステムを公式にサポートするクロスプラットフォームであり、無料のオープンソースソフトウェアです。.dll
Ubuntuで表示されるファイルは、Windowsライブラリである場合があります。これは、プログラムがUbuntuシステムに格納されているがWindowsで実行されている場合、またはUbuntuでWindowsドライブをマウントしている場合に表示されます。また、Wineを使用してUbuntuで実行できるプログラムや、Wineに付属するソフトウェアや、winetricks
他のWindowsソフトウェアをサポートするために自動的にインストールされるプログラムに関連して表示される場合もあります。これは.dll
、Ubuntuで発生する可能性のあるすべての状況を網羅的にリストする試みではありません。(たとえば、OS / 2ライブラリでもかまいません。)ただし、これらの4つのケースは最も一般的なケースだと思います。