AndroidはLinux標準ライブラリと互換性がありますか?

AndroidはLinux標準ライブラリと互換性がありますか?

スタックオーバーフローから移動すると、ソースが必要なのでトピックから外れたことに気づきました。ルールでは禁止されていますが、私が知っている限り、ここではそうではありません。

現在、Androidのカーネルは、wakelockなどのいくつかの例外を除いて、ほとんどがLinuxカーネルであることがわかっています。ジョン・スツルツの説明.) しかし、Linux標準ライブラリに十分近いですか? (またはPOSIXおよび/または単一のUnix仕様の観点から?)

私はこの質問について学術学期の論文に書いているので、答え自体を除いて比較的信頼できるソースを引用できれば良いでしょう。同僚のレビューを受けた記事や本は理想的ですが、何かGoogle開発者のドキュメントや評判の良い人(Torvalds、Andrew Joseyなど)がこれを行います。

ベストアンサー1

これ最下位ビットPOSIX、しかも単一のUNIX仕様すべて大きく関連しています。ユーザーエリア。単に1つのカーネル(「UNIXファミリー」および「ほとんどのPOSIX互換」オペレーティングシステムの基盤として使用されます)(GNU / Linux)を使用するだけでは、Androidをそのようなオペレーティングシステムにするのに十分ではありません。しかし、いくつかの* nixスタイル要素があります。シェルこれは、Kornシェル(4.0より前には実際にはBusinessBoxを介して組み込みGNU / Linuxシステムで使用されているashシェルかもしれません)と、それに付属のさまざまなPOSIX-yエントリの「ほとんど互換性のある」実装です。 。しかし、ほとんどの人は「UNIXのような」世界の完全なセットを認識していません。

Linux標準ライブラリに十分近いですか?

デフォルトでは、LSBはAndroidが使用しないファイルシステム階層です。 LSBはPOSIXに何かを追加しますが、Androidはまだそこに到達していないため、LSB互換とは遠いです。これはとても明確です。いいえ私はこれがプラットフォームの目標であると信じています。 LinuxカーネルはPOSIXシステムの中核として使用できるためではなく、もともと2つの理由でGNUに採用されました。

POSIX、Unix、LSB 拡張などのユーザー空間指向仕様の違いを明確にするには、次の点を考慮してください。POSIXネイティブCライブラリについて話す必要があります。たとえば、ネットワーキングやほとんどのシステムコールなど、プラットフォーム固有の項目が標準Cではないという事実がここで発生しますread()read()歴史的にはUnixの仕事でした。 POSIXはそれをインターフェースとして定義します。しかし、ユーザーモードCライブラリに実装されています。そして、他のすべてはこのライブラリを基本として使用します。 GNU / LinuxのCライブラリは、カーネルとは完全に独立して動作するGNU Cライブラリです。これら2つはオペレーティングシステムのコアとして連携しますが、ここで説明されている標準のどれも以下を意味しません。何もないこのようなことがどのように起こるべきか、そして実際には彼らはカーネルが何であるか、カーネルが何をすべきかは言いません。。彼らはCライブラリが何であり、何をすべきかについてたくさん話します。つまり、与えられたカーネルで動作するようにCライブラリを作成する場合 -すべてのカーネル、形式や属性に関係なく - ライブラリは、POSIX仕様を満たすユーザーインターフェイスAPIを提供します。POSIX準拠のオペレーティングシステムがあります。

/proc私はLSBがLinuxが提供するカーネルインターフェースについて話すことがあると思います。しかし、これが(例えば)カーネルによって直接提供されるという事実は、LSBが必ずしもそうでなければならないと言うことを意味するものではありません。これは、これが利用可能でなければならないか使用できると言うだけです。では、情報の性格は何ですか? 。

おすすめ記事